מדידה ושיפור של דיוק הדיבור

זיהוי דיבור אוטומטי (ASR), שנקרא גם תמלול מכונה או המרת דיבור לטקסט (STT), משתמש בלמידת מכונה כדי להפוך אודיו שמכיל דיבור לטקסט. ל-ASR יש הרבה שימושים, החל מכתוביות, דרך עוזרים וירטואליים, תגובות קוליות אינטראקטיביות (IVR), הכתבה ועוד. עם זאת, מערכות של למידת מכונה הן לעיתים רחוקות מדויקות ב-100%, ו-ASR לא יוצאת מן הכלל. אם אתם מתכננים להסתמך על ASR במערכות קריטיות, חשוב מאוד למדוד את הדיוק או האיכות הכוללת שלו כדי להבין את הביצועים שלו במערכת הרחבה יותר שמשלבת אותו.

אחרי שמודדים את רמת הדיוק, אפשר לכוונן את המערכות כדי לקבל רמת דיוק גבוהה עוד יותר במצב הספציפי שלכם. ב-Cloud Speech-to-Text API של Google, אפשר לשפר את הדיוק על ידי בחירת מודל הזיהוי המתאים ביותר ושימוש ב-Speech Adaptation API. אנחנו מציעים מגוון רחב של מודלים שמותאמים לתרחישי שימוש שונים, כמו אודיו ארוך, שיחות רפואיות או שיחות טלפון.

הגדרת דיוק הדיבור

יש מגוון דרכים למדוד את דיוק הדיבור. יכול להיות שכדאי לכם להשתמש בכמה מדדים, בהתאם לצרכים שלכם. עם זאת, השיטה המקובלת בתחום להשוואה היא שיעור שגיאות במילים (WER), שלרוב מקוצרת ל-WER. שיעור השגיאות בתמליל (WER) הוא מדד שמייצג את אחוז המילים הלא נכונות בתמליל מתוך כל המילים. שיעור WER נמוך יותר מצביע על כך שהמערכת מדויקת יותר.

יכול להיות שתראו גם את המונח ground truth בהקשר של דיוק ה-ASR. האמת הבסיסית היא התמליל המדויק ב-100%, בדרך כלל התמליל שסופק על ידי אדם, שמשמש להשוואה ולמדידת הדיוק.

שיעור שגיאות במילים (WER)

WER הוא שילוב של שלושה סוגים של שגיאות תמלול שיכולות להתרחש:

  • שגיאת הוספה (I): מילים שמופיעות בתמליל ההיפותזה אבל לא בתמליל האמת.
  • שגיאות החלפה (S): מילים שמופיעות גם בהשערה וגם באמת הבסיסית, אבל לא תומללו בצורה נכונה.
  • שגיאות מחיקה (D): מילים שחסרות בהשערה אבל מופיעות בנתוני האמת.

\[WER = {S+R+Q \over N}\]

כדי לחשב את WER, מחברים את המספר הכולל של כל אחת מהשגיאות האלה ומחלקים במספר הכולל של המילים (N) בתמליל האמת הבסיסית. ה-WER יכול להיות גדול מ-100% במצבים שבהם רמת הדיוק נמוכה מאוד, למשל כשמוסיפים כמות גדולה של טקסט חדש. הערה: החלפה היא בעצם מחיקה ואחריה הוספה, ויש החלפות שהן פחות חמורות מאחרות. לדוגמה, יכול להיות הבדל בין החלפת אות אחת לבין החלפת מילה.

הקשר בין WER לציון מהימנות

מדד WER לא תלוי בציון מהימנות, ובדרך כלל אין קשר ביניהם. ציון המהימנות מבוסס על הסבירות, ואילו שיעור שגיאות המילים מבוסס על השאלה אם המילה זוהתה בצורה נכונה או לא. אם המילה לא מזוהה בצורה נכונה, זה אומר שגם שגיאות דקדוקיות קלות יכולות לגרום ל-WER גבוה. מילה שמזוהה בצורה נכונה מובילה ל-WER נמוך, אבל עדיין יכולה להוביל להסתברות נמוכה, וכתוצאה מכך לרמת ביטחון נמוכה אם המילה לא מופיעה בתדירות גבוהה או אם האודיו רועש מאוד.

באופן דומה, למילה שמשתמשים בה לעיתים קרובות יש סיכוי גבוה להיות מתומללת נכון על ידי ה-ASR, מה שמוביל לציון גבוה של רמת הסמך. לדוגמה, אם מזוהה הבדל בין המילה "I" לבין המילה "eye", יכול להיות שרמת הסמך תהיה גבוהה, כי המילה "I" נפוצה יותר, אבל מדד ה-WER ירד בגלל זה.

לסיכום, מדדי הביטחון וה-WER הם בלתי תלויים, ולא צפוי מתאם ביניהם.

