אינטגרציה של SaluteSpeech TTS (סבאר) לסינתזת דיבור

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

תחומי פיתוח AI

שאלות נפוצות

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

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

SaluteSpeech TTS: היכן נשברת סינתזת הדיבור במוצר

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

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

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

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

מה נותנת סינתזת דיבור מנוהלת: מהירות ויציבות

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

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

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

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

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

מצבי סינתזה: זרימה, הקראה באצווה, סכימה היברידית

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

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

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

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

הטמעת SaluteSpeech TTS: שלבי העבודה ההנדסית

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

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

חבילת מסירה: קונפיגורציות, סכימות, נהלים

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

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

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

מקרה בוחן: עוזר קולי של מוקד התמיכה מבוסס סינתזת דיבור

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

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

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

מה השתנה אחרי המעבר לסינתזה

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

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

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

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

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

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

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

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

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

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

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

האם אפשר ליצור קול מותאם אישית?

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

מה יקרה כשירות הסינתזה אינו זמין?

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

לאן נשלחים הטקסטים ולמי יש גישה אליהם?

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

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

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

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

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

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

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

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