Aplikasi sering kali memerlukan bot untuk berbicara kembali kepada 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 terjadi 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 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, buat sekarang:
- Buka konsol Dialogflow ES.
- Jika diminta, login ke Konsol Dialogflow. Lihat ringkasan konsol Dialogflow untuk informasi selengkapnya.
- Klik Buat Agen di menu sidebar kiri. (Jika Anda sudah memiliki agen lain, klik nama agen, scroll ke bawah, lalu klik Buat agen baru.)
- Masukkan nama agen, bahasa default, dan zona waktu default Anda.
- Jika Anda telah membuat project, masukkan project tersebut. Jika Anda ingin mengizinkan Dialogflow Console membuat project, pilih Create a new Google project.
- Klik tombol Buat.
Mengimpor file contoh ke agen Anda
Langkah-langkah dalam panduan ini membuat asumsi tentang agen Anda, sehingga Anda perlu import agen yang disiapkan untuk panduan ini. Saat mengimpor, langkah-langkah ini menggunakan opsi restore, yang menimpa semua setelan, 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 intent, panggil metode detectIntent
pada jenis
Sessions
.
REST
1. Menyiapkan konten audio
Download
contoh file input_audio
book-a-room.wav
,
yang bertuliskan "reservasi kamar".
File audio harus dienkode base64 untuk contoh ini,
sehingga dapat diberikan dalam permintaan JSON di bawah.
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 Menyemat 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. Memutar audio output
Salin teks dari kolom outputAudio
dan simpan dalam file bernama output_audio.b64
.
File ini perlu dikonversi menjadi 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.
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 Mendeteksi respons intent untuk mengetahui 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 teks platform default
yang ditemukan di kolom DetectIntentResponse.queryResult.fulfillmentMessages
.
Jika ada beberapa respons teks default,
respons tersebut akan digabungkan saat membuat 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 streaming
Saat mendeteksi intent dari streaming,
Anda mengirim permintaan yang mirip dengan contoh yang tidak menggunakan audio output:
Mendeteksi Intent dari Streaming.
Namun, Anda harus 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 teks ke ucapan otomatis.
- Ketik atau ucapkan "reservasi kamar" di simulator.
- Lihat bagian audio output di bagian bawah simulator.