SSML (Dialogflow)

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

SSML
function saySSML(conv) {
  const ssml = '<speak>' +
    'Here are <say-as interpret-as="characters">SSML</say-as> samples. ' +
    'I can pause <break time="3" />. ' +
    'I can play a sound <audio src="https://www.example.com/MY_WAVE_FILE.wav">your wave file</audio>. ' +
    'I can speak in cardinals. Your position is <say-as interpret-as="cardinal">10</say-as> in line. ' +
    'Or I can speak in ordinals. You are <say-as interpret-as="ordinal">10</say-as> in line. ' +
    'Or I can even speak in digits. Your position in line is <say-as interpret-as="digits">10</say-as>. ' +
    'I can also substitute phrases, like the <sub alias="World Wide Web Consortium">W3C</sub>. ' +
    'Finally, I can speak a paragraph with two sentences. ' +
    '<p><s>This is sentence one.</s><s>This is sentence two.</s></p>' +
    '</speak>';
  conv.ask(ssml);
}
JSON
{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ],
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "<speak>Here are <say-as interpret-as=\"characters\">SSML</say-as> samples. I can pause <break time=\"3\" />. I can play a sound <audio src=\"https://www.example.com/MY_WAVE_FILE.wav\">your wave file</audio>. I can speak in cardinals. Your position is <say-as interpret-as=\"cardinal\">10</say-as> in line. Or I can speak in ordinals. You are <say-as interpret-as=\"ordinal\">10</say-as> in line. Or I can even speak in digits. Your position in line is <say-as interpret-as=\"digits\">10</say-as>. I can also substitute phrases, like the <sub alias=\"World Wide Web Consortium\">W3C</sub>. Finally, I can speak a paragraph with two sentences. <p><s>This is sentence one.</s><s>This is sentence two.</s></p></speak>"
              }
            }
          ]
        }
      }
    }
  ]
}

אודיו

יש תמיכה ב-SSML בסימולטור הפעולות, אבל לא ב-Dialogflow סימולטור הזה.

כתובות URL ב-SSML

כשמגדירים תגובת SSML שכוללת רק כתובת URL, תווי אמפרסנד בכתובת ה-URL הזו עלולות לגרום לבעיות עקב פורמט XML. כדי לוודא שכתובת ה-URL תקינה שיש הפניה אליו, מחליפים את המופעים של & ב-&amp;.

גם אם תגובת SSML שלך כוללת רק כתובת URL,, Actions on Google מחייב להציג טקסט לתשובה. כי טקסט בתוך התג <audio> לא שנאמר על ידי Assistant, אפשר להוסיף טקסט מילוי או תיאור קצר תג אחד (<audio>) כדי לעמוד בדרישה הזו. הטקסט שבתוך התג <audio> לא יהיה מוקרא על ידי Assistant לאחר השמעת האודיו, והתכונה 'פעולה' נדרשת ב-Google דרישה לגרסת טקסט לתצוגה של SSML.

דוגמה לתגובת SSML בעייתית:

<speak>
  <audio src="https://firebasestorage.googleapis.com/v0/b/project-name.appspot.com/o/audio-file-name.ogg?alt=media&token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
  </audio>
</speak>

הדוגמה שלמעלה לא משתמשת בתו בריחה (escape) של & כדי להבטיח פורמט תקין של XML.

גרסה קבועה של אותה תגובת SSML נראית כך:

<speak>
  <audio src="https://firebasestorage.googleapis.com/v0/b/project-name.appspot.com/o/audio-file-name.ogg?alt=media&amp;token=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
  text
  </audio>
</speak>

תמיכה ברכיבי SSML

הקטעים הבאים מתארים את הרכיבים והאפשרויות של SSML שבהם ניתן להשתמש בפעולות שלכם.

<speak>

רכיב הבסיס של תגובת SSML.

למידע נוסף על הרכיב speak, אפשר לעיין במפרט W3.

דוגמה

<speak>
  my SSML content
</speak>

<break>

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

למידע נוסף על הרכיב break, אפשר לעיין במפרט W3.

מאפיינים

מאפיין תיאור
time

מגדיר את משך ההפסקה לפי שניות או אלפיות שנייה (למשל: '3 שנ' או '250 אלפיות שנייה').

