פיתוח מערכת AI לתמלול עם API כמפתח סופי

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

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

למה API תמלול נכשל בהקלטות אמיתיות

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

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

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

מה שנשבר הוא לא הזיהוי, אלא הצמדת הדיבור לזמן: התמלול לא תואם את ההקלטה, ואי אפשר למצוא לפיו את הרגע הרצוי.

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

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

מה משתנה לאחר ההטמעה: מהירות, איכות, עמידות לתקלות

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

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

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

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

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

כלפי חוץ זה נראה כ-API יציב: מגיעה כתובת הקלטה, ומוחזרים טקסט, טיימקודים וסטטוס עיבוד.

מצבי API תמלול: מקבצי, זורם והיברידי

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

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

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

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

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

איך אנחנו מטמיעים את המערכת: שלבי עבודת הנדסה

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

  1. ביקורת נתוני אודיו. לוקחים מדגם מהארכיון של הלקוח ומקשיבים לו: כמה ערוצים, רמת רעש רקע, שיעור דיבור חופף, אילו שפות וז'רגון מקצועי מופיעים. בפלט — דרישות לאיכות הזיהוי, פרופיל עומס ורשימת הקלטות שלפיהן המערכת תיבדק.
  2. סכמת אינטגרציה. קובעים איך הקלטות נכנסות למערכת: אירוע מהטלפוניה, העלאה מאחסון או העלאה דרך ממשק. מקבעים את פורמט תגובת ה-API — חותמות זמן לפי מקטעים, תיוג דוברים, הערכת ביטחון לכל קטע.
  3. הגדרת תורים. הקלטות מגיעות בצורה לא אחידה, ולכן מפרידים אותן לפי עדיפויות: פניות קצרות מעובדות מיד, ישיבות ארוכות עוברות לתור נפרד. כאן גם מגדירים ניסיונות חוזרים ומגבלת משימות במקביל, כדי שעומס שיא לא יפיל את העיבוד.
  4. התאמה לתחום. מנוע Whisper נותן דיוק בסיסי טוב, אבל שמות מוצרים, שמות משפחה וקיצורים פנימיים הוא שומע לא נכון. מוסיפים מילוני מונחים וכללי פוסט-עיבוד, בודקים את האפקט על מדגם ביקורת.
  5. בדיקות קבלה. מחשבים שיעור מילים עם שגיאה ושגיאה בישויות מפתח, משווים טיימקודים והפרדת דוברים מול תמלול ייחוס. מקבעים ספים שמתחתם התוצאה אינה מתקבלת, ורק לאחר מעברם ממשיכים הלאה.
  6. מסירה לתפעול. מוסרים תיעוד API וסכמת אינטגרציה, מגדירים ניטור תורים ושגיאות זיהוי, מעבירים הדרכה לצוות הלקוח ומסכמים על נוהל לאימון נוסף של מילונים.

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

ארטיפקטים של הטמעה: סכמות, קונפיגורציות, נהלים

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

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

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

מקרה בוחן: מרכז קשר צמצם תיקון ידני של תמלולים פי שישה

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

מנהל המשמרת לא יכול היה להישען על סטטיסטיקה של שיחות טריות — נתונים של אתמול ברגע הניתוח עדיין לא היו קיימים.

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

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

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

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

במה שונה תמלול זורם מתמלול מקבצי?

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

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

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

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

בחירת מצב היא לעניין התרחיש, לא 'הספק'. כתוביות חיות, בקרת איכות שיחה, רמזים לנציג — זרימה. ניתוח שיחות, ראיונות וארכיון — מקבץ. את שני המצבים מחזיקים מאחורי API אחד: חוזה משותף לקובץ ולזרימה, אימות אחד והתראות על מוכנות התוצאה.

ספקות לגבי עומס, פרטיות ואיכות נתונים

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

מה יקרה בעומס שיא כשכל השיחות מגיעות במשמרת אחת?

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

היכן נשמרות ההקלטות ולמי יש גישה אליהן?

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

איך מזוהים מונחים תחומיים — מקטעים, שמות תרופות, נוסחים משפטיים?

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

איך התוצאה מגיעה למערכות הרישום שלנו?

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

נדון במשימה: מה כדאי להכין לשיחה הראשונה

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

  • דוגמאות הקלטות: 5–10 קבצים מערוצים אמיתיים, כולל הגרועים — עם רעש, כמה דוברים, קטעי חיבור מקוטעים. מהם רואים אם נדרשת הכנת סאונד ואיזו דיוק ניתן להשיג.
  • תרחיש שימוש: טקסט מילולי, פרוטוקול פגישה עם הפרדה לפי דוברים או תמצית עם החלטות ומשימות עיקריות.
  • דרישות אינטגרציה: לאן עוברת התוצאה — למערכת שלכם או לאחסון, האם נדרשת תגובה בזמן אמת או שמתאימה עיבוד מושהה.
  • נפח ושיאים: כמה שעות הקלטה מגיעות ביממה ואיך מתפלג העומס — מזה תלויים הסקיילינג וסכמת התור.
  • כללי עבודה עם נתונים: האם מותר להוציא הקלטות לסביבה חיצונית, כמה זמן לשמור קבצי מקור, למי יש גישה לתמלולים.
  • קריטריוני קבלה: מה נחשב לתוצאה — שיעור מילים שזוהו נכון, דיוק הפרדת דוברים, זמן עיבוד של הקלטה בת שעה.
  • התשתית שלכם: האם יש שירות שצריך להתחבר אליו, מי בצד שלכם מקבל את התוצאה ובודק את האיכות.

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