לפעמים אפליקציות צריכות בוט כדי להשיב למשתמש הקצה. Dialogflow לפעמים אפליקציות צריכות בוט כדי להשיב למשתמש הקצה. Dialogflow מאפשר לכם להשתמש ב-Cloud Text-to-Speech שמבוסס על DeepMind WaveNet כדי ליצור תשובות קוליות מהנציג שלכם. ההמרה הזו של תגובות טקסט ל-Intent לאודיו נקראת פלט אודיו, סינתזת דיבור,
אתם יכולים להשתמש באודיו גם לקלט וגם לפלט כשאתם מזהים כוונה. זה קורה בדרך כלל כשמפתחים אפליקציות שמתקשרות עם משתמשים באמצעות ממשק אודיו בלבד.
רשימת השפות הנתמכות מופיעה בעמודה TTS בדף שפות.
לפני שמתחילים
התכונה הזו רלוונטית רק כשמשתמשים ב-API עבור אינטראקציות עם משתמשי קצה. אם אתם משתמשים בשילוב, אתם יכולים לדלג על המדריך הזה.
לפני שמתחילים, צריך לבצע את השלבים הבאים:
- מידע בסיסי על Dialogflow
- לבצע את השלבים להגדרה.
יצירת סוכן
- עוברים אל מסוף Dialogflow ES.
- נכנסים למסוף אם מוצגת בקשה לכך. מידע נוסף זמין בסקירה הכללית על מסוף Dialogflow.
- בתפריט שבסרגל הצד, מרחיבים את האפשרות סוכני טעינה.
- לוחצים על יצירת סוכן חדש.
- מזינים את שם הסוכן, שפת ברירת המחדל ואזור הזמן שמוגדר כברירת מחדל.
- מזינים פרויקט קיים. כדי לאפשר למסוף Dialogflow ליצור פרויקט, בוחרים באפשרות Create a new Google project (יצירת פרויקט חדש ב-Google).
- לוחצים על יצירה.
זיהוי כוונות
כדי לזהות כוונות, מבצעים קריאה ל-method detectIntent בסוג Sessions.
REST
1. הכנת תוכן אודיו
מורידים את קובץ האודיו לדוגמה 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 להמרת טקסט לדיבור.
עכשיו אפשר להפעיל את קובץ האודיו 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 מאוכלס בהגדרות האודיו ששימשו ליצירת פלט האודיו.
זיהוי כוונות משידור
כשמזהים כוונה מסטרימינג, שולחים בקשות שדומות לדוגמה Detecting Intent from a Stream שלא משתמשת בפלט אודיו.
עם זאת, אתם מספקים שדה OutputAudioConfig בבקשה. השדות output_audio ו-output_audio_config מאוכלסים בתגובת הסטרימינג הסופית שמתקבלת משרת Dialogflow API. מידע נוסף זמין במאמרים בנושא StreamingDetectIntentRequest ו-StreamingDetectIntentResponse.
הגדרות הסוכן לדיבור
אתם יכולים לשלוט בהיבטים שונים של סינתזת דיבור. הגדרות הדיבור של הסוכן
שימוש בסימולטור של Dialogflow
אתם יכולים לנהל אינטראקציה עם הסוכן ולקבל תשובות קוליות באמצעות הסימולטור של Dialogflow:
- כדי להפעיל המרת טקסט לדיבור באופן אוטומטי, פועלים לפי ההוראות במאמר בנושא הגדרות הדיבור של נציגים.
- מקלידים או אומרים 'book a room' (הזמנת חדר) בסימולטור.
- מעיינים בקטע פלט אודיו בסימולטור.