כשמבצעים בקשה לזיהוי כוונה, אפשר לספק את הפרמטר phrase_hints כדי לתת רמזים למזהה הדיבור. ההנחיות האלה יכולות לעזור בזיהוי במצב שיחה ספציפי.
התאמה אוטומטית של הדיבור
התכונה "התאמה אוטומטית לדיבור" משפרת את הדיוק של זיהוי הדיבור של הנציג, על ידי שימוש אוטומטי במצב השיחה כדי להעביר ישויות רלוונטיות וביטויי אימון כרמזים להקשר הדיבור בכל הבקשות לזיהוי כוונה. התכונה הזו מושבתת כברירת מחדל.
הפעלה או השבתה של התאמת דיבור אוטומטית
כדי להפעיל או להשבית את התכונה "התאמה אוטומטית לדיבור":
המסוף
- פותחים את מסוף Dialogflow CX.
- בוחרים את הפרויקט ב- Google Cloud .
- בוחרים את הסוכן.
- לוחצים על Agent Settings.
- לוחצים על הכרטיסייה דיבור ו-IVR.
- מפעילים או משביתים את האפשרות הפעלה של התאמת דיבור אוטומטית.
- לוחצים על Save.
API
אפשר לעיין ב-methods get ו-patch/update של הסוג Agent.
בוחרים פרוטוקול וגרסה להפניה של הנציג:
| פרוטוקול | V3 | V3beta1 |
|---|---|---|
| REST | משאב של נציג | משאב של נציג |
| RPC | ממשק הסוכן | ממשק הסוכן |
| C++ | AgentsClient | לא זמין |
| C# | AgentsClient | לא זמין |
| המשך | AgentsClient | לא זמין |
| Java | AgentsClient | AgentsClient |
| Node.js | AgentsClient | AgentsClient |
| PHP | לא זמין | לא זמין |
| Python | AgentsClient | AgentsClient |
| Ruby | לא זמין | לא זמין |
עיצוב הנציג לשיפור זיהוי הדיבור
כשההתאמה האוטומטית לדיבור מופעלת, אתם יכולים לבנות את הנציג כך שינצל את היתרונות שלה. בקטעים הבאים מוסבר איך אפשר לשפר את זיהוי הדיבור באמצעות שינויים מסוימים בביטויי האימון ובישויות של הנציג.
ביטויי אימון
- אם תגדירו ביטויי אימון עם ביטוי כמו "אף סתום", ביטוי דומה של משתמש הקצה יזוהה באופן מהימן כ "אף סתום" ולא כ "אף סתם".
- כשיש פרמטר חובה שמאלץ את Dialogflow להציג הנחיות למילוי טופס, התאמת הדיבור האוטומטית תטה באופן משמעותי לכיוון הישות שמתמלאת.
בכל המקרים, התאמת הדיבור האוטומטית רק משפיעה על זיהוי הדיבור, ולא מגבילה אותו. לדוגמה, גם אם Dialogflow מבקש מהמשתמש פרמטר נדרש, המשתמשים עדיין יוכלו להפעיל כוונות אחרות, כמו כוונה ברמה העליונה של "דיבור עם נציג".
ישויות מערכת
אם מגדירים ביטוי לאימון שמשתמש בישות המערכת @sys.number, ומשתמש הקצה אומר "I want two", יכול להיות שהמערכת תזהה את זה בתור "to", "too", "2" או "two".
כשההתאמה האוטומטית לדיבור מופעלת, Dialogflow משתמש בישות @sys.number כרמז במהלך זיהוי הדיבור, ויש סיכוי גבוה יותר שהפרמטר יחולץ כ-"2".
ישויות בהתאמה אישית
אם מגדירים ישות בהתאמה אישית לשמות של מוצרים או שירותים שהחברה מציעה, ומשתמש הקצה מזכיר את המונחים האלה בביטוי, יש סיכוי גבוה יותר שהם יזוהו. אם יש ביטוי לאימון "I love Dialogflow", שבו "Dialogflow" מסומן כישות @product, התאמת הדיבור האוטומטית תתעדף את "I love Dialogflow", "I love Cloud Speech" וכל שאר הרשומות בישות @product.
חשוב במיוחד להגדיר מילים נרדפות ברורות לישויות כשמשתמשים ב-Dialogflow לזיהוי דיבור. נניח שיש לכם שתי רשומות של ישות @product, "Dialogflow" ו-"Dataflow". מילים נרדפות ל-"Dialogflow" יכולות להיות "Dialogflow", "dialogue flow", "dialogue builder", "Speaktoit", "speak to it", "API.ai", "API dot AI". אלה מילים נרדפות טובות כי הן מכסות את הווריאציות הנפוצות ביותר. אין צורך להוסיף את "the dialogue flow builder" כי "dialogue flow" כבר מכסה את זה.
- אמירות של משתמשים עם ישויות מספרים עוקבות אך נפרדות יכולות להיות לא ברורות.
לדוגמה, אם אומרים "אני רוצה שתי חבילות של 16", יכול להיות שהכוונה היא ל-2 חבילות של 16, או ל-216 חבילות. התאמת דיבור יכולה לעזור להבהיר את המקרים האלה אם מגדירים ישויות עם ערכים מאויתים:
- מגדירים ישות
quantityעם הרשומות:zeroone...twenty - מגדירים ישות מסוג
productאוsizeעם הרשומות הבאות:sixteen packtwo ounce...five liter - רק מילים נרדפות של ישויות משמשות להתאמת דיבור, כך שאפשר להגדיר ישות עם ערך עזר
1ומילה נרדפת אחתoneכדי לפשט את הלוגיקה של מילוי הבקשה.
- מגדירים ישות
ישויות של ביטויים רגולריים
ישויות של ביטויים רגולריים יכולות להפעיל התאמה אוטומטית של דיבור לרצפים של אותיות וספרות כמו "ABC123" או "12345" אם מגדירים ובודקים אותן כמו שצריך.כדי לזהות את הרצפים האלה באמצעות הקול, צריך להטמיע את כל ארבע הדרישות הבאות:
1. דרישת כניסה של ביטוי רגולרי
אפשר להשתמש בכל ביטוי רגולרי כדי לחלץ ישויות מקלט טקסט, אבל רק ביטויים מסוימים יגרמו להתאמה אוטומטית של הדיבור להטות את זיהוי הדיבור לרצפים של ספרות או תווים אלפאנומריים מאויתים.
בישות של הביטוי הרגולרי, לפחות רשומה אחת צריכה לעמוד בכל הכללים הבאים:
- צריך להתאים לתווים אלפאנומריים מסוימים, לדוגמה:
\d,\w,[a-zA-Z0-9] - לא יכול להכיל רווחים לבנים
או\s, אבל מותר להשתמש ב-\s*וב-\s? - לא אמור להכיל קבוצות לחילוץ או קבוצות ללא חילוץ
() - לא צריך לנסות להתאים תווים מיוחדים או סימני פיסוק כמו:
` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |
הרשומה הזו יכולה לכלול מערכות תווים []
וכמתים של חזרה כמו *, ?, +, {3,5}.
2. דרישות להגדרת פרמטרים
מסמנים את ישות הביטוי הרגולרי כפרמטר טופס חובה, כדי שיהיה אפשר לאסוף אותו במהלך מילוי הטופס. כך אפשר להטות את ההתאמה האוטומטית של הדיבור לזיהוי רצפים, במקום לנסות לזהות כוונה ורצף בו-זמנית. אחרת, יכול להיות שהשאלה "Where is my package for ABC123" תזוהה בטעות בתור "Where is my package 4ABC123".
3. דרישה להוספת הערות לביטויי אימון
אל תשתמשו בישות regexp בשביל הערה לביטוי אימון של Intent. כך הפרמטר יזוהה כחלק ממילוי הטופס.
4. דרישת בדיקה
דוגמאות
לדוגמה, ישות של ביטוי רגולרי עם רשומה אחת ([a-zA-Z0-9]\s?){5,9} לא תפעיל את מזהה רצף הדיבור כי היא מכילה קבוצה לחילוץ.
כדי לפתור את הבעיה, פשוט מוסיפים עוד רשומה של [a-zA-Z0-9]{5,9}. עכשיו תוכלו ליהנות מהיתרונות של מזהה הרצפים כשתתאימו את "ABC123", אבל ה-NLU עדיין יתאים קלט כמו "ABC 123" בזכות הכלל המקורי שמאפשר רווחים.
הדוגמאות הבאות של ביטויים רגולריים מתאימות לרצפים אלפאנומריים:
^[A-Za-z0-9]{1,10}$
WAC\d+
215[2-8]{3}[A-Z]+
[a-zA-Z]\s?[a-zA-Z]\s?[0-9]\s?[0-9]\s?[0-9]\s?[a-zA-Z]\s?[a-zA-Z]
הדוגמאות הבאות של ביטויים רגולריים מתאימות לרצפים של ספרות:
\d{2,8}
^[0-9]+$
2[0-9]{7}
[2-9]\d{2}[0-8]{3}\d{4}
פתרון עקיף לביטויים רגולריים
התמיכה המובנית של התאמת דיבור אוטומטית בישויות של ביטויים רגולריים משתנה בהתאם לשפה.
אסימונים של מחלקות דיבור
לשפות נתמכות ב-$OOV_CLASS_ALPHANUMERIC_SEQUENCE וב-$OOV_CLASS_DIGIT_SEQUENCE.
אם השפה שלכם לא מופיעה ברשימה, אתם יכולים לעקוף את המגבלה הזו. לדוגמה, אם רוצים שמזהה עובד שמורכב משלוש אותיות ואחריהן שלוש ספרות יזוהה בצורה מדויקת, אפשר לבנות את הנציג עם הישויות והפרמטרים הבאים:
- מגדירים ישות
digitשמכילה 10 רשומות של ישויות (עם מילים נרדפות):0, 01, 1...9, 9 - מגדירים ישות
letterשמכילה 26 רשומות של ישויות (עם מילים נרדפות):A, AB, B...Z, Z - מגדירים ישות
employee-idשמכילה רשומת ישות אחת (בלי מילים נרדפות):@letter @letter @letter @digit @digit @digit - משתמשים ב-
@employee-idכפרמטר בביטוי לאימון.
התאמה ידנית של הדיבור
התאמה ידנית של זיהוי הדיבור מאפשרת להגדיר באופן ידני ביטויים להתאמה של זיהוי הדיבור ל-flow או לדף. הוא גם מבטל הקשרים מרומזים של דיבור שנוצרים על ידי התאמת דיבור אוטומטית, כשהיא מופעלת.
הגדרות התאמת הדיבור ברמת התהליך וברמת הדף קשורות זו לזו באופן היררכי. כלומר, כברירת מחדל, הדף מקבל את הגדרות התאמת הדיבור מרמת התהליך, וההגדרות המפורטות יותר ברמת הדף תמיד מבטלות את ההגדרות ברמת התהליך אם לדף יש הגדרה מותאמת אישית.
אפשר להפעיל את הגדרת התאמת הדיבור, הגדרת רמת התהליך והגדרת רמת הדף בנפרד. אם ההגדרה של התאמת התהליך לא מופעלת, עדיין אפשר לבחור באפשרות התאמה אישית ברמת הדף כדי להפעיל התאמה ידנית של הדיבור בדף הספציפי הזה. באופן דומה, אם משביתים את ההתאמה הידנית של זיהוי הדיבור בהגדרות ברמת התהליך, הדפים בתהליך שבהם נבחרה האפשרות Customize לא יושפעו.
עם זאת, אי אפשר להשבית את ההגדרה ברמת התהליך ואת ההגדרה ברמת הדף בנפרד. אם בתהליך מסוים מופעלת התאמה ידנית של דיבור, אי אפשר להשבית אותה בדף שבתהליך באמצעות האפשרות Customize. לכן, אם אתם רוצים להשתמש גם בהתאמה ידנית וגם בהתאמה אוטומטית של הדיבור בדפים בתוך תהליך, אל תפעילו את ההתאמה הידנית של הדיבור ברמת התהליך, אלא השתמשו רק בהגדרות ההתאמה ברמת הדף. אתם יכולים לעיין בטבלה הבאה כדי להבין באיזה שילוב של תהליך והגדרת דף כדאי להשתמש בהתאם לתרחיש ההתאמה שלכם.
| אפקט היעד | שימוש מומלץ בהגדרות של טירגוט אוטומטי |
|---|---|
| השבתת ההתאמה האוטומטית בתהליך | התהליך מופעל בלי קבוצות של ביטויים (כברירת מחדל, הדפים בתהליך משתמשים בהגדרת התהליך). |
| השבתת ההתאמה האוטומטית בדף מסוים | התהליך מושבת והדף מופעל (נבחרה האפשרות התאמה אישית) בלי קבוצות של ביטויים. |
| שימוש בהתאמה ידנית של דיבור רק לכל הדפים בתהליך | התהליך הופעל. התאמה אישית של דפים שצריך להשתמש בהם בקבוצות של ביטויים שונות מאלה שבתהליך. |
| שימוש משולב בהתאמה אוטומטית וידנית בתהליך אחד | התהליך מושבת. מתאימים אישית את הדפים שרוצים להחיל עליהם התאמה ידנית. |
| שימוש בהתאמת דיבור אוטומטית רק בכל הדפים בתהליך | התהליך מושבת. |
הפעלה או השבתה של התאמת דיבור ידנית
כדי להפעיל או להשבית התאמה ידנית של דיבור ברמת התהליך או הדף:
הגדרות תהליך העבודה
- פותחים את מסוף Dialogflow CX.
- בוחרים את הפרויקט ב- Google Cloud .
- מעבירים את העכבר מעל התהליך בקטע תהליכים.
- לוחצים על כפתור האפשרויות .
- בתפריט הנפתח, לוחצים על הגדרות תהליך.
- מסמנים את התיבה הפעלת התאמה ידנית של הדיבור או מבטלים את הסימון שלה.
- עריכה, הוספה או מחיקה של קבוצות ביטויים בטבלת קבוצות הביטויים
- לוחצים על Save.
הגדרות הדף
- פותחים את מסוף Dialogflow CX.
- בוחרים את הפרויקט ב- Google Cloud .
- מעבירים את העכבר מעל הדף בקטע דפים.
- לוחצים על כפתור האפשרויות .
- בתפריט הנפתח, בוחרים באפשרות הגדרות דף.
- האפשרות Use flow level (שימוש ברמת התהליך) נבחרת כברירת מחדל. כשבוחרים בה, ביטויי ההתאמה ברמת התהליך ישמשו שוב בדף הזה. אתם יכולים לבחור באפשרות Customize כדי להגדיר ביטויי התאמה שונים מההגדרות ברמת התהליך. גם אם התאמת הדיבור הידנית מושבתת ברמת התהליך, עדיין אפשר להפעיל ולהגדיר אותה לדף בתהליך הזה באמצעות האפשרות Customize.
- עריכה, הוספה או מחיקה של קבוצת ביטויים בטבלה של קבוצות הביטויים להתאמה אישית
- לוחצים על Save.
הגדרה ידנית של קבוצת ביטויים לשיפור זיהוי הדיבור
1. מילים וביטויים
בקבוצת ביטויים להתאמה, אפשר להגדיר ביטויים של מילה אחת או כמה מילים, עם הפניות אופציונליות לאסימונים של מחלקות דיבור. לדוגמה, אפשר להוסיף ביטויים כמו "great rate", "מספר מעקב הוא $OOV_CLASS_ALPHANUMERIC_SEQUENCE" או "$FULLPHONENUM". הביטויים האלה מגדילים את הסיכוי שהם יתומללו על פני ביטויים אחרים שדומים מבחינה פונטית. כשמוסיפים ביטוי עם כמה מילים בלי לשפר את הדירוג, ההטיה חלה על כל הביטוי ועל החלקים הרציפים בתוך הביטוי. באופן כללי, מספר הביטויים צריך להיות קטן, וצריך להוסיף רק ביטויים שזיהוי הדיבור מתקשה לזהות נכון בלי התאמת דיבור. אם Speech-to-Text כבר מזהה ביטוי בצורה נכונה, אין צורך להוסיף את הביטוי הזה להגדרות של התאמת הדיבור. אם אתם רואים כמה ביטויים ש-Speech-to-Text לא מזהה לעיתים קרובות בדף או בתהליך, אתם יכולים להוסיף את הביטויים הנכונים להגדרות ההתאמה המתאימות.
דוגמה לתיקון שגיאת זיהוי
הדוגמה הבאה ממחישה איך אפשר להשתמש בהתאמת דיבור כדי לתקן בעיות בזיהוי. נניח שאתם מתכננים נציג למסחר בטלפונים, והמשתמש יכול לומר משהו שכולל את הביטויים "sell phones" או "cell phone" אחרי שהנציג שואל את השאלה הראשונה שלו, "what do you need help with?". איך אפשר להשתמש בהתאמת דיבור כדי לשפר את דיוק הזיהוי של שני הביטויים?
אם תכללו את שני הביטויים בהגדרות ההתאמה, יכול להיות ש-Speech-to-Text עדיין יתבלבל כי הם נשמעים דומה. אם תספקו רק אחד משני הביטויים, יכול להיות שהמערכת תזהה בטעות את הביטוי השני בתור הביטוי הראשון. כדי לשפר את הדיוק של זיהוי הדיבור בשני הביטויים, צריך לספק ל-Speech-to-Text עוד רמזים להקשר, כדי להבחין בין המקרים שבהם צריך לשמוע "sell phones" לבין המקרים שבהם צריך לשמוע "cell phone". לדוגמה, יכול להיות שתבחינו שאנשים משתמשים לעיתים קרובות בביטוי "מכירת טלפונים" כחלק מהתבטאויות כמו "איך למכור טלפונים", "רוצה למכור טלפונים" או "האם אתם מוכרים טלפונים", ואילו בביטוי "טלפון סלולרי" כחלק מהתבטאויות כמו "רכישת טלפון סלולרי", "חשבון טלפון סלולרי" ו "שירות טלפון סלולרי". אם תספקו למודל את הביטויים המדויקים יותר האלה במקום הביטויים המקוריים הקצרים "cell phone" ו-"sell phones", המודל של Speech-to-Text ילמד שסביר יותר שהביטוי הפועלי "sell phone" יופיע אחרי מילים כמו "how to", "want to" ו-"do you", ואילו סביר יותר שהביטוי השמני "cell phone" יופיע אחרי מילים כמו "purchase" או לפני מילים כמו "bill" או "service". לכן, ככלל אצבע להגדרת ביטויי התאמה, בדרך כלל עדיף לספק ביטויים מדויקים יותר כמו "איך למכור טלפונים" או "האם אתם מוכרים טלפונים" מאשר לכלול רק את הביטוי "למכור טלפון".
2. טוקנים של שיעורי דיבור
בנוסף למילים בשפה טבעית, אפשר גם להטמיע בביטוי הפניות לאסימונים של מחלקות דיבור. אסימונים של מחלקות דיבור מייצגים מושגים נפוצים שבדרך כלל נכתבים בפורמט מסוים. לדוגמה, בכתובת כמו "רחוב הרצל 123", אנשים בדרך כלל מצפים לראות את מספר הבית בפורמט מספרי, "123", ולא בפורמט מילולי, "מאה עשרים ושלוש". אם אתם מצפים לפורמט מסוים בתוצאות התמלול, במיוחד לרצפים אלפאנומריים, עיינו ברשימת אסימוני המחלקות הנתמכים כדי לראות אילו אסימונים זמינים לשפה ולתרחיש לדוגמה שלכם.
אם בדף כבר יש נתיבי Intent או פרמטרים עם הפניות לישויות מערכת, בטבלה הבאה מפורטים המיפויים בין ישויות מערכת נפוצות לבין אסימונים של מחלקות דיבור:
| ישויות מערכת | טוקנים של שיעורי דיבור |
|---|---|
@sys.date |
$MONTH $DAY $YEAR |
@sys.date-time |
$MONTH $DAY $YEAR |
@sys.date-period |
$MONTH $DAY $YEAR |
@sys.time |
$TIME |
@sys.time-period |
$TIME |
@sys.age |
$OPERAND |
@sys.number |
$OPERAND |
@sys.number-integer |
$OPERAND |
@sys.cardinal |
$OPERAND |
@sys.ordinal |
$OPERAND |
@sys.percentage |
$OPERAND |
@sys.duration |
$OPERAND |
@sys.currency-name |
$MONEY |
@sys.unit-currency |
$MONEY |
@sys.phone-number |
$FULLPHONENUM |
@sys.zip-code |
$POSTALCODE או $OOV_CLASS_POSTALCODE |
@sys.address |
$ADDRESSNUM $STREET $POSTALCODE |
@sys.street-address |
$ADDRESSNUM $STREET $POSTALCODE |
@sys.temperature |
$OOV_CLASS_TEMPERATURE |
@sys.number-sequence |
$OOV_CLASS_DIGIT_SEQUENCE |
@sys.flight-number |
$OOV_CLASS_ALPHANUMERIC_SEQUENCE |
3. ערך השיפור
אם הוספת ביטויים בלי ערך ההגברה לא מספקת אפקט הטיה חזק מספיק, אתם יכולים להשתמש בערך ההגברה כדי לחזק עוד יותר את אפקט ההטיה של התאמת הדיבור.
ההגדרה "חיזוק" מוסיפה הטיה כשהערכים שלה גדולים מ-0 וקטנים מ-20. כשהערך של boost ריק או שווה ל-0, אפקט ההטיה שמוגדר כברירת מחדל עוזר לזהות את כל הביטוי ואת החלקים הרציפים בתוך הביטוי. לדוגמה, ביטוי ללא שיפור כמו "are you open to sell phones" עוזר לזהות את הביטוי הזה וגם ביטויים דומים כמו "I sell phones" ו-"Hi are you open".
כשמפעילים חיזוק חיובי, אפקט ההטיה חזק יותר, אבל הוא חל רק על הביטוי המדויק. לדוגמה, אם משפרים את הביטוי "מכירת טלפונים", המערכת תזהה את המשפט "אפשר לבצע מכירת טלפונים" אבל לא את המשפט "האם אתם מוכרים טלפונים".
לכן, כדי לקבל את התוצאות הטובות ביותר, כדאי לספק ביטויים גם עם הגברה וגם בלי הגברה.
ערכי שיפור גבוהים יותר יכולים להוביל לפחות תוצאות שליליות מוטעות, שהן מקרים שבהם המילה או הביטוי הופיעו באודיו אבל לא זוהו בצורה נכונה על ידי Speech-to-Text (הטיה נמוכה מדי). עם זאת, הגברת החשיבות יכולה גם להגדיל את הסבירות לתוצאות חיוביות כוזבות, כלומר מקרים שבהם המילה או הביטוי מופיעים בתמליל למרות שהם לא נאמרו באודיו (הטיה מוגזמת). בדרך כלל צריך לכוונן את ביטויי ההטיה כדי למצוא נקודת פשרה טובה בין שתי בעיות ההטיה.
במסמך של Cloud Speech בנושא חיזוק מוסבר איך לשפר את ערך החיזוק של ביטויים.
ב-Speech-to-Text V2 chirp_3 יש תמיכה בעד 1,000 ביטויים לכל בקשה, והמערכת מתעלמת מערכים מספריים של boost. במאמר שיפור הדיוק באמצעות התאמת מודל מפורטות המגבלות וההנחיות להתאמה של chirp_3.
מתי כדאי להשתמש בהתאמה אוטומטית או ידנית של הדיבור
באופן כללי, אם אתם לא בטוחים אם התאמת הדיבור תשפר את איכות זיהוי הדיבור של הנציג (אין דפוסים ברורים של שגיאות תמלול), מומלץ לנסות קודם את התאמת הדיבור האוטומטית לפני שמשתמשים בהתאמת דיבור ידנית. כדי לקבל החלטות מורכבות יותר, כדאי להביא בחשבון את הגורמים הבאים כשמחליטים בין התאמה אוטומטית או ידנית של הדיבור:
1. מילוי טפסים
התאמת דיבור אוטומטית פועלת היטב עם מילוי טפסים, כי היא משתמשת בהקשר דקדוקי של ABNF לפרמטרים של הטופס, ואוכפת כללי דקדוק על סמך סוגי הישויות שלהם. מכיוון שהתאמה ידנית של דיבור עדיין לא תומכת בדקדוקי ABNF, בדרך כלל עדיף להשתמש בהתאמה אוטומטית של דיבור על פני התאמה ידנית של דיבור בדף למילוי טפסים. עם זאת, בדפים שכוללים רק פרמטרים של ישויות מערכת וישויות פשוטות של ביטויים רגולריים שנתמכים על ידי אסימונים של סיווג דיבור, אתם יכולים גם להשתמש בהתאמה ידנית של הדיבור כדי להשיג אפקט הטיה דומה להתאמה אוטומטית של הדיבור, בלי צורך לכוונן ישויות של ביטויים רגולריים.
2. מורכבות המעבר בין דפים או תהליכים
בדף או בתהליך פשוטים עם כמה נתיבי כוונה, סביר להניח שהתאמת הדיבור האוטומטית תיצור ביטויי הטיה מייצגים ותפעל בצורה סבירה.
עם זאת, אם בדף או בתהליך יש הרבה מסלולי כוונות (בדף, כדאי גם להביא בחשבון את מספר המסלולים ברמת התהליך), או אם לאחת מהכוונות יש ביטויי אימון ארוכים או קצרים מדי ולא חשובים (לדוגמה, משפט שלם או מילה אחת עם הברה אחת או שתיים בלבד), סביר מאוד להניח שמודל ההתאמה לדיבור לא יעבוד טוב עם הביטויים האלה. קודם כל, כדאי לנסות להשבית את התאמת הדיבור בדפים הפתוחים עם המורכבות הגבוהה. כדי לעשות את זה, צריך להפעיל התאמת דיבור ידנית עם קבוצות ריקות של ביטויים (שינוי ידני של התאמה ריקה). ואחרי זה, בדקו אם יש ביטויים מיוחדים וחד-משמעיים שעדיין צריך לספק ל-Speech-to-Text כדי לשפר את איכות הזיהוי.
תסמין נוסף של בעיית המורכבות הזו הוא מגוון רחב של בעיות של הטיה חיובית או שלילית, כשמופעלת התאמה אוטומטית לדיבור. בדומה למקרה שלמעלה, צריך קודם לבדוק את הדף הספציפי כשהתאמת הדיבור מושבתת. אם ההתנהגויות השגויות נמשכות אחרי השבתת התאמת הדיבור, אתם יכולים להוסיף את הביטויים שאתם רוצים לתקן להגדרות של התאמת הדיבור, ואפילו להוסיף ערכי חיזוק כדי להגביר את ההשפעה של ההטיה במקרה הצורך.
בדיקת ההתאמה לדיבור
כשבודקים את יכולות ההתאמה לדיבור של הנציג בביטוי ספציפי לאימון או בהתאמה לישות, לא כדאי לעבור ישירות לבדיקת ההתאמה עם האמירה הקולית הראשונה בשיחה. צריך להשתמש רק בקלט קולי או בקלט של אירועים בכל השיחה לפני ההתאמה שרוצים לבדוק. ההתנהגות של הנציג בבדיקה כזו תהיה דומה להתנהגות בשיחות ייצור בפועל.
מגבלות
המגבלות הבאות חלות:
- התאמת דיבור לא זמינה לכל השילובים של מודלים של דיבור ושפות. בדף התמיכה בשפות של Cloud Speech תוכלו לבדוק אם התכונה "התאמת מודל" זמינה לשילוב של מודל הדיבור והשפה שלכם.
נכון לעכשיו, התאמה ידנית של זיהוי הדיבור לא תומכת במחלקות בהתאמה אישית או בדקדוק ABNF. כדי להשתמש בתכונות ההתאמה האלה, אתם יכולים להפעיל התאמה אוטומטית לדיבור או להשתמש בבקשה לזיהוי כוונה בזמן הריצה.
אותו ערך שיפור עשוי לפעול באופן שונה במודלים שונים של דיבור ובשפות שונות, לכן צריך להיזהר כשמגדירים אותם באופן ידני לנציגים שמשתמשים בכמה שפות או מודלים של דיבור. נכון לעכשיו, התאמה ידנית של דיבור חלה על כל השפות בנציג, כך שנציגים רב-לשוניים צריכים להשתמש רק בביטויים שאינם תלויי שפה או לפצל כל שפה לנציג נפרד. התנהגות ברירת המחדל של ההטיה (ללא הגברה או הגברה של 0) בדרך כלל פועלת בצורה סבירה בכל השפות והמודלים, לכן אין צורך להגדיר ערכי הגברה ספציפיים לשפה, אלא אם נדרשת הטיה חזקה יותר לתרחיש השימוש של הזיהוי. במדריך הזה של Cloud Speech-to-Text מוסבר איך לשפר את ערך ההגברה.
- זיהוי רצפים ארוכים של תווים הוא משימה מאתגרת. מספר התווים שמתועדים בכל פעם קשור ישירות לאיכות של קלט האודיו.
אם פעלתם לפי כל ההנחיות לישויות של ביטויים רגולריים וניסיתם להשתמש בטוקנים רלוונטיים של מחלקות דיבור בהגדרות הידניות של התאמת הדיבור, ועדיין קשה לכם לתעד את כל הרצף בפנייה אחת, אתם יכולים לנסות כמה חלופות נוספות לשיחה:
- כשמאמתים את הרצף מול מסד נתונים, כדאי להצליב נתונים עם פרמטרים אחרים שנאספו, כמו תאריכים, שמות או מספרי טלפון, כדי לאפשר התאמות חלקיות. לדוגמה, במקום לבקש מהמשתמש רק את מספר ההזמנה, אפשר לבקש גם את מספר הטלפון שלו. עכשיו, כשה-webhook שולח שאילתה למסד הנתונים כדי לבדוק את סטטוס ההזמנה, הוא יכול להסתמך קודם על מספר הטלפון, ואז להחזיר את ההזמנה עם ההתאמה הכי קרובה לחשבון הזה. כך Dialogflow יכול לשמוע בטעות "AVC" במקום "ABC", ועדיין להחזיר למשתמש את סטטוס ההזמנה הנכון.
- אם מדובר ברצפים ארוכים במיוחד, כדאי לתכנן תהליך שמעודד את משתמשי הקצה לעצור באמצע כדי שהבוט יוכל לאשר את הפרטים תוך כדי התהליך.