strength

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

דוגמה

הדוגמה הבאה מראה איך משתמשים ברכיב <break> כדי להשהות בין שלבים:

<speak>
  Step 1, take a deep breath. <break time="200ms"/>
  Step 2, exhale.
  Step 3, take a deep breath again. <break strength="weak"/>
  Step 4, exhale.
</speak>

<say‑as>

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

הרכיב <say‑as> כולל את מאפיין החובה interpret-as, שקובע את אופן ההקראה של הערך. אפשר להשתמש במאפיינים האופציונליים format ו-detail בהתאם לערך הספציפי של interpret-as.

דוגמאות

המאפיין interpret-as תומך בערכים הבאים:

  • currency

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

    <speak>
      <say-as interpret-as='currency' language='en-US'>$42.01</say-as>
    </speak>
        
  • telephone

    אפשר לעיין בתיאור של interpret-as='telephone' בערכי המאפיינים מסוג Ask-as של W3C SSML 1.0.

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

    הרכיב "google:style='zero-as-zero'" המאפיין הזה פועל כרגע רק בלוקאלים של אנגלית.

          <speak>
            <say-as interpret-as='telephone' google:style='zero-as-zero'>1800-202-1212</say-as>
          </speak>
        
  • verbatim או spell-out

    בדוגמה הבאה מאויתים אות אחר אות:

    <speak>
      <say-as interpret-as="verbatim">abcdefg</say-as>
    </speak>
        
  • date

    המאפיין format הוא רצף של קודי תווים בשדה תאריך. קודי התווים הנתמכים של השדות ב-format הם {y, m, d} לשנה, לחודש וליום (בחודש) בהתאמה. אם קוד השדה מופיע פעם אחת לשנה, לחודש או ליום, מספר הספרות הצפוי הוא 4, 2 ו-2 בהתאמה. אם קוד השדה חוזר על עצמו, מספר הספרות הצפויות הוא מספר הפעמים שהקוד חוזר. אפשר להפריד בין השדות בטקסט של התאריך באמצעות סימני פיסוק ו/או רווחים.

    המאפיין detail קובע את צורת הקריאה של התאריך. ב-detail='1' חובה למלא רק את השדות של היום ואחד מהשדות של חודש או שנה, אבל אפשר לציין את שניהם. זו ברירת המחדל כשמזינים פחות מכל שלושת השדות. הצורה המדוברת היא "{ordinal day} מתוך {month}, {year}".

    הדוגמה הבאה מדוברת בתור "עשרה בספטמבר, תשע-עשרים":

    <speak>
      <say-as interpret-as="date" format="yyyymmdd" detail="1">
        1960-09-10
      </say-as>
    </speak>
        

    הדוגמה הבאה מדוברת בתור "עשרת בספטמבר":

    <speak>
      <say-as interpret-as="date" format="dm">10-9</say-as>
    </speak>
        

    עבור detail='2' חובה למלא את השדות 'יום', 'חודש' ו'שנה', וזוהי ברירת המחדל אם יסופקו כל שלושת השדות. השפה המדוברת היא "{month} {ordinal day}, {year}".

    הדוגמה הבאה מדוברת "עשרה בספטמבר, תשע-עשרים":

    <speak>
      <say-as interpret-as="date" format="dmy" detail="2">
        10-9-1960
      </say-as>
    </speak>
        
  • characters

    הדוגמה הבאה נאמרת בתור "C A N":

    <speak>
      <say-as interpret-as="characters">can</say-as>
    </speak>
        
  • cardinal

    הדוגמה הבאה נאמרת כך "י"ב-12,000 ושלוש מאות וחמישים" (לאנגלית אמריקאית) או "12 אלף ושלוש מאות וארבעים וחמישה (לאנגלית בריטית)":

    <speak>
      <say-as interpret-as="cardinal">12345</say-as>
    </speak>
        
  • ordinal

    הדוגמה הבאה כתובה כ-'First':

    <speak>
      <say-as interpret-as="ordinal">1</say-as>
    </speak>
        
  • fraction

    הדוגמה הבאה נאמרת "חמש וחצי":

    <speak>
      <say-as interpret-as="fraction">5+1/2</say-as>
    </speak>
        
  • expletive או bleep

    הדוגמה הבאה נראית כצפצוף, כאילו היא צונזרה:

    <speak>
      <say-as interpret-as="expletive">censor this</say-as>
    </speak>
        
  • unit

    ממירה יחידות ליחיד או לרבים בהתאם למספר. הדוגמה הבאה מדוברת כ-"10 רגל":

    <speak>
      <say-as interpret-as="unit">10 foot</say-as>
    </speak>
        
  • time

    הדוגמה הבאה נאמרת "Two thirty P.M. ":

    <speak>
      <say-as interpret-as="time" format="hms12">2:30pm</say-as>
    </speak>
        

    המאפיין format הוא רצף של קודי תווים בשדה זמן. קודי התווים הנתמכים של השדות ב-format הם {h, m, s, Z, 12, 24} עבור שעה, דקות (בשעה), שניות (בדקה), אזור זמן, שעה 12 שעות ו-24 שעות בהתאמה. אם קוד השדה מופיע פעם אחת בשעה, בדקה או בשנייה, מספר הספרות הצפוי הוא 1, 2 ו-2 בהתאמה. אם קוד השדה חוזר על עצמו, מספר הספרות הצפויות הוא מספר הפעמים שהקוד חוזר. אפשר להפריד בין שדות בטקסט השעה באמצעות סימני פיסוק ו/או רווחים. אם לא צוינו בפורמט שעה, דקה או שנייה, או שאין ספרות תואמות, המערכת תתייחס לשדה הזה כערך אפס. ערך ברירת המחדל של format הוא "hms12".

    המאפיין detail קובע אם צורת השעה המדוברת היא 12 שעות או 24 שעות. פורמט השעה הוא 24 שעות אם לא מציינים את detail='1' או אם לא מציינים את detail, ופורמט השעה הוא 24 שעות. הפורמט שבו נאמרים הוא 12 שעות אם לא מציינים את detail='2' או אם לא מציינים את detail, ופורמט השעה הוא 12 שעות.

