כיוונון מדויק של אינטונציה והפסקות ב-TTS עם סימון SSML

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

תחומי פיתוח AI

שאלות נפוצות

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

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

סימון SSML: מדוע סינתזת דיבור נשמעת כמו רובוט

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

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

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

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

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

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

מה נותנות אינטונציה נשלטת והצבת הפוגות

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

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

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

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

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

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

סימון SSML: מצבי שליטה באינטונציה ובהפוגות

Speech Synthesis Markup Language (SSML) — תקן סימון לסינתזת דיבור, שמנועים תומכים בו באופן חלקי בלבד. אותו קובץ על קולות שונים נותן או הפוגות אחידות והטעמות נכונות, או שהוא מתעלמים ממנו ושובר את האינטונציה של המשפט.

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

רמה מה נותנת מתי מתאימה גבולות
הפוגות והטעמות break, emphasis — קצב הביטוי והדגש על מילה הודעות קצרות, משפטים בממשק, מענה אוטומטי הטון והגוון נשארים בהגדרות המנוע
קצב דיבור ועוצמה prosody — האצה, האטה, הנמכה בקטע הוראות ארוכות, תעריפים, אזהרות בקצב מהיר נבלעות סיומות ונשמע «מתכת»
פרוזודיה: טון וגוון קול קווי המתאר האינטונציוניים של המשפט, קול דמות סרטונים, מדריך שמע, הקראת דמות חלק מהמנועים מתעלמים מהפרמטר, במפגשי משפטים — קרעים
החלפות מילוניות sub, say-as — ראשי תיבות, מותגים, מספרים, תאריכים מונחים, מק"טים, שמות אלפבית פונטי נתמך לא בכל מקום

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

שלבי הטמעה: מביקורת התסריט ועד מסירת הכללים

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

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

סכמות פרוזודיה, תבניות ותקנונים בפרויקט

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

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

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

קייס: הסרנו משפטים קטועים בהקראת הוראות

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

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

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

מה זז

מדד לפני אחרי
שיעור הביטויים להקראה מחדש כ-4 מתוך 10 פחות מ-1 מתוך 10
בניית חבילת הוראות מלאה 3–4 ימים משמרת אחת
תיקונים לביטוי אחד 5–7 איטרציות 1–2

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

מה לעשות אם הסינתזה כבר פרוסה וההפוגות לא עובדות

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

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

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

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

ספקות טכניים נפוצים בנוגע לסינתזת דיבור

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

מה יקרה לסימון בהחלפת מנוע סינתזה או קול?

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

איך לבדוק טבעיות באוזן, ולא לפי התיעוד?

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

איך להקריא דיאלוג כך שהביטויים לא יישמעו בקול אחד?

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

מה משתנה בהקראה רב-לשונית?

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

איפה הסינתזה עדיין מפסידה להקלטה חיה?

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

נדון במשימה: נרכיב צליל לתסריט שלכם

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

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

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

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