מהו זיהוי דיבור (STT)?
זיהוי דיבור, או בשמו המקצועי Speech-to-Text (STT), היא הטכנולוגיה שממירה דיבור אנושי לטקסט כתוב. זוהי אחת מהטכנולוגיות הבסיסיות ביותר בעולם הבינה המלאכותית, והיא משמשת כבסיס למגוון רחב של יישומים — מתמלול פגישות ועד סוכנים קוליים חכמים שמנהלים שיחות טלפון בזמן אמת.
הטכנולוגיה התפתחה בצורה דרמטית בעשור האחרון. עד לפני כמה שנים, מערכות זיהוי דיבור הצליחו לזהות כ-70 עד 80 אחוזים מהמילים באנגלית, ואף פחות בעברית. כיום, מודלים מתקדמים כמו Whisper של OpenAI ו-Faster-Whisper מגיעים לדיוק של למעלה מ-90 אחוזים גם בעברית, כולל זיהוי מבטאים שונים וערבוב שפות.
תהליך זיהוי הדיבור מתבצע בכמה שלבים: ראשית, אות השמע מועבר דרך מסנני רעש ומנורמל. לאחר מכן, המודל הנוירוני מנתח את דפוסי הצלילים (פונמות), מרכיב אותם למילים, ומשתמש בהקשר לשוני כדי לבחור את הפירוש הנכון ביותר. במערכות מתקדמות, כל התהליך הזה מתבצע תוך מאות בודדות של אלפיות השנייה.
אתגרי עברית בזיהוי דיבור
עברית היא שפה שמאתגרת מערכות זיהוי דיבור ברמה גבוהה במיוחד. בניגוד לאנגלית או לצרפתית, עברית מציבה מכשולים ייחודיים שדורשים פתרונות מותאמים. הנה האתגרים העיקריים:
כתיב חסר ניקוד
עברית מודרנית נכתבת כמעט תמיד ללא ניקוד. המשמעות היא שאותה צורת כתיב יכולה לייצג מילים שונות לחלוטין. למשל, הרצף ד-ב-ר יכול להיות ״דָּבָר״ (דבר), ״דִּבֵּר״ (דיבר), ״דֶּבֶר״ (מגפה) או ״דְּבַר״ (דבר של). מערכת STT צריכה להשתמש בהקשר האקוסטי והלשוני כדי לפתור עמימויות אלה בצורה נכונה. זה דורש מודל שפה חזק שמבין את ההקשר הרחב של המשפט.
מורפולוגיה עשירה
עברית היא שפה עם מורפולוגיה מורכבת במיוחד. מילה אחת בעברית יכולה לכלול מידע ששפות אחרות מביעות בארבע או חמש מילים. למשל, ״שכשהתקשרתי״ היא מילה אחת שמכילה: ש (כש) + כש (כאשר) + התקשרתי (פעולה + זמן + גוף + מין). מערכת STT צריכה לפרק צירופים כאלה בצורה נכונה, וזה מאתגר במיוחד כשהדובר מדבר מהר או עם מבטא חזק.
ערבוב שפות (Code-Switching)
ישראלים מערבבים באופן טבעי עברית עם אנגלית, ולעתים גם עם ערבית או רוסית. משפט טיפוסי בשיחה עסקית עשוי להישמע כך: ״אני צריך לעשות follow-up על ה-meeting מאתמול, תשלח לי summary ב-email״. מערכת STT לעברית חייבת לזהות את המעבר בין השפות ולתמלל נכון את כל הרכיבים, גם כשהם מגיעים באמצע מילה או משפט.
מבטאים מגוונים
בישראל מדברים עברית במגוון רחב של מבטאים: צברי (ילידי הארץ), אשכנזי, ספרדי/מזרחי, רוסי, אמהרי, צרפתי, ערבי ועוד. כל מבטא מאופיין בהגייה שונה של אותיות מסוימות — למשל, הגייה שונה של ״ר״ (גרונית לעומת לשונית), ״ח״ ו-״כ״, או ״ע״ ו-״א״. מערכת STT טובה צריכה לזהות את כל המבטאים ברמת דיוק דומה, ללא הטיה לטובת מבטא אחד.
רעשי רקע ואיכות שמע טלפונית
שיחות טלפון מתבצעות באיכות שמע מוגבלת — בדרך כלל 8kHz, 16-bit, מונו. זה פחות ממחצית מאיכות ההקלטה הרגילה (44.1kHz). בנוסף, שיחות טלפון כוללות רעשי רקע, הדים, ולחצים על המיקרופון. כל אלה מקשים על זיהוי הדיבור ודורשים מודלים שאומנו גם על שמע באיכות נמוכה.
המודלים המובילים לזיהוי דיבור בעברית
Whisper (OpenAI)
Whisper הוא מודל זיהוי דיבור רב-לשוני שפותח על ידי OpenAI ושוחרר כקוד פתוח בספטמבר 2022. המודל אומן על למעלה מ-680,000 שעות של שמע מתומלל ב-99 שפות, כולל עברית. Whisper מגיע בכמה גדלים: tiny (39MB), base (74MB), small (244MB), medium (769MB) ו-large (1.5GB). הגרסה האחרונה, Whisper Large V3, מציעה את הביצועים הטובים ביותר עבור עברית.
היתרון המרכזי של Whisper הוא היכולת לזהות דיבור גם בתנאים קשים — רעשי רקע, מבטאים חזקים וערבוב שפות. החיסרון העיקרי הוא מהירות העיבוד — הגרסה המקורית של Whisper איטית מדי לשימוש בזמן אמת בסוכנים קוליים.
Faster-Whisper
Faster-Whisper הוא מימוש מחדש של Whisper באמצעות ספריית CTranslate2. הוא שומר על אותה איכות זיהוי כמו Whisper המקורי, אבל מהיר יותר פי ארבע עד שש וצורך פחות זיכרון GPU. התוצאה: תמלול בזמן אמת שמתבצע תוך 170 אלפיות השנייה בלבד על GPU כמו RTX 4090. זהו הפתרון שאנחנו משתמשים בו במערכת האורקסטרציה שלנו.
Faster-Whisper תומך ב-quantization (כימות) — אפשר להריץ את המודל ב-INT8 או FP16, מה שמקטין את צריכת ה-VRAM ומאיץ את העיבוד עוד יותר. הגרסה שאנחנו משתמשים בה היא Systran distilled-large-v3 — מודל מזוקק שמשלב את הדיוק של large עם מהירות קרובה ל-medium.
Speechmatics
Speechmatics הוא שירות STT מסחרי (ענן) שנחשב לאחד הטובים ביותר בעולם, כולל תמיכה טובה מאוד בעברית. הוא מציע דיוק גבוה יותר מ-Whisper עבור תמלול ארוך, תמיכה מובנית בזיהוי דוברים (diarization), וזיהוי שפה אוטומטי. החיסרון: הוא שירות ענן בתשלום, מה שאומר שהנתונים עוברים לשרתים חיצוניים ויש עלות לדקת תמלול.
Gladia
Gladia הוא פלטפורמת STT מבוססת ענן שמציעה API פשוט לתמלול בזמן אמת. הוא מבוסס על Whisper אבל מוסיף שכבות של שיפור — זיהוי דוברים, תרגום בזמן אמת, ופיצול לפסקאות. התמיכה בעברית טובה, והמחיר תחרותי. Gladia מתאים לעסקים שרוצים פתרון ענן מוכן מבלי לנהל שרתים.
ElevenLabs Scribe
ElevenLabs Scribe הוא מודל STT חדש יחסית (2025) שפותח על ידי ElevenLabs — חברה שידועה בעיקר בזכות טכנולוגיית ה-TTS שלה. Scribe מציע ביצועים מרשימים בעברית, כולל תמלול בזמן אמת עם זיהוי דוברים מובנה. היתרון הייחודי שלו הוא האינטגרציה הטבעית עם מערכת ה-TTS של ElevenLabs, מה שמאפשר לבנות צינור STT-LLM-TTS שלם בפלטפורמה אחת.
Whisper לעברית: ביצועים ודיוק
ביצועי זיהוי דיבור בעברית נמדדים בדרך כלל באמצעות מדד ה-WER (Word Error Rate) — שיעור השגיאה ברמת המילה. ככל שה-WER נמוך יותר, כך הדיוק גבוה יותר.
Whisper Large V3 מגיע ל-WER של כ-8 עד 12 אחוזים בעברית עבור הקלטות באיכות גבוהה (16kHz ומעלה). עבור שיחות טלפוניות באיכות 8kHz, ה-WER עולה ל-12 עד 18 אחוזים. לשם השוואה, ה-WER של Whisper באנגלית הוא כ-4 עד 6 אחוזים — ההבדל נובע בעיקר מכמות נתוני האימון הגדולה בהרבה באנגלית.
ביצועי Whisper בעברית מושפעים ממספר גורמים:
- איכות השמע: הקלטות נקיות באיכות גבוהה מניבות תוצאות טובות בהרבה משיחות טלפוניות עם רעשי רקע
- מבטא הדובר: דוברים עם מבטא צברי סטנדרטי מזוהים בדיוק גבוה יותר מדוברים עם מבטא חזק
- מהירות דיבור: דיבור מהיר מאוד (מעל 180 מילים לדקה) מוריד את הדיוק
- ערבוב שפות: משפטים עם מעבר בין עברית לאנגלית מזוהים בדיוק נמוך יותר מאשר משפטים בעברית טהורה
- מונחים מקצועיים: מילים טכניות, שמות מותגים ומונחים רפואיים עלולים להיות מזוהים בצורה שגויה אם הם לא נפוצים בנתוני האימון
שימושים עסקיים של זיהוי דיבור בעברית
תמלול פגישות וישיבות
אחד השימושים הנפוצים ביותר ל-STT הוא תמלול אוטומטי של פגישות. במקום שמישהו ישב ויקליד פרוטוקול, מערכת STT מתמללת את כל הדוברים בזמן אמת. בשילוב עם זיהוי דוברים (diarization), המערכת יכולה לייצר פרוטוקול מסודר עם זיהוי מי אמר מה. זה חוסך שעות עבודה ומבטיח שאף נקודה חשובה לא תפספס.
מוקדי שירות לקוחות
תמלול שיחות במוקדי שירות מאפשר ניתוח שיטתי של אלפי שיחות. מנהלי מוקדים יכולים לזהות דפוסים — מהן השאלות הנפוצות, מתי לקוחות כועסים, ואיפה הנציגים מתקשים. בשילוב עם עיבוד שפה טבעית (NLP), אפשר לנתח רגשות, לזהות מילות מפתח ולייצר תובנות אוטומטיות.
נגישות
חוק שוויון זכויות לאנשים עם מוגבלות מחייב ארגונים ציבוריים בישראל להנגיש תוכן. STT מאפשר יצירת כתוביות בזמן אמת לשידורים חיים, כנסים ואירועים — קריטי עבור אנשים עם לקות שמיעה. הטכנולוגיה גם מאפשרת תמלול אוטומטי של סרטוני וידאו ופודקאסטים.
כתוביות אוטומטיות
יוצרי תוכן, ערוצי טלוויזיה ופלטפורמות וידאו משתמשים ב-STT ליצירת כתוביות אוטומטיות בעברית. הטכנולוגיה מפחיתה משמעותית את העלות והזמן הנדרשים ליצירת כתוביות — ממספר שעות לכל שעת וידאו לכמה דקות בלבד.
סוכנים קוליים AI
זהו השימוש המתקדם ביותר של STT — חלק ממערכת סוכן קולי AI שמנהלת שיחות טלפון בזמן אמת. במקרה זה, ה-STT צריך לעבוד במהירות גבוהה במיוחד (פחות מ-200 אלפיות השנייה) כדי שהשיחה תרגיש טבעית. כל עיכוב בזיהוי הדיבור מתורגם לעיכוב בתשובה של הסוכן, מה שפוגע בחוויית המתקשר.
STT בסוכנים קוליים: עיבוד בזמן אמת
כשמדברים על STT בזמן אמת עבור סוכנים קוליים, הדרישות שונות לחלוטין מתמלול רגיל. בתמלול רגיל, אפשר לחכות דקות או אפילו שעות לתוצאה. בסוכן קולי, כל מילישנייה קריטית.
Voice Activity Detection (VAD)
לפני שמפעילים את מודל ה-STT, המערכת צריכה לזהות מתי המתקשר מדבר ומתי הוא שותק. זה נקרא VAD — Voice Activity Detection. המערכת מנתחת את רמת העוצמה (RMS) של אות השמע ומשווה אותה לסף מוגדר מראש. כשהעוצמה עולה מעל הסף, המערכת מתחילה להקליט. כשהיא יורדת מתחת לסף למשך זמן מספיק (בדרך כלל 400 עד 600 אלפיות השנייה), המערכת מחליטה שהמתקשר סיים לדבר ושולחת את קטע השמע ל-STT.
הכוונון של ה-VAD הוא קריטי. סף רגישות נמוך מדי יגרום למערכת לזהות רעשי רקע כדיבור. סף גבוה מדי יגרום לה לפספס דיבור שקט. המערכת שלנו משתמשת בסף של 200 RMS לזיהוי דיבור ו-350 RMS לזיהוי הפרעה (barge-in) בזמן שה-TTS מנגן תשובה.
זמני עיבוד (Benchmarks)
המערכת שלנו מבוססת על Faster-Whisper עם מודל Systran distilled-large-v3 שרץ על CUDA (GPU). הנה הביצועים שנמדדו:
| מדד | ערך | הערות |
|---|---|---|
| זמן תמלול ממוצע | 170ms | קטע דיבור של 2-5 שניות |
| זמן VAD | פחות מ-1ms | חישוב RMS על chunk של 20ms |
| זמן העברה לשרת | פחות מ-1ms | הכול מקומי — אין רשת |
| VRAM נדרש | כ-2.5GB | FP16 quantization |
| WER בעברית (טלפון) | 12-18% | שמע 8kHz עם רעשי רקע |
זמן ה-STT של 170 אלפיות השנייה הוא חלק מזמן התגובה הכולל של המערכת שעומד על 335 אלפיות השנייה. זה אומר שה-STT תופס כמחצית מזמן העיבוד — וזו הסיבה שבחירת מודל STT מהיר היא קריטית לביצועים הכוללים של הסוכן הקולי.
טבלה: השוואת מודלי STT לעיבוד עברית
| מודל | דיוק (WER עברית) | מהירות | עלות | מקומי/ענן |
|---|---|---|---|---|
| Faster-Whisper Large V3 | 8-12% | 170ms (RTX 4090) | חינם (קוד פתוח) | מקומי |
| Whisper Large V3 | 8-12% | 800-1200ms (RTX 4090) | חינם (קוד פתוח) | מקומי |
| Speechmatics | 6-10% | 200-400ms | 0.02-0.04 דולר/דקה | ענן |
| Gladia | 8-14% | 200-500ms | 0.01-0.03 דולר/דקה | ענן |
| ElevenLabs Scribe | 7-11% | 150-350ms | 0.015-0.03 דולר/דקה | ענן |
| Google Cloud STT | 10-16% | 200-600ms | 0.006-0.024 דולר/דקה | ענן |
| Azure Speech | 10-15% | 200-500ms | 0.01-0.02 דולר/דקה | ענן |
| Whisper Medium | 14-20% | 400-700ms (RTX 4090) | חינם (קוד פתוח) | מקומי |
Faster-Whisper על GPU: הגדרות וביצועים
Faster-Whisper הוא הלב של מערכת ה-STT שלנו. הנה פירוט טכני של ההגדרות והביצועים:
הגדרות מומלצות
המודל שאנחנו משתמשים בו הוא Systran distilled-large-v3 — גרסה מזוקקת (distilled) של Whisper Large V3 שמציעה ביצועים כמעט זהים למודל המקורי עם מהירות גבוהה יותר. הנה ההגדרות הקריטיות:
- Device: CUDA (GPU) — חובה עבור זמן אמת. CPU איטי מדי.
- Compute type: float16 — האיזון הטוב ביותר בין דיוק ומהירות. INT8 מהיר יותר אבל פוגע מעט בדיוק.
- Beam size: 5 — מספר האפשרויות שהמודל בוחן בכל שלב. ערך גבוה יותר מעלה את הדיוק אבל מאט את העיבוד.
- Language: "he" — הגדרת שפה מפורשת חוסכת את זמן זיהוי השפה האוטומטי (כ-50-100ms).
- VAD filter: מופעל — מסנן קטעי שקט לפני שליחה למודל, חוסך זמן עיבוד.
Quantization — כימות
אחד היתרונות הגדולים של Faster-Whisper הוא התמיכה ב-quantization. זו טכניקה שמקטינה את גודל המודל ומאיצה את העיבוד על ידי הפחתת דיוק המספרים הפנימיים. Faster-Whisper תומך בשלוש רמות כימות:
| רמת כימות | VRAM נדרש | מהירות יחסית | השפעה על דיוק |
|---|---|---|---|
| FP32 (ללא כימות) | כ-6GB | 1x (בסיס) | אין — דיוק מקסימלי |
| FP16 (מומלץ) | כ-2.5GB | 2x | זניח — כמעט ללא השפעה |
| INT8 | כ-1.5GB | 3x | קטן — WER עולה ב-1-2% |
אנחנו ממליצים על FP16 כברירת מחדל — הוא חוסך מחצית מה-VRAM ללא כמעט פגיעה בדיוק. INT8 מתאים למקרים שבהם VRAM מוגבל (כמו RTX 3060 עם 6GB) או כשרוצים להריץ מספר מודלים במקביל על אותו GPU.
ביצועים לפי GPU
| GPU | VRAM | זמן תמלול (FP16) | התאמה לזמן אמת |
|---|---|---|---|
| RTX 4090 | 24GB | 170ms | מצוין |
| RTX 4080 | 16GB | 220ms | מצוין |
| RTX 3090 | 24GB | 250ms | טוב |
| RTX 3060 | 12GB | 400ms | סביר |
| T4 (ענן) | 16GB | 500ms | בסיסי |
אינטגרציה: API, WebSocket וקבצי שמע
ישנן מספר דרכים לשלב זיהוי דיבור בעברית במערכות קיימות:
REST API
הגישה הפשוטה ביותר — שליחת קובץ שמע ל-endpoint וקבלת טקסט מתומלל בחזרה. מתאים לתמלול קבצים, לא לזמן אמת. המערכת שלנו חושפת endpoint של POST /transcribe שמקבל קבצי WAV, MP3, FLAC או OGG ומחזיר את התמלול בעברית. זמן העיבוד תלוי באורך הקובץ — כלל אצבע: כ-30 אלפיות השנייה לכל שנייה של שמע.
WebSocket
עבור תמלול בזמן אמת, WebSocket הוא הפתרון המועדף. הלקוח פותח חיבור WebSocket קבוע ושולח chunks של שמע (בדרך כלל כל 20-100ms). השרת מעבד כל chunk ושולח חזרה את הטקסט המתומלל ברגע שהוא מזהה שהדובר סיים מילה או משפט. זה מאפשר תמלול שזורם לצד הדיבור — המתמלל רואה את המילים מופיעות כמעט מיד.
EAGI (Asterisk)
עבור סוכנים קוליים שמחוברים למרכזיה טלפונית Asterisk, אנחנו משתמשים ב-EAGI (Enhanced Asterisk Gateway Interface). זהו ממשק מיוחד שמאפשר לסקריפט Python לגשת בזמן אמת לזרם השמע של השיחה הטלפונית. הסקריפט מנתח את השמע, מפעיל VAD, ושולח קטעי דיבור ל-Faster-Whisper לתמלול. כל התהליך מתבצע מקומית — אין צורך בחיבור אינטרנט.
פורמטים נתמכים
- WAV: הפורמט המומלץ — לא דחוס, איכות מלאה, נתמך בכל המודלים
- MP3: דחוס, מתאים לקבצים מוקלטים, לא אידיאלי לזמן אמת
- OGG/Opus: דחוס ואיכותי, נפוץ ב-WebRTC (שיחות דפדפן)
- PCM Raw: שמע גולמי ללא כותרת — זה מה שמגיע מ-EAGI (8kHz, 16-bit, mono)
- FLAC: דחיסה ללא אובדן, מצוין לארכיון ותמלול באיכות מקסימלית
שאלות נפוצות
Whisper Large V3 מציג שיעור שגיאה של כ-8 עד 12 אחוזים בעברית, תלוי באיכות ההקלטה ובמבטא הדובר. Faster-Whisper מגיע לתוצאות דומות עם מהירות עיבוד גבוהה יותר פי 4 עד 6. עבור שיחות טלפוניות באיכות 8kHz, ה-WER עולה ל-12 עד 18 אחוזים, אך עדיין מספיק לזיהוי כוונה מדויק.
כן. Whisper אומן על למעלה מ-680,000 שעות של שמע רב-לשוני ותומך במעבר בין שפות באמצע משפט. ביצועי הזיהוי במקרים של ערבוב עברית-אנגלית (code-switching) הם טובים, עם דיוק של כ-85 עד 90 אחוזים למילים באנגלית שמשולבות בשיחה בעברית.
Faster-Whisper הוא מימוש מחדש של Whisper באמצעות CTranslate2, שמספק מהירות עיבוד גבוהה פי 4 עד 6 עם צריכת זיכרון נמוכה יותר. איכות הזיהוי כמעט זהה. Faster-Whisper תומך ב-quantization (INT8, FP16) שמאפשר להריץ מודלים גדולים על חומרה מוגבלת יותר.
עם Faster-Whisper על GPU כמו RTX 4090, זמן התמלול הוא כ-170 אלפיות השנייה לקטע דיבור ממוצע. זה כולל את זמן העיבוד של ה-GPU ואת ה-VAD (זיהוי פעילות קולית). על GPU בסיסי יותר כמו RTX 3060, הזמן עולה ל-300 עד 500 אלפיות השנייה.
בהחלט. Faster-Whisper הוא פתרון קוד פתוח שרץ מקומית על שרת עם GPU. זה מבטיח שאף מילה מהשיחות לא עוברת לשרתים חיצוניים — קריטי עבור ארגוני בריאות, פיננסים וביטחון בישראל. ההתקנה דורשת שרת עם GPU בעל 6GB VRAM לפחות.
מערכות STT מתקדמות כמו Whisper כוללות מנגנון פנימי לסינון רעשי רקע. בנוסף, צינור העיבוד שלנו כולל VAD (Voice Activity Detection) שמזהה מתי הדובר מדבר ומתי יש שקט או רעש, ושולח ל-STT רק את קטעי הדיבור האמיתיים. זה משפר משמעותית את דיוק התמלול בסביבות רועשות.