למידע נוסף על הרכיב say-as, אפשר לעיין במפרט W3.

<audio>

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

מאפיינים

מאפיין חובה ברירת מחדל ערכים
src כן לא רלוונטי URI שמפנה למקור המדיה של האודיו. הפרוטוקול הנתמך הוא https.
clipBegin לא 0 TimeDesignation (עיצוב זמן) שמחושב לפי הסטייה מראש מתחילת ההפעלה של מקור האודיו. אם הערך הזה גדול ממשך הזמן בפועל של מקור האודיו או שווה לו, לא יוכנס אודיו.
clipEnd לא אינסוף TimeDesignation ששונה מההיסט שבין ההתחלה של מקור האודיו לבין סיום ההפעלה בו. אם משך הזמן בפועל של מקור האודיו קטן מהערך הזה, ההפעלה תסתיים באותו זמן. אם clipBegin גדול מ-clipEnd או שווה לו, לא יוכנס אודיו.
speed לא 100% שיעור ההפעלה של הפלט ביחס לקצב הקלט הרגיל, באחוזים. הפורמט הוא מספר ממשי חיובי ואחריו %. הטווח הנתמך כרגע הוא [50% (איטית - חצי מהירות), 200% (מהיר - מהירות כפולה)]. ייתכן שערכים שמחוץ לטווח הזה יותאמו או לא ייכללו בו.
repeatCount לא 1 או 10 אם המדיניות repeatDur מוגדרת מספר ממשי שמציין כמה פעמים יש להוסיף את האודיו (לאחר חיתוך, אם בכלל, עד clipBegin ו/או clipEnd). אין תמיכה בחזרות חלקיות, לכן הערך יעוגל למספר השלם הקרוב ביותר. אפס הוא לא ערך חוקי, ולכן המערכת מתייחסת אליו כאל ערך לא צוין, והוא מכיל את ערך ברירת המחדל במקרה הזה.
repeatDur לא אינסוף TimeDesignation שמגביל את משך הזמן של קטע האודיו שנוסף לאחר עיבוד המקור, עבור המאפיינים clipBegin, clipEnd, repeatCount ו-speed (במקום משך ההפעלה הרגיל). אם משך הזמן של האודיו המעובד קצר מהערך הזה, ההפעלה תסתיים באותו זמן.
soundLevel לא +0dB התאמת עוצמת הקול של האודיו לפי soundLevelדציבלים. הטווח המקסימלי הוא +/-40dB, אבל הטווח בפועל עשוי להיות נמוך יותר בצורה יעילה, ויכול להיות שאיכות הפלט לא תניב תוצאות טובות לאורך כל הטווח.

