במדריך הזה מוסבר איך לשלוח קלט אודיו לבקשה לזיהוי כוונות באמצעות ה-API. Dialogflow מעבד את האודיו וממיר אותו לטקסט לפני שהוא מנסה להתאים אותו להצהרת כוונות.
לפני שמתחילים
התכונה הזו רלוונטית רק כשמשתמשים ב-API עבור אינטראקציות עם משתמשי קצה. אם אתם משתמשים בשילוב, אתם יכולים לדלג על המדריך הזה.
לפני שקוראים את המדריך הזה, צריך לבצע את המשימות הבאות:
- מידע בסיסי על Dialogflow
- משלימים את השלבים להגדרה.
יצירת סוכן
- עוברים אל מסוף Dialogflow ES.
- נכנסים למסוף אם מוצגת בקשה לכך. מידע נוסף זמין בסקירה הכללית על מסוף Dialogflow.
- בתפריט שבסרגל הצד, מרחיבים את האפשרות סוכני טעינה.
- לוחצים על יצירת סוכן חדש.
- מזינים את שם הסוכן, שפת ברירת המחדל ואזור הזמן שמוגדר כברירת מחדל.
- מזינים פרויקט קיים. כדי לאפשר למסוף Dialogflow ליצור פרויקט, בוחרים באפשרות Create a new Google project (יצירת פרויקט חדש ב-Google).
- לוחצים על יצירה.
זיהוי כוונות
כדי לזהות כוונות, מבצעים קריאה ל-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.