Aplikasi sering kali memerlukan bot untuk merespons pengguna akhir. Dialogflow dapat menggunakan Cloud Text-to-Speech yang didukung oleh DeepMind WaveNet untuk menghasilkan respons ucapan dari agen Anda. Konversi dari respons teks intent ke audio ini dikenal sebagai output audio, sintesis ucapan, text-to-speech, atau TTS.
Panduan ini memberikan contoh yang menggunakan audio untuk input dan output saat mendeteksi intent. Kasus penggunaan ini umum saat mengembangkan aplikasi yang berkomunikasi dengan pengguna melalui antarmuka audio murni.
Untuk mengetahui daftar bahasa yang didukung, lihat kolom TTS di halaman Bahasa.
Sebelum memulai
Fitur ini hanya berlaku saat menggunakan API untuk interaksi pengguna akhir. Jika Anda menggunakan integrasi, Anda dapat melewati panduan ini.
Anda harus melakukan hal berikut sebelum membaca panduan ini:
- Baca Dasar-dasar Dialogflow.
- Lakukan langkah-langkah penyiapan.
Buat agen
Jika Anda belum membuat agen, buat sekarang:
- Buka konsol Dialogflow ES.
- Jika diminta, login ke Konsol Dialogflow. Lihat Ringkasan konsol Dialogflow untuk mengetahui informasi selengkapnya.
- Klik Buat Agen di menu sidebar kiri. (Jika Anda sudah memiliki agen lain, klik nama agen, scroll ke bagian bawah, lalu klik Buat agen baru.)
- Masukkan nama agen, bahasa default, dan zona waktu default.
- Jika Anda sudah membuat project, masukkan project tersebut. Jika Anda ingin mengizinkan Konsol Dialogflow membuat project, pilih Buat project Google baru.
- Klik tombol Buat.
Mengimpor file contoh ke agen Anda
Langkah-langkah dalam panduan ini membuat asumsi tentang agen Anda, jadi Anda perlu mengimpor agen yang disiapkan untuk panduan ini. Saat mengimpor, langkah-langkah ini menggunakan opsi restore, yang akan menggantikan semua setelan, maksud (intent), dan entity agen.
Untuk mengimpor file, ikuti langkah-langkah berikut:
-
Download file
room-booking-agent.zip
. - Buka konsol Dialogflow ES.
- Pilih agen Anda.
- Klik tombol setelan settings di samping nama agen.
- Pilih tab Ekspor dan Impor.
- Pilih Pulihkan Dari Zip dan ikuti petunjuk untuk memulihkan file zip yang Anda download.
Mendeteksi intent
Untuk mendeteksi maksud, panggil metode detectIntent
pada jenis
Sessions
.
REST
1. Menyiapkan konten audio
Download
book-a-room.wav
contoh file input_audio,
yang mengucapkan "pesan kamar".
File audio harus dienkode base64 untuk contoh ini,
sehingga dapat diberikan dalam permintaan JSON di bawah.
Berikut contoh Linux:
wget https://cloud.google.com/dialogflow/es/docs/data/book-a-room.wav base64 -w 0 book-a-room.wav > book-a-room.b64
Untuk contoh di platform lain, lihat Menyematkan audio yang dienkode Base64 dalam dokumentasi Cloud Speech API.
2. Membuat permintaan deteksi maksud
Panggil metode detectIntent
pada jenis
Sessions
dan tentukan audio yang dienkode base64.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID Google Cloud Anda
- SESSION_ID: ID sesi
- BASE64_AUDIO: konten base64 dari file output di atas
Metode HTTP dan URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
Meminta isi JSON:
{ "queryInput": { "audioConfig": { "languageCode": "en-US" } }, "outputAudioConfig" : { "audioEncoding": "OUTPUT_AUDIO_ENCODING_LINEAR_16" }, "inputAudio": "BASE64_AUDIO" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "responseId": "b7405848-2a3a-4e26-b9c6-c4cf9c9a22ee", "queryResult": { "queryText": "book a room", "speechRecognitionConfidence": 0.8616504, "action": "room.reservation", "parameters": { "time": "", "date": "", "duration": "", "guests": "", "location": "" }, "fulfillmentText": "I can help with that. Where would you like to reserve a room?", "fulfillmentMessages": [ { "text": { "text": [ "I can help with that. Where would you like to reserve a room?" ] } } ], "intent": { "name": "projects/PROJECT_ID/agent/intents/e8f6a63e-73da-4a1a-8bfc-857183f71228", "displayName": "room.reservation" }, "intentDetectionConfidence": 1, "diagnosticInfo": {}, "languageCode": "en-us" }, "outputAudio": "UklGRs6vAgBXQVZFZm10IBAAAAABAAEAwF0AAIC7AA..." }
Perhatikan bahwa nilai kolom queryResult.action
adalah room.reservation
,
dan kolom outputAudio
berisi string audio base64 yang besar.
3. Memutar audio output
Salin teks dari kolom outputAudio
dan simpan dalam file bernama output_audio.b64
.
File ini perlu dikonversi menjadi audio.
Berikut contoh Linux:
base64 -d output_audio.b64 > output_audio.wav
Untuk contoh di platform lain, lihat Mendekode Konten Audio yang Dienkode Base64 dalam dokumentasi Text-to-Speech API.
Sekarang Anda dapat memutar file audio output_audio.wav
dan mendengar bahwa file tersebut cocok dengan teks dari kolom queryResult.fulfillmentMessages[1].text.text[0]
di atas.
Elemen fulfillmentMessages
kedua dipilih,
karena merupakan respons teks untuk platform default.
Java
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk melakukan autentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat bagian Respons deteksi niat untuk mengetahui deskripsi kolom respons yang relevan.
Respons deteksi maksud
Respons untuk permintaan deteksi maksud adalah jenis DetectIntentResponse
.
Pemrosesan maksud deteksi normal mengontrol konten kolom DetectIntentResponse.queryResult.fulfillmentMessages
.
Kolom DetectIntentResponse.outputAudio
diisi dengan audio
berdasarkan nilai respons teks platform default
yang ada di kolom DetectIntentResponse.queryResult.fulfillmentMessages
.
Jika ada beberapa respons teks default,
respons tersebut akan digabungkan saat menghasilkan audio.
Jika tidak ada respons teks platform default,
konten audio yang dihasilkan akan kosong.
Kolom DetectIntentResponse.outputAudioConfig
diisi dengan setelan audio yang digunakan untuk menghasilkan audio output.
Mendeteksi intent dari stream
Saat mendeteksi maksud dari aliran, Anda mengirim permintaan yang serupa dengan contoh yang tidak menggunakan output audio:
Mendeteksi Maksud dari Aliran.
Namun, Anda menyediakan kolom
OutputAudioConfig
ke permintaan.
Kolom output_audio
dan output_audio_config
diisi dalam respons streaming terakhir yang Anda dapatkan dari server Dialogflow API.
Untuk mengetahui informasi selengkapnya, lihat
StreamingDetectIntentRequest
dan
StreamingDetectIntentResponse.
Setelan agen untuk ucapan
Anda dapat mengontrol berbagai aspek sintesis ucapan. Lihat setelan ucapan agen.
Menggunakan simulator Dialogflow
Anda dapat berinteraksi dengan agen dan menerima respons audio melalui simulator Dialogflow:
- Ikuti langkah-langkah di atas untuk mengaktifkan text-to-speech otomatis.
- Ketik atau ucapkan "book a room" di simulator.
- Lihat bagian output audio di bagian bawah simulator.