במדריך הזה מוסבר איך לשלוח קלט אודיו לבקשה לזיהוי כוונה באמצעות ה-API. Dialogflow מעבד את האודיו וממיר אותו לטקסט לפני שהוא מנסה להתאים אותו ל-Intent.
לפני שמתחילים
התכונה הזו רלוונטית רק כשמשתמשים ב-API לאינטראקציות עם משתמשי קצה. אם אתם משתמשים בשילוב, אתם יכולים לדלג על המדריך הזה.
לפני שאתם קוראים את המדריך הזה, אתם צריכים לבצע את המשימות הבאות:
- מידע בסיסי על Dialogflow
- מבצעים את שלבי ההגדרה.
יצירת סוכן
- נכנסים למסוף Dialogflow ES.
- אם מופיעה בקשה, נכנסים למסוף. מידע נוסף זמין בסקירה הכללית על מסוף Dialogflow.
- בתפריט הצד, מרחיבים את הקטע סוכני טעינה.
- לוחצים על יצירת נציג חדש.
- מזינים את שם הנציג, שפת ברירת המחדל ואזור הזמן שמוגדר כברירת מחדל.
- נכנסים לפרויקט קיים. כדי ליצור פרויקט במסוף Dialogflow, בוחרים באפשרות Create a new Google project.
- לוחצים על יצירה.
זיהוי כוונה
כדי לזהות כוונה, צריך להפעיל את ה-method detectIntent בסוג Sessions.
REST
מורידים את קובץ האודיו לדוגמה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 של תוכן אודיו.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב-Google Cloud
- AUDIO: תוכן האודיו בקידוד base64
ה-method של ה-HTTP וכתובת ה-URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/123456789:detectIntent
תוכן בקשת JSON:
{
"queryInput": {
"audioConfig": {
"languageCode": "en-US"
}
},
"inputAudio": "AUDIO"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"responseId": "3c1e5a89-75b9-4c3f-b63d-4b1351dd5e32",
"queryResult": {
"queryText": "book a room",
"action": "room.reservation",
"parameters": {
"time": "",
"date": "",
"guests": "",
"duration": "",
"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"
}
}
הערך של השדה queryResult.action הוא "room.reservation", והערך של השדה queryResult.fulfillmentMessages[0|1].text.text[0] מבקש מהמשתמש מידע נוסף.
Go
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
שפות נוספות
C#: פעלו לפי הוראות ההגדרה של C# בדף ספריות הלקוח, ואז עיינו במאמרי העזרה של Dialogflow CX ל- .NET.
PHP: פועלים לפי הוראות ההגדרה של PHP בדף ספריות הלקוח, ואז נכנסים למאמרי העזרה של Dialogflow CX ל-PHP.
Ruby: פועלים לפי הוראות ההגדרה של Ruby בדף ספריות הלקוח, ואז נכנסים למאמרי העזרה של Dialogflow CX ל-Ruby.