בדף הזה מוסבר איך להזרים קלט אודיו לבקשה לזיהוי כוונות באמצעות ה-API. מערכת Dialogflow מעבדת את האודיו וממירה אותו לטקסט לפני שהיא מנסה להתאים אותו להגדרה של כוונת המשתמש. ההמרה הזו נקראת קלט אודיו, זיהוי דיבור, המרת דיבור לטקסט או STT.
לפני שמתחילים
התכונה הזו רלוונטית רק כשמשתמשים ב-API עבור אינטראקציות עם משתמשי קצה. אם אתם משתמשים בשילוב, אתם יכולים לדלג על המדריך הזה.
לפני שתקראו את המדריך הזה:
- מידע בסיסי על Dialogflow
- לבצע את השלבים להגדרה.
יצירת סוכן
- עוברים אל מסוף Dialogflow ES.
- אם תתבקשו, היכנסו ל-Dialogflow Console. מידע נוסף זמין במאמר בנושא סקירה כללית של מסוף Dialogflow.
- בתפריט שבסרגל הצד, מרחיבים את האפשרות סוכני טעינה.
- לוחצים על יצירת סוכן חדש.
- מזינים את שם הסוכן, שפת ברירת המחדל ואזור הזמן שמוגדר כברירת מחדל.
- מזינים פרויקט קיים. כדי לאפשר למסוף Dialogflow ליצור פרויקט, בוחרים באפשרות Create a new Google project (יצירת פרויקט חדש ב-Google).
- לוחצים על יצירה.
ייבוא קובץ לדוגמה לסוכן
השלבים במדריך הזה מבוססים על הנחות לגבי הסוכן שלכם, ולכן תצטרכו לייבא סוכן שמוכן לשימוש במדריך הזה. בשלבים האלה נעשה שימוש באפשרות שחזור, שמוחקת את כל ההגדרות, הכוונות והישויות של הסוכן.
כדי לייבא את הקובץ:
-
מורידים את הקובץ
room-booking-agent.zip. - עוברים אל מסוף Dialogflow ES.
- בוחרים את הסוכן.
- לוחצים על לחצן ההגדרות settings לצד שם הסוכן.
- בוחרים בכרטיסייה ייצוא וייבוא.
- בוחרים באפשרות שחזור מקובץ ZIP ומבצעים את ההוראות לשחזור קובץ ה-ZIP שהורדתם.
מידע בסיסי על סטרימינג
השיטה streamingDetectIntent של הסוג Session מחזירה אובייקט gRPC דו-כיווני של סטרימינג.
השיטות שזמינות לאובייקט הזה משתנות בהתאם לשפה, לכן כדאי לעיין במסמכי העזר של ספריית הלקוח כדי לקבל פרטים.
אובייקט הסטרימינג משמש לשליחה ולקבלה של נתונים בו-זמנית.
באמצעות האובייקט הזה, הלקוח מעביר תוכן אודיו ל-Dialogflow, ובמקביל מאזין ל-StreamingDetectIntentResponse.
לשיטה streamingDetectIntent יש פרמטר query_input.audio_config.single_utterance שמשפיע על זיהוי הדיבור:
- אם הערך הוא
false(ברירת מחדל), זיהוי הדיבור לא יופסק עד שהלקוח יסגור את הזרם. - אם
true, Dialogflow יזהה ביטוי מדובר אחד באודיו של הקלט. כש-Dialogflow מזהה שהקול באודיו הפסיק או הושהה, הוא מפסיק את זיהוי הדיבור ושולחStreamingDetectIntentResponseעם תוצאת זיהוי שלEND_OF_SINGLE_UTTERANCEללקוח. Dialogflow מתעלם מכל אודיו שנשלח אל Dialogflow בסטרימינג אחרי קבלתEND_OF_SINGLE_UTTERANCE.
בסטרימינג דו-כיווני, לקוח יכול לבצע סגירה חלקית של אובייקט הסטרים כדי לסמן לשרת שהוא לא ישלח יותר נתונים.
לדוגמה, ב-Java וב-Go, השיטה הזו נקראת closeSend.
חשוב לבצע סגירה חלקית (אבל לא ביטול) של סטרימינג במצבים הבאים:
- הלקוח סיים לשלוח נתונים.
- הלקוח מוגדר עם
single_utteranceשהערך שלו הוא true, והוא מקבלStreamingDetectIntentResponseעם תוצאת זיהוי שלEND_OF_SINGLE_UTTERANCE.
אחרי סגירת הסטרימינג, הלקוח צריך להתחיל בקשה חדשה עם סטרימינג חדש לפי הצורך.
זיהוי כוונות בסטרימינג
בדוגמאות הבאות משתמשים בשיטה streamingDetectIntent של הסוג Session כדי להזרים אודיו.
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.
דוגמאות
בדף הדוגמאות מפורטות שיטות מומלצות להזרמת נתונים ממיקרופון בדפדפן אל Dialogflow.