נירמול

כשמחשבים את מדד WER, התמלול של המכונה מושווה לתמלול של אמת בסיסית שסופק על ידי אדם. הטקסט משני התמלילים עובר נורמליזציה לפני ההשוואה. כשמשווים בין התמלול שנוצר על ידי המכונה לבין התמלול שסופק על ידי אדם, סימני הפיסוק מוסרים והשימוש באותיות רישיות לא נלקח בחשבון.

מוסכמות של ערכי סף (ground truth)

חשוב להבין שאין פורמט תמלול יחיד שמוסכם על כולם לכל אודיו נתון. יש הרבה היבטים שצריך לקחת בחשבון. לדוגמה, יכול להיות שבאודיו יש קולות אחרים שהם לא דיבור, כמו "אהה", "כן", "הממ". חלק מהמודלים של Cloud STT, כמו medical_conversation, כוללים את הקולות האלה, ואחרים לא. לכן חשוב שהמוסכמות של נתוני האמת יתאימו למוסכמות של המודל שנבדק. ההנחיות הבאות ברמה גבוהה משמשות להכנת תמלול טקסט של נתוני אמת עבור אודיו נתון.

  • בנוסף לאותיות רגילות, אפשר להשתמש בספרות 0-9.
  • אל תשתמשו בסמלים כמו @,‏ #,‏ $,‏ .. השתמשו במילים כמו 'at',‏ 'hash',‏ 'dollar',‏ 'dot'.
  • משתמשים בסימן '%' רק אחרי מספר. אחרת, משתמשים במילה 'אחוזים'.
  • משתמשים בסימן '$' רק כשהוא מופיע לפני מספר, למשל 'Milk is $3.99'.

  • משתמשים במילים למספרים מתחת ל-10.

    • לדוגמה, "יש לי ארבעה חתולים ו-12 כובעים".
  • משתמשים במספרים למדדים, למטבעות ולגורמים גדולים כמו מיליון, מיליארד או טריליון. לדוגמה, "7.5 million" במקום "seven and a half million".

  • אל תשתמשו בקיצורים במקרים הבאים:

    מה לעשות מה לא לעשות
    לוחמים נגד לייקרס לוחמים נגד לייקרס
    אני גר ברחוב הראשי 123 אני גר ברחוב הראשי 123

מדידת דיוק הדיבור

כדי להתחיל לבדוק את רמת הדיוק באמצעות האודיו, פועלים לפי השלבים הבאים:

איסוף קובצי אודיו לבדיקה

כדי למדוד את האיכות של קובצי אודיו, צריך לאסוף מדגם מייצג שלהם. המדגם הזה צריך להיות אקראי ודומה ככל האפשר לסביבת היעד. לדוגמה, אם רוצים לתמלל שיחות ממוקד טלפוני כדי לשפר את בקרת האיכות, צריך לבחור באופן אקראי כמה שיחות אמיתיות שהוקלטו באותו ציוד שדרכו עובר האודיו של ההפקה. אם האודיו מוקלט במיקרופון של הטלפון הנייד או המחשב ולא מייצג את תרחיש השימוש שלכם, אל תשתמשו באודיו המוקלט.

כדי לקבל מדד דיוק עם מובהקות סטטיסטית, צריך להקליט אודיו למשך 30 דקות לפחות. מומלץ להשתמש באודיו באורך של 30 דקות עד 3 שעות. בשיעור ה-Lab הזה, האודיו מסופק לכם.

קבלת תמלילים מדויקים

לקבל תמלילים מדויקים של האודיו. בדרך כלל מדובר בתמלול חד-שלבי או דו-שלבי של האודיו הרלוונטי על ידי אדם. המטרה היא לקבל תמליל מדויק ב-100% כדי למדוד את התוצאות האוטומטיות בהשוואה אליו.

כשמשיגים תמלילים של נתוני אמת, חשוב להתאים אותם ככל האפשר למוסכמות התמלול של מערכת ה-ASR שלכם. לדוגמה, צריך לוודא שסימני הפיסוק, המספרים והשימוש באותיות רישיות עקביים.

מקבלים תמליל אוטומטי ומתקנים את הבעיות בטקסט שזיהיתם.

קבלת תמליל אוטומטי

שולחים את האודיו אל Cloud Speech-to-Text API ומקבלים את התמלול המשוער באמצעות Cloud Speech-to-Text UI.

התאמה בין נתוני האמת לבין האודיו

בכלי ממשק המשתמש, לוחצים על Attach ground truth (צירוף נתוני אמת) כדי לשייך קובץ אודיו מסוים לנתוני האמת שסופקו. אחרי שמסיימים את ההוספה, אפשר לראות את מדד WER ואת ההמחשה של כל ההבדלים.