בהמשך מוצגות ההגדרות שנתמכות כרגע לגבי אודיו:

  • פורמט: MP3 (MPEG v2)
    • 24,000 דגימות לשנייה
    • 24,000 ~ 96,000 סיביות לשנייה, קצב קבוע
  • פורמט: Opus ב-Ogg
    • 24,000 דגימות לשנייה (Super-wideband)
    • 24,000 - 96,000 סיביות לשנייה, בקצב קבוע
  • פורמט (הוצא משימוש): WAV (RIFF)
    • PCM חתום ב-16 ביט, אנדיאן קטן
    • 24,000 דגימות לשנייה
  • בכל הפורמטים:
    • עדיף להשתמש בערוץ יחיד, אבל ניתן להשתמש בסטריאו.
    • משך זמן מקסימלי של 240 שניות. אם אתם רוצים להשמיע אודיו למשך זמן ארוך יותר, כדאי להטמיע תגובת מדיה.
    • קובץ בגודל של עד 5 מגה-בייט.
    • כתובת ה-URL של המקור חייבת להשתמש בפרוטוקול HTTPS.
    • סוכן המשתמש שלנו לאחזור האודיו הוא "Google-Speech-Actions".

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

כתובת ה-URL של src חייבת להיות גם כתובת URL מסוג HTTP (ב-Google Cloud Storage אפשר לארח את קובצי האודיו בכתובת URL מסוג HTTPS).

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

למידע נוסף על הרכיב audio, אפשר לעיין במפרט W3.

דוגמה

<speak>
  <audio src="cat_purr_close.ogg">
    <desc>a cat purring</desc>
    PURR (sound didn't load)
  </audio>
</speak>

<p>,<s>

רכיבי משפטים ופסקאות.

לקבלת מידע נוסף על הרכיבים p ו-s, אפשר לעיין במפרט W3.

דוגמה

<p><s>This is sentence one.</s><s>This is sentence two.</s></p>

שיטות מומלצות

  • שימוש ב-<s>...</s> תגים לגלישת משפטים שלמים, במיוחד אם הם מכילים רכיבי SSML שמשנים פרוזודיה (כלומר <audio>, <break>, <emphasis>, <par>, <prosody>, <say-as>, <seq> ו-<sub>).
  • אם הפסקה הדיבור אמורה להיות ארוכה מספיק כדי שאפשר יהיה לשמוע אותה, יש להזין <s>...</s> ו את ההפסקה בין המשפטים.

<sub>

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

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

למידע נוסף על הרכיב sub, אפשר לעיין במפרט W3.

דוגמאות

<sub alias="World Wide Web Consortium">W3C</sub>
<sub alias="にっぽんばし">日本橋</sub>

<mark>

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

למידע נוסף על הרכיב mark, אפשר לעיין במפרט W3.

דוגמה


<prosody>

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

אפשר להגדיר את המאפיינים rate ו-volume בהתאם למפרט של W3. יש שלוש אפשרויות להגדרת הערך של המאפיין pitch:

<speak>
Go from <mark name="here"/> here, to <mark name="there"/> there!
</speak>
מאפיין תיאור
name

מזהה המחרוזת של כל סימן.

אפשרות תיאור
קרוב-משפחה מציינים ערך יחסי (למשל 'נמוך', 'בינוני', 'גבוה' וכו') במקומות שבהם 'בינוני' הוא ההצעה לשיר שמוגדר כברירת מחדל.
גוונים מעלים או מורידים את מצגת המכירות ב-N חצאי טון באמצעות "+N" או ' -Nst' בהתאמה. לתשומת ליבך: "+/-" ו-"st" נדרשות.
אחוז מעלים או מורידים את מצגת המכירות ב-N אחוזים באמצעות שימוש ב- +N% " או " -N% " בהתאמה. חשוב לשים לב ש-"%" הוא חובה, אבל +/- הוא אופציונלי.

למידע נוסף על הרכיב prosody, אפשר לעיין במפרט W3.

דוגמה

בדוגמה הבאה נעשה שימוש ברכיב <prosody> כדי לדבר לאט בגובה של 2 חצאי טון מהרגיל:

<prosody rate="slow" pitch="-2st">Can you hear me now?</prosody>

<emphasis>

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

הרכיב הזה תומך ב'רמה' אופציונלית עם הערכים החוקיים הבאים:

  • strong
  • moderate
  • none
  • reduced

למידע נוסף על הרכיב emphasis, אפשר לעיין במפרט W3.

דוגמה

בדוגמה הבאה נעשה שימוש ברכיב <emphasis> כדי ליצור הודעה:

<emphasis level="moderate">This is an important announcement</emphasis>

<par>

מאגר מדיה מקביל שמאפשר להפעיל כמה רכיבי מדיה בבת אחת. התוכן המותר היחיד הוא קבוצה של רכיבים מסוג <par>, <seq> ו-<media>, או כמה רכיבים. הסדר של רכיבי <media> לא משמעותי.

אלא אם ברכיב צאצא מצוין שעת התחלה שונה, שעת ההתחלה המשתמעת של הרכיב זהה לזו של הקונטיינר <par>. אם לרכיב צאצא מוגדר ערך היסט עבור המאפיין התחלה או end, ההיסט של הרכיב יהיה יחסי לזמן ההתחלה של הקונטיינר <par>. עבור רכיב השורש <par>, המערכת מתעלמת ממאפיין ההתחלה, ושעת ההתחלה היא כאשר תהליך סינתזת הדיבור של SSML מתחיל להפיק פלט עבור רכיב השורש <par> (כלומר, הזמן בפועל "אפס").

דוגמה

<speak>
  <par>
    <media xml:id="question" begin="0.5s">
      <speak>Who invented the Internet?</speak>
    </media>
    <media xml:id="answer" begin="question.end+2.0s">
      <speak>The Internet was invented by cats.</speak>
    </media>
    <media begin="answer.end-0.2s" soundLevel="-6dB">
      <audio
        src="https://actions.google.com/.../cartoon_boing.ogg"/>
    </media>
    <media repeatCount="3" soundLevel="+2.28dB"
      fadeInDur="2s" fadeOutDur="0.2s">
      <audio
        src="https://actions.google.com/.../cat_purr_close.ogg"/>
    </media>
  </par>
</speak>

<seq>

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

אפשר להגדיר את המאפיינים begin ו-end של רכיבי צאצא כדי לקזז ערכי היסט (מידע נוסף זמין במפרט הזמן בהמשך). האלמנטים הצאצאים האלה ערכי ההיסט יהיו יחסיים לסוף של הרכיב הקודם ברצף, או, במקרה של הרכיב הראשון ברצף, ביחס לתחילת הקונטיינר <seq>.

דוגמה

<speak>
  <seq>
    <media begin="0.5s">
      <speak>Who invented the Internet?</speak>
    </media>
    <media begin="2.0s">
      <speak>The Internet was invented by cats.</speak>
    </media>
    <media soundLevel="-6dB">
      <audio
        src="https://actions.google.com/.../cartoon_boing.ogg"/>
    </media>
    <media repeatCount="3" soundLevel="+2.28dB"
      fadeInDur="2s" fadeOutDur="0.2s">
      <audio
        src="https://actions.google.com/.../cat_purr_close.ogg"/>
    </media>
  </seq>
</speak>

<media>

מייצג שכבת מדיה בתוך רכיב <par> או <seq>. התוכן המותר של רכיב <media> הוא רכיב <speak> או <audio> של SSML. בטבלה הבאה מתוארים המאפיינים החוקיים של רכיב <media>.

מאפיינים

מאפיין חובה ברירת מחדל ערכים
xml:id לא ללא ערך מזהה XML ייחודי לאלמנט הזה. אין תמיכה בישויות מקודדות. ערכי המזהה המותרים תואמים לביטוי הרגולרי "([-_#]|\p{L}|\p{D})+". מידע נוסף זמין בקטע XML-ID.
מתחילים לא 0 שעת ההתחלה של מאגר המדיה הזה. המערכת תתעלם ממנו אם זהו רכיב הקונטיינר של המדיה הבסיסית (הטיפול בו זהה לברירת המחדל של "0"). ערכי מחרוזת חוקיים מופיעים בקטע מפרט זמן שבהמשך.
סיום לא ללא ערך מפרט לשעת הסיום של מאגר המדיה הזה. ערכי מחרוזת חוקיים מופיעים בקטע מפרט זמן שבהמשך.
repeatCount לא 1 מספר אמיתי שמציין כמה פעמים יש להוסיף את המדיה. אין תמיכה בחזרות חלקיות, לכן הערך יעוגל למספר השלם הקרוב ביותר. אפס הוא לא ערך חוקי, ולכן המערכת מתייחסת אליו כאל ערך לא צוין, והוא מכיל את ערך ברירת המחדל במקרה הזה.
repeatDur לא ללא ערך TimeDesignation שמציג מגבלה על משך הזמן של המדיה שמוסיפים. אם משך הזמן של המדיה קצר מהערך הזה, ההפעלה תסתיים באותו זמן.
soundLevel לא +0dB התאמת עוצמת הקול של האודיו לפי soundLevel דציבלים. הטווח המקסימלי הוא +/-40dB, אבל הטווח בפועל עשוי להיות נמוך יותר בצורה יעילה, ויכול להיות שאיכות הפלט לא תניב תוצאות טובות לאורך כל הטווח.
fadeInDur לא 0 שנ' TimeDesignation (עיצוב זמן) שבו המדיה תוחלף בהדרגה מהמצב שקט לערך soundLevel שהוגדר. אם משך הזמן של המדיה קצר מהערך הזה, כניסה הדרגתית תיפסק בסוף ההפעלה ועוצמת הקול לא תגיע לרמת הצליל שצוינה.
fadeOutDur לא 0 שנ' TimeDesignation (עיצוב זמן) שבו המדיה תיעלם מהמאפיין soundLevel שצוין באופן אופציונלי, עד שהיא תהיה שקטה. אם משך הזמן של המדיה קצר מהערך הזה, עוצמת הקול תוגדר לערך נמוך יותר כדי להבטיח השתקה בסוף ההפעלה.

מפרט שעה

מפרט זמן, המשמש לערך המאפיינים 'begin' ו-'end' של רכיבי <media> ומאגרי מדיה (רכיבי <par> ו-<seq>), הוא ערך היסט (לדוגמה, +2.5s) או ערך סנכרון (לדוגמה, foo_id.end-250ms).

  • ערך קיזוז - ערך היסט זמן הוא ערך של ספירת זמן SMIL שמאפשר ערכים שתואמים לביטוי הרגולרי: "\s\*(+|-)?\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    מחרוזת הספרה הראשונה היא החלק השלם של המספר העשרוני, והמחרוזת השנייה היא החלק העשרוני. סימן ברירת המחדל (כלומר '(+|-)?') הוא '+'. ערכי היחידות תואמים לשעות, לדקות, לשניות ולאלפיות השנייה, בהתאמה. ברירת המחדל של היחידות היא 's'. (שניות).

  • ערך Syncbase – ערך Syncbase הוא ערך SMIL syncbase שמאפשר ערכים שתואמים לביטוי הרגולרי: "([-_#]|\p{L}|\p{D})+\.(begin|end)\s\*(+|-)\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    הספרות והיחידות מפורשות באותו אופן כמו ערך היסט.

סימולטור TTS

מסוף הפעולות כולל סימולטור TTS שניתן להשתמש בו כדי לבדוק SSML עם אחד מהרכיבים שלמעלה. אפשר למצוא את סימולטור טקסט לדיבור (TTS) במסוף בקטע Simulator > (סימולטור >) אודיו. מקלידים את הטקסט ואת קוד ה-SSML בסימולטור ולוחצים על עדכון והאזנה כדי לשמוע את פלט ה-TTS.

אפשר גם ללחוץ על לחצן ההורדה כדי לשמור קובץ .mp3 של ה-TTS הפלט.