GPT
W

whisper-tiny

קוד פתוח

openaiapache-2.02022-09-26

  • transformers
  • pytorch
  • tf
  • jax
  • safetensors

openai עומדים גם מאחורי Sora, ויש עליו סקירה כאן.

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

  • 38Mפרמטרים
  • 581 MBמשקל הקבצים
  • 1,624,155הורדות בחודש
  • 443לייקים

מה זה

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

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

מתאים ל

  • תמלול פקודות קוליות במכשיר

    הוא קל מספיק לרוץ על מעבד מקומי ולזהות הוראות באנגלית בלי תלות בחיבור רשת.

  • חילוץ טקסט גס לפודקאסטים

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

  • בדיקת היתכנות מקומית

    משקלו מאפשר לבחון את שרשרת עיבוד האודיו בקוד לפני שמשקיעים בחומרה יקרה.

איפה זה נופל

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

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

שאלות
נפוצות

האם הוא מתאים לתמלול שיחות בעברית?

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

איך אפשר לתמלל קובץ שמע של חצי שעה?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("automatic-speech-recognition", model="openai/whisper-tiny")
print(pipe("שלום"))

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש
  • שימוש בפטנטים

הרישיון המלא בעמוד המודל ↗