תמלול שיחה בעברית מייצר ארבעה נכסים נפרדים עם ארבעה שעוני שמירה. מה נשמר, מי רשאי לקרוא, ואיך מאמתים משפט בסיכום מול הרגע המדויק שבו נאמר בהקלטה.
עיקרי הדברים
- קוד השפה לעברית אינו אחיד בין ספקים. Google Cloud Speech-to-Text מציג עברית כ-iw-IL, Azure Speech כ-he-IL, ורשם תגי השפה של IANA מסמן את iw כמיושן מאז 1989 עם ערך מועדף he. שליחת הקוד הלא נכון היא כישלון שקט.
- חותמות זמן ברמת מילה אינן מובנות מאליהן. בתיעוד של OpenAI הפרמטר timestamp_granularities נתמך רק במודל whisper-1, וזיהוי דוברים נעשה במודל ייעודי שמחזיר מקטעים עם דובר והתחלה וסוף.
- בלי עוגן זמן לכל טענה בסיכום, בדיקה פירושה להאזין מחדש לארבעים דקות בעברית. עם עוגן, זו האזנה של עשרים שניות.
- שיחה עסקית בישראל מערבת עברית ואנגלית באותו משפט, ושם מתרכזות שגיאות הזיהוי: שמות מוצרים, מונחים טכניים ושמות מערכות.
- הקלטת שיחה היא מידע אישי. איזה נכס נשמר, לכמה זמן ומי רשאי לפתוח אותו הן החלטות שנרשמות מראש, ושאלת החובה מופנית לעורך דין.
תמלול שיחה בעברית אינו מייצר קובץ אחד אלא ארבעה נכסים נפרדים: ההקלטה, התמליל, הסיכום והשדות שנגזרו ממנו. לכל אחד מהם רשימת הרשאות משלו ושעון מחיקה משלו, ומשפט בסיכום ניתן לאימות רק אם נשמרה לצידו נקודת הזמן המדויקת שממנה הוא נובע.
הערה: זהו תיאור תכנוני. השאלה אם מותר להקליט ומה חובה למסור למי שנמצא בשיחה היא שאלה משפטית שיש להפנות לעורך דין, ולא נדונה כאן.
למה קוד השפה לעברית שובר אינטגרציות
זו התקלה שגוזלת הכי הרבה זמן במערכת תמלול ישראלית ראשונה, מפני שהיא אינה נראית כמו תקלה. מעבירים למנוע קוד שפה, מקבלים תמליל, והתמליל פשוט גרוע.
- רשם תגי השפה של IANA מגדיר את התג he לעברית, ומסמן את התג iw כמיושן החל מ-1989 עם ערך מועדף he. כלומר iw הוא הקוד ההיסטורי, ו-he הוא הנוכחי.
- Google Cloud Speech-to-Text מפרט בטבלת השפות שלו את עברית ישראל תחת iw-IL, כלומר דווקא בצורה ההיסטורית.
- Azure AI Speech מפרט את עברית ישראל תחת he-IL בטבלאות שלו, כולל תעתיק דיבור לטקסט וקולות סינתזה.
- OpenAI מתאר שהפרמטר languages מקבל קודי ISO 639-1, שהם קודים בני שתי אותיות מהסוג של he.
המסקנה אינה שספק אחד טועה, אלא שקוד השפה הוא פרמטר תלוי ספק ולא קבוע גלובלי. הוא נשמר בהגדרות לצד שם המנוע, נבדק בבדיקת קישוריות, ולא נכתב בקוד בשני מקומות שונים.
מה בדיוק נשמר, ומה נמחק?
ארבעה נכסים, ולכל אחד החלטה נפרדת. הטעות הנפוצה היא להתייחס לכולם כאל פריט אחד בשם ההקלטה, ואז לגלות שמחיקה של הקובץ השאירה את התמליל המלא במקום אחר.
| נכס | מה יש בו | מי צריך גישה | החלטת שמירה | איך מוכיחים מחיקה |
|---|---|---|---|---|
| קובץ אודיו | קול, רקע, כל מה שנאמר | מספר מצומצם, לצורך אימות בלבד | הקצר ביותר מהארבעה | הקובץ נמחק והפניה נשארת מסומנת |
| תמליל מלא | כל מילה שנאמרה, בטקסט | מי שמאמת סיכום | בינוני, מקושר לצורך העסקי | שדה טקסט מרוקן ברשומה קיימת |
| סיכום | טענות שנגזרו, לא ציטוט | צוות רחב יותר | הארוך יותר, זה הפריט השימושי | נמחק עם התיק שאליו שייך |
| שדות נגזרים | סכומים, תאריכים, פריטים | מערכות המשך | לפי כללי הרשומה העסקית | חלק מהרשומה, לא מהשיחה |
השורה השלישית היא הסיבה שהחלוקה חשובה. הסיכום הוא מה שהעסק באמת צריך לאורך זמן, והוא גם הפריט הפחות רגיש. שמירה של הסיכום עם מחיקת האודיו והתמליל היא בדיוק הפשרה שרוב העסקים מחפשים, ואי אפשר לבצע אותה אם שלושתם שמורים באותו שדה.
איך בודקים משפט בסיכום מול ההקלטה?
בעזרת עוגן זמן שנשמר יחד עם המשפט, ולא בעזרת אמון. בלי עוגן, אימות טענה אחת פירושו לפתוח הקלטה בת ארבעים דקות בעברית ולחפש, ואיש לא יעשה זאת יותר מפעם אחת.
התיעוד של OpenAI מספק את המרכיבים אך לא בצורה אחידה בין המודלים, ולכן כדאי לקרוא אותם לפני שבוחרים:
- חותמות זמן. הפרמטר timestamp_granularities מחזיר חותמות ברמת מילה או מקטע, והתיעוד מציין שהוא נתמך רק במודל whisper-1.
- זיהוי דוברים. מודל ייעודי לזיהוי דוברים מחזיר בפורמט diarized_json מקטעים עם שדות דובר, התחלה וסוף.
- גודל קובץ. ממשק התמלול מקבל קבצים עד 25 מגה-בייט, והתיעוד ממליץ לפצל קבצים גדולים יותר ולא לחתוך באמצע משפט, מפני שחיתוך כזה מסיר הקשר ופוגע בדיוק.
- פורמטים. מבין הפורמטים הנתמכים לקלט מפורטים mp3, mp4, mpeg, mpga, m4a, wav ו-webm.
מכאן נגזר כלל אחד לסיכום: כל שורה בסיכום נושאת התחלה, סוף, ודובר כשהוא זמין. שורה בלי עוגן אינה נמחקת, אלא מסומנת כלא מאומתת, וזו הבחנה שהופכת סיכום מטקסט לנכס.
איפה זיהוי הדיבור בעברית נכשל, ולמה זה חשוב לסיכום
השגיאות אינן מפוזרות באחידות. הן מתרכזות בדיוק במקומות שמייצרים שורות בסיכום:
- מעבר בין עברית לאנגלית באותו משפט. בשיחה עסקית ישראלית זה נורמלי לחלוטין, ושמות מערכות ומונחים טכניים נשמעים באנגלית בתוך תחביר עברי. שם מוצר שנשמע לא נכון הופך לשורה שגויה בסיכום.
- מספרים שנאמרים במילים. סכום שנאמר בעברית מגיע כמילים ולא כספרות, וכל המרה למספר היא פרשנות. סכומים בסיכום נשארים כציטוט עד שאדם אישר אותם.
- שמות פרטיים ושמות עסקים. אין באלה רמז הקשרי, ובעברית גם אין אות רישית שתסמן אותם. הם השדה הראשון שכדאי לספק למנוע כרשימת מונחים מראש.
- דיבור במקביל. שני דוברים שמדברים יחד מייצרים מקטע שאין לו דובר יחיד. מקטע כזה מסומן, ולא מסוכם.
מה עושים כשהסיכום סותר את התמליל?
מסמנים את השורה ומשאירים את שתי הגרסאות. סיכום אינו גובר על תמליל ותמליל אינו גובר על הקלטה, וסדר העדיפויות הזה נשמר בכתב כדי שלא יוכרע מחדש בכל מחלוקת.
- שורה לא מאומתת היא שורה שאין לה עוגן זמן, או שהעוגן שלה מצביע על מקטע שסומן כדיבור מקביל. היא נשארת בסיכום ומסומנת, מפני שמחיקה שלה מסתירה בדיוק את מה שדורש בדיקה.
- שורה סותרת היא שורה שהעוגן שלה מוביל לטקסט אחר. כאן נשמר גם מה שהמודל כתב וגם מה שהתמליל אומר, והאדם מכריע ביניהם בשדה נפרד.
- תיקון אדם נשמר כשדה שלישי ולא דורס את הקודמים. הזוג "מה נכתב מול מה תוקן" הוא מה שמאפשר לזהות שסוג מסוים של טענה טועה שוב ושוב.
- טענה שאיש לא אישר אינה עוברת למערכת המשך. שדה נגזר נוצר רק משורה מאומתת, וזה השער שמונע מסכום שנשמע במעורפל להפוך לשורה בהצעת מחיר.
הסתירה הנפוצה ביותר בעברית אינה סתירה אמיתית אלא הבדל בין ציטוט לפרשנות: הלקוח אמר משפט מסויג, והסיכום כתב אותו כהחלטה. לכן שורות שמתארות החלטה או הסכמה מסומנות אוטומטית לבדיקה, גם כשיש להן עוגן תקין.
קשור: הערכת סיכון בהעברת מידע לקוחות ל-AI, גיליון לקוחות ותיקון 13, משיחה להצעת מחיר.
מי רשאי לקרוא מה, ואיך זה נאכף
הרשאה שנשמרת ברמת השיחה בלבד היא הרשאה שאינה קיימת, מפני שכל ייצוא עוקף אותה. האכיפה נעשית בשלוש נקודות:
- ברמת הנכס. גישה לאודיו, לתמליל ולסיכום היא שלוש הרשאות נפרדות. אדם שמאשר סיכום אינו זקוק לאודיו.
- בייצוא. כל ייצוא נרשם עם מי, מתי, ואילו שדות. ייצוא של תמלילים מלאים לגיליון הוא בדיוק המקום שבו ההגבלה נעלמת.
- בשילוב עם מערכות המשך. כשסיכום נכנס למערכת אחרת, נכנס הסיכום בלבד. תמליל אינו מועתק לרשומת לקוח, גם לא כשדה מוסתר.
- במחיקה. מחיקה מוגדרת כפעולה שמריצה על כל ארבעת הנכסים, ולא כמחיקת שורה. שורה שנמחקת בלי הקובץ שלה משאירה את הקובץ.
מקורות
שאלות נפוצות
האם אפשר להסתפק בשמירת הסיכום ולמחוק את התמליל?
אפשר, וזו החלטה סבירה כשהסיכום עבר אישור אדם. מה שמאבדים הוא היכולת לאמת טענה בהמשך, ולכן כדאי למחוק את התמליל רק אחרי שהסיכום אושר, ולא לפי שעון קבוע שרץ במקביל לתהליך האישור.
מה עושים עם הקלטה שחלקה בעברית וחלקה באנגלית?
מתייחסים אליה כשיחה אחת ולא מפצלים לפי שפה, אבל מסמנים את המקטעים שבהם המנוע דיווח על שפה אחרת. אלה המקטעים שראוי לבדוק ראשונים, מפני ששם מרוכזות השגיאות של שמות מוצרים ומונחים.
האם חותמות זמן ברמת מילה נחוצות, או שמקטע מספיק?
לרוב מקטע מספיק, מפני שהמטרה היא להגיע לאזור הנכון בהקלטה ולא למילה בודדת. חותמות ברמת מילה עוזרות כשמצטטים במדויק, ובתיעוד של OpenAI הן זמינות רק במודל אחד, כך שזו החלטה שמשפיעה על בחירת המודל.
האם הקלטת שיחה היא מידע אישי?
כן, הקלטה של אדם מזוהה היא מידע אישי, וזו הסיבה שהיא מקבלת שעון שמירה קצר יותר משאר הנכסים. השאלה אם מותר להקליט, ומה חובה למסור למי שנמצא בשיחה, היא שאלה משפטית שיש להפנות לעורך דין ולא להכריע בתוך מסמך אפיון.
להמשך קריאה
שירות רלוונטי
אוטומציה לעסקים
אני בונה אוטומציות מותאמות שמורידות עבודה חוזרת מקצה לקצה.
על הכותב
יהונתן סעדיה
מפתח פרילנסר לאוטומציה, אתרים ו-MVP
אני יהונתן סעדיה, מפתח בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.
בוא נעבוד יחדיש לך פרויקט דומה?
ספר לי מה אתה רוצה לבנות או איזה תהליך להפוך לאוטומטי. אני חוזר תוך 24 שעות עסקים עם כמה שאלות ממוקדות, ואז עוברים על זה יחד בשיחת היכרות חינמית של 30 דקות, בלי התחייבות. בסוף יש לך היקף עבודה, לוח זמנים ומחיר קבוע - או תשובה כנה שלא שווה לבנות את זה.
