Aplikasi sering kali memerlukan bot untuk berkomunikasi kembali dengan 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 menyediakan contoh yang menggunakan audio untuk input dan output saat mendeteksi intent. Kasus penggunaan ini umum terjadi saat mengembangkan aplikasi yang berkomunikasi dengan pengguna melalui antarmuka yang sepenuhnya audio.
Untuk daftar bahasa yang didukung, lihat kolom TTS di halaman Bahasa.
Sebelum memulai
Fitur ini hanya berlaku saat menggunakan API untuk interaksi pengguna akhir. Jika menggunakan integrasi, Anda dapat melewati panduan ini.
Anda harus melakukan hal berikut sebelum membaca panduan ini:
- Baca Dasar-dasar Dialogflow.
- Lakukan langkah-langkah penyiapan.
Membuat agen
Jika Anda belum membuat agen, buatlah sekarang:
- Buka Konsol Dialogflow ES.
- Jika diminta, login ke Konsol Dialogflow. Lihat ringkasan konsol Dialogflow untuk informasi selengkapnya.
- Klik Create Agent 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 untuk membuat project, pilih Create a new Google project.
- Klik tombol Buat.
Mengimpor file contoh ke agen Anda
Langkah-langkah dalam panduan ini akan membuat asumsi tentang agen Anda, sehingga Anda perlu import agen yang sudah disiapkan untuk panduan ini. Saat mengimpor, langkah-langkah ini menggunakan opsi pulihkan, yang menimpa semua setelan, intent, dan entitas 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 Restore From Zip dan ikuti petunjuk untuk memulihkan file zip yang Anda download.
Mendeteksi intent
Untuk mendeteksi intent, panggil metode detectIntent
pada
jenis
Sessions
.
REST
1. Menyiapkan konten audio
Download
contoh file input_audio
book-a-room.wav
,
yang bertuliskan "pesan ruang".
File audio harus dienkode dengan base64 untuk contoh ini,
sehingga dapat disediakan dalam permintaan JSON di bawah ini.
Berikut adalah 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 intent
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. Putar audio output
Salin teks dari kolom outputAudio
dan simpan dalam file bernama output_audio.b64
.
File ini perlu dikonversi ke audio.
Berikut adalah 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.
Anda kini 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 mengautentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengautentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Dialogflow, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Lihat bagian Mendeteksi respons intent untuk deskripsi kolom respons yang relevan.
Mendeteksi respons intent
Respons untuk permintaan intent deteksi adalah jenis DetectIntentResponse
.
Pemrosesan intent deteksi normal mengontrol konten kolom DetectIntentResponse.queryResult.fulfillmentMessages
.
Kolom DetectIntentResponse.outputAudio
diisi dengan audio
berdasarkan nilai respons text platform default
yang ditemukan 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 aliran data
Saat mendeteksi intent dari streaming,
Anda mengirim permintaan yang serupa dengan contoh yang tidak menggunakan audio output:
Mendeteksi Intent dari Aliran.
Namun, Anda perlu menyediakan kolom
OutputAudioConfig
ke permintaan.
Kolom output_audio
dan output_audio_config
diisi di 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 "pesan ruang" di simulator.
- Lihat bagian audio output di bagian bawah simulator.