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 נדרש טקסט לתצוגה בתגובה. בגלל ש-Assistant לא תקריא את הטקסט שבתג <audio>, אפשר להוסיף לתג <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

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

strength

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

דוגמה

הדוגמה הבאה מראה איך להשתמש ברכיב <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

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

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

    עיין בתיאור interpret-as='telephone' בהערה של W3C SSML 1.0 say-as WG.

    בדוגמה הבאה כתוב "אחד שמונה אפס אפס שתיים אפס שתיים שתיים שתיים אחת שתיים". אם המאפיין "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}".

    הדוגמה הבאה נאמרת כך: "ה-10 בספטמבר, תשע-עשרה":

    <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 אלף שלוש מאות ארבעים וחמש" (לאנגלית ארה"ב) או "עשרים אלף שלוש מאות וארבעים וחמש (באנגלית בריטית)":

    <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

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

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

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

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

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

כתובת ה-URL של src חייבת גם להיות כתובת URL מסוג https (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.

דוגמה

<speak>
Go from <mark name="here"/> here, to <mark name="there"/> there!
</speak>

<prosody>

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

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

מאפיין התיאור
name

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

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

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

דוגמה

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

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

<emphasis>

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

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

  • strong
  • moderate
  • none
  • reduced

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

דוגמה

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

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

<par>

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

אלא אם רכיב צאצא מציין שעת התחלה שונה, שעת ההתחלה המשתמעת של הרכיב זהה לזו של הגורם המכיל <par>. אם לרכיב צאצא מוגדר ערך היסט עבור המאפיין התחלה או סיום, הקיזוז של הרכיב יהיה יחסי לשעת ההתחלה של מאגר <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> אחד או יותר. הסדר של רכיבי המדיה הוא הסדר שבו הם מוצגים.

אפשר להגדיר את המאפיינים start ו-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> הוא רכיב SSML <speak> או <audio>. בטבלה הבאה מפורטים המאפיינים החוקיים לרכיב <media>.

מאפיינים

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

מפרט שעה

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

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

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

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

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

סימולטור TTS

בקונסולה ל-Actions יש סימולטור TTS שאפשר להשתמש בו כדי לבדוק SSML עם כל אחד מהרכיבים שלמעלה. הסימולטור של המרת טקסט לדיבור (TTS) נמצא בקונסולה בקטע Simulator > Audio. מקלידים את הטקסט ואת קובץ ה-SSML בסימולטור ולוחצים על Update and Listen כדי לשמוע את פלט ה-TTS.

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