בדרך כלל, אפליקציות צריכות בוט כדי להשיב למשתמש הקצה. Dialogflow: אפליקציות צריכות לעיתים קרובות בוט שיענה למשתמש הקצה. ב-Dialogflow אפשר להשתמש ב-Cloud Text-to-Speech, שמופעל על ידי DeepMind WaveNet, כדי ליצור תגובות דיבור מהנציג. ההמרה הזו של תשובות טקסטואליות של Intent לאודיו נקראת פלט אודיו, סינתזת דיבור,
אתם יכולים להשתמש באודיו גם לקלט וגם לפלט כשאתם מזהים כוונה. זה קורה בדרך כלל כשמפתחים אפליקציות שמתקשרות עם המשתמשים באמצעות ממשק אודיו בלבד.
רשימת השפות הנתמכות מופיעה בעמודה TTS בדף Languages.
לפני שמתחילים
התכונה הזו רלוונטית רק כשמשתמשים ב-API לאינטראקציות עם משתמשי קצה. אם אתם משתמשים בשילוב, אתם יכולים לדלג על המדריך הזה.
לפני שמתחילים, צריך לעשות את הפעולות האלה:
- מידע בסיסי על Dialogflow
- לבצע את השלבים להגדרה.
יצירת סוכן
- נכנסים למסוף Dialogflow ES.
- אם מופיעה בקשה, נכנסים למסוף. מידע נוסף זמין בסקירה הכללית על מסוף Dialogflow.
- בתפריט הצד, מרחיבים את הקטע סוכני טעינה.
- לוחצים על יצירת נציג חדש.
- מזינים את שם הנציג, שפת ברירת המחדל ואזור הזמן שמוגדר כברירת מחדל.
- נכנסים לפרויקט קיים. כדי ליצור פרויקט במסוף Dialogflow, בוחרים באפשרות Create a new Google project.
- לוחצים על יצירה.
זיהוי כוונה
כדי לזהות כוונה, צריך להפעיל את ה-method detectIntent בסוג Sessions.
REST
1. הכנת תוכן האודיו
מורידים את קובץ ה-input_audio לדוגמה book-a-room.wav, שבו נאמר "book a room". בדוגמה הזו, קובץ האודיו צריך להיות מקודד ב-base64 כדי שאפשר יהיה לספק אותו בבקשת ה-JSON שבהמשך.
דוגמה ל-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
דוגמאות לפלטפורמות אחרות מופיעות במאמר הטמעת אודיו בקידוד Base64 במסמכי התיעוד של Cloud Speech API.
2. שליחת בקשה לזיהוי כוונה
מפעילים את השיטה detectIntent בסוג Sessions ומציינים אודיו בקידוד Base64.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב-Google Cloud
- SESSION_ID: מזהה סשן
- BASE64_AUDIO: תוכן ה-base64 מקובץ הפלט שלמעלה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
תוכן בקשת JSON:
{
"queryInput": {
"audioConfig": {
"languageCode": "en-US"
}
},
"outputAudioConfig" : {
"audioEncoding": "OUTPUT_AUDIO_ENCODING_LINEAR_16"
},
"inputAudio": "BASE64_AUDIO"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"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..."
}
שימו לב שהערך של השדה queryResult.action הוא room.reservation, והשדה outputAudio מכיל מחרוזת אודיו גדולה ב-base64.
3. השמעת פלט האודיו
מעתיקים את הטקסט מהשדה outputAudio ושומרים אותו בקובץ בשם output_audio.b64. צריך להמיר את הקובץ הזה לאודיו.
דוגמה ל-Linux:
base64 -d output_audio.b64 > output_audio.wav
דוגמאות לפלטפורמות אחרות מופיעות במאמר פענוח תוכן אודיו בקידוד Base64 במאמרי העזרה של ה-API של Text-to-Speech.
עכשיו אפשר להפעיל את קובץ האודיו output_audio.wav ולשמוע שהוא תואם לטקסט בשדה queryResult.fulfillmentMessages[1].text.text[0] שלמעלה.
הרכיב השני של fulfillmentMessages נבחר כי הוא התגובה בטקסט לפלטפורמה שמוגדרת כברירת מחדל.
Java
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
מידע נוסף על שדות התגובה הרלוונטיים זמין בקטע תגובות לזיהוי כוונה.
תגובות לזיהוי כוונה
התגובה לבקשה לזיהוי כוונה היא מסוג DetectIntentResponse.
התוכן של השדה DetectIntentResponse.queryResult.fulfillmentMessages נשלט על ידי עיבוד רגיל של זיהוי כוונה.
השדה DetectIntentResponse.outputAudio מאוכלס באודיו על סמך הערכים של תשובות הטקסט של פלטפורמת ברירת המחדל שנמצאות בשדה DetectIntentResponse.queryResult.fulfillmentMessages:
- אם יש כמה תגובות טקסט שמוגדרות כברירת מחדל, הן משורשרות כשנוצר האודיו.
- אם אין תשובות טקסט שמוגדרות כברירת מחדל בפלטפורמה, תוכן האודיו שנוצר ריק.
השדה DetectIntentResponse.outputAudioConfig מאוכלס בהגדרות האודיו שמשמשות ליצירת פלט האודיו.
זיהוי כוונה מתוך סטרימינג
כשמזהים כוונה מסטרימינג, שולחים בקשות שדומות לדוגמה שלא משתמשת בפלט אודיו: זיהוי כוונה מסטרימינג.
עם זאת, אתם מספקים לבקשה את השדה OutputAudioConfig. השדות output_audio ו-output_audio_config מאוכלסים בתגובת הסטרימינג הסופית שמתקבלת משרת Dialogflow API. למידע נוסף, ראו StreamingDetectIntentRequest ו-StreamingDetectIntentResponse.
הגדרות הדיבור של הסוכן
אתם יכולים לשלוט בהיבטים שונים של המרת טקסט לדיבור. הגדרות הדיבור של הנציג
שימוש בסימולטור של Dialogflow
אתם יכולים לתקשר עם הנציג ולקבל תשובות קוליות באמצעות הסימולטור של Dialogflow:
- מפעילים המרה אוטומטית של טקסט לדיבור (TTS) לפי ההוראות במאמר הגדרות הדיבור של הנציג.
- מקלידים או אומרים "book a room" (הזמנת חדר) בסימולטור.
- מעיינים בקטע פלט אודיו בסימולטור.