חומר עזר בנושא שפה של סימון דיבור (SSML) (בטא)

פלטפורמת Actions on Google תומכת בכמה תכונות של SSML Beta, נוסף לרכיבי ה-SSML הרגילים של Actions on Google.

סיכום של תכונות SSML הנתמכות בטא:

  • <phoneme>: התאמה אישית של ההגייה של מילים ספציפיות.
  • <say-as interpret-as="duration">: ציון משך הזמן.
  • <voice>: מעבר בין קולות באותה בקשה.
  • <lang>: שימוש בכמה שפות באותה בקשה.
  • נקודות זמן: משתמשים בתג <mark> כדי להחזיר את נקודת הזמן של נקודה מסוימת בתמליל.

<phoneme>

אפשר להשתמש בתג <phoneme> כדי ליצור הגייה מותאמת אישית של מילים בתוך השורה. ב-Actions on Google אפשר להשתמש באותיות הפונטיות IPA ו-X-SAMPA. בדף הפונטים מופיעה רשימה של שפות ופונמות נתמכות.

כל יישום של התג <phoneme> קובע את ההגייה של מילה אחת:

  <phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme>
  <phoneme alphabet="x-sampa" ph='m@"hA:g@%ni:'>mahogany</phoneme>

סמני לחץ

אפשר ליצור עד שלוש רמות של לחץ בתמליל:

  1. סימן ראשוני (עיקרי): מסומן כ-ˈ ב-IPA ובתו " ב-X-SAMPA.
  2. עומס משני: מסומן כ-ˌ ב-IPA וב-% ב-X-SAMPA.
  3. לא מודגש: לא מסומן בסמל (באחד מהסימונים).

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

מילה לדוגמה IPA X-SAMPA
מים ˈwɑːtɚ "wA:t@`
תת-מימי ˌʌndɚˈwɑːtɚ %Vnd@"wA:t@

תמלילים רחבים לעומת תמלילים צרים

ככלל, הקפידו שהתמלילים יהיו רחבים ופונומיים יותר באופיים. לדוגמה, באנגלית (ארה"ב), צריך לתמלל את השפה t בין הקולות (במקום להשתמש בהקשה):

מילה לדוגמה IPA X-SAMPA
חמאה ˈbʌtɚ במקום ˈbʌɾɚ "bVt@` במקום "bV4@`

יש מקרים שבהם השימוש בייצוג הפונטי גורם לתוצאות ה-TTS להישמע לא טבעיות (לדוגמה, אם קשה להגות את רצף הפונמות).

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

מילה לדוגמה IPA X-SAMPA
חתולים ˈkæts "k{ts
כלבים ˈdɑːgz במקום ˈdɑːgs "dA:gz במקום "dA:gs

הפחתה

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

מילה לדוגמה IPA X-SAMPA
חתלתול ˈkɪtən במקום ˈkɪtn "kIt@n במקום "kitn
קומקום ˈkɛtəl במקום ˈkɛtl "kEt@l במקום "kEtl

הברה

ניתן לציין גבולות הברה באמצעות . (אופציונלי). כל הברה חייבת להכיל תנועה אחת (ורק אחת). לדוגמה:

מילה לדוגמה IPA X-SAMPA
נוחות הקריאה ˌɹiː.də.ˈbɪ.lə.tiː %r\i:.d@."bI.l@.ti:

משכי זמן

פלטפורמת Actions on Google תומכת ב-<say-as interpret-as="duration"> כדי לקרוא כראוי משכי זמן. לדוגמה, יושמע בדוגמה הבאה "חמש שעות ושלושים דקות":

<say-as interpret-as="duration" format="h:m">5:30</say-as>

מחרוזת הפורמט תומכת בערכים הבאים:

קיצור Value
שע' שעות
דק' דקות
שנ' שניות
ms אלפיות שנייה

<voice>

התג <voice> מאפשר להשתמש ביותר מקול אחד בבקשת SSML אחת. בדוגמה הבאה, קול ברירת המחדל הוא קול זכר באנגלית. כל המילים ימוזגו בקול הזה, מלבד "qu'est-ce qui t'amène ici", שתושמע בצרפתית בקול נשי במקום בשפת ברירת המחדל (אנגלית) ובמגדר (זכר).

<speak>And then she asked, <voice language="fr-FR" gender="female">qu'est-ce qui
t'amène ici</voice><break time="250ms"/> in her sweet and gentle voice.</speak>

לחלופין, אפשר להשתמש בתג <voice> כדי לציין קול מסוים (שם הקול בדף של הקולות והשפות הנתמכים) במקום לציין language ו/או gender:

<speak>The dog is friendly<voice name="fr-CA-Wavenet-B">mais la chat est
mignon</voice><break time="250ms"/> said a pet shop
owner</speak>

כשמשתמשים בתג <voice>, Actions on Google מצפה לקבל name (שם הקול שבו רוצים להשתמש) או שילוב של המאפיינים הבאים. כל שלושת המאפיינים הם אופציונליים, אבל אם לא מספקים מאפיין name, צריך לספק לפחות אחד.

  • gender: אחד מתוך male, female או neutral.
  • variant: משמש כשובר שוויון במקרים שבהם יש מספר אפשרויות של קול לשימוש בהתאם להגדרות שלכם.
  • language: השפה הרצויה. אפשר לציין רק שפה אחת בתג <voice> נתון. יש לציין את השפה בפורמט BCP-47. קוד BCP-47 של השפה מופיע בעמודה language code בדף 'קולות ושפות נתמכים'.

אפשר גם לשלוט בעדיפות היחסית של כל אחד מהמאפיינים gender, variant ו-language באמצעות שני תגים נוספים: required ו-ordering.

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

דוגמאות להגדרות שמשתמשות בתגים required ו-ordering:

<speak>And there it was <voice language="en-GB" gender="male" required="gender"
ordering="gender language">a flying bird </voice>roaring in the skies for the
first time.</speak>
<speak>Today is supposed to be <voice language="en-GB" gender="female"
ordering="language gender">Sunday Funday.</voice></speak>

<lang>

אפשר להשתמש ב-<lang> כדי לכלול טקסט בכמה שפות באותה בקשת SSML. כל השפות ימוזגו באותו קול, אלא אם תשתמשו בתג <voice> כדי לשנות את הקול באופן מפורש. המחרוזת xml:lang חייבת להכיל את שפת היעד בפורמט BCP-47 (הערך הזה מופיע בתור 'language code' בטבלה קולות נתמכים). בדוגמה הבאה, המילה 'chat' תאמר את המילה בצרפתית במקום שפת ברירת המחדל (אנגלית):

<speak>The french word for cat is <lang xml:lang="fr-FR">chat</lang></speak>

פלטפורמת Actions on Google תומכת בתג <lang> על בסיס הפתרון הטוב ביותר. לא כל שילובי השפות מניבים את אותן תוצאות איכות אם מציינים אותן באותה בקשת SSML. במקרים מסוימים, שילוב שפות יכול ליצור אפקט שניתן לזהות, אבל עדין או להיתפס כשלילי. בעיות מוכרות:

  • יפנית עם תווי קאנג'י לא נתמכת על ידי התג <lang>. הקלט מתועתק ונקרא כתווים סיניים.
  • שפות שמיות כמו ערבית, עברית ופרסית לא נתמכות על ידי התג <lang>, ובעקבות זאת הן יוסתרו. אם רוצים להשתמש באחת מהשפות האלה, מומלץ להשתמש בתג <voice> כדי להחליף לקול שדובר את השפה הרצויה (אם האפשרות זמינה).