SSML (Dialogflow)

عند عرض ردّ إلى "مساعد Google"، يمكنك استخدام مجموعة فرعية من لغة ترميز تركيب الكلام (SSML) في ردودك. وباستخدام SSML، يمكنك جعل ردود محادثتك تبدو وكأنها كلام طبيعي. في ما يلي مثال على ترميز SSML وطريقة إعادة قراءة "مساعد Google" له.

أداة 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 فقط، تتطلّب "المهام مع مساعد Google" عرض نصّ للرد. لن ينطق "مساعد Google" النص داخل علامة <audio>، لذا يمكنك إدراج نص فاصل أو وصف قصير في علامة <audio> لاستيفاء هذا الشرط. لن يتحدّث "مساعد Google" عن النص المضمّن في علامة <audio> بعد تشغيل الصوت، ولن يطّلع على متطلبات "المهام مع مساعد 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>

لا يتجاوز المثال أعلاه & لتنسيق 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". تشير القيمة "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

    يتم التحدث في المثال التالي على أنه "اثنان وأربعون دولارًا وسنتًا واحدًا". إذا تم حذف سمة اللغة، يتم استخدام اللغة الحالية.

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

    يمكنك الاطّلاع على وصف interpret-as='telephone' في ملاحظة W3C SSML 1.0 Saa-asattribute value 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}".

    فيما يلي مثال على ذلك "العاشر من سبتمبر، التاسعة عشرون":

    <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}".

    في ما يلي مثال على ذلك من قبيل "10 أيلول (سبتمبر) و90/19":

    <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

    يتم قول المثال التالي على النحو التالي: "اثنا عشر ألفًا وثلاثمائة وخمسة وأربعين" (للإنجليزية في الولايات المتحدة) أو "اثني عشر ألفًا وثلاثمائة وخمسة وأربعون (للإنجليزية في المملكة المتحدة)":

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

    يتم قول المثال التالي على أنّه "أوّل":

    <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 نعم timing fixed in amara معرّف موارد منتظم (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 لا +0 ديسيبل يمكنك ضبط مستوى الصوت بمقدار soundLevel ديسيبل. الحد الأقصى للنطاق هو +/-40 ديسيبل، ولكن قد يكون النطاق الفعلي أقل فعالية، وقد لا تسفر جودة الإخراج عن نتائج جيدة على النطاق بأكمله.

في ما يلي الإعدادات المتوافقة حاليًا للصوت:

  • التنسيق: MP3 (MPEG v2)
    • 24 ألف عينة في الثانية
    • من 24 ألف إلى 96 ألف بت في الثانية، بمعدّل ثابت
  • التنسيق: Opus في Ogg
    • 24 ألف عيّنة في الثانية (النطاق الفائق العرض)
    • من 24 ألف إلى 96 ألف بت في الثانية، بمعدّل ثابت
  • التنسيق (متوقف): WAV (RIFF)
    • معيار PCM 16 بت، النهاية الصغيرة
    • 24 ألف عينة في الثانية
  • بالنسبة إلى جميع الأشكال:
    • يُفضَّل استخدام قناة واحدة، ولكن يُسمَح باستخدام الاستيريو.
    • 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> و<see-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

معرِّف السلسلة لكل علامة.

Option الوصف
أحد الأقارب حدِّد قيمة نسبية (على سبيل المثال، "منخفض" أو "متوسط" أو "مرتفع" أو ما إلى ذلك) حيث يكون "متوسط" هو العرض التقديمي الترويجي التلقائي.
نصف النغمة يمكنك زيادة درجة الصوت أو تقليلها بمقدار "N" باستخدام "+N" أو "-N" على التوالي. تجدر الإشارة إلى أنّ "+/-" و "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>. إذا كان عنصر فرعي يحتوي على قيمة إزاحة تم ضبطها للسمة begin أو 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> هو عنصر SSML <speak> أو <audio>. يوضّح الجدول التالي السمات الصالحة لعنصر <media>.

السمات

السمة مطلوبة تلقائي القيم
xml:id لا بلا قيمة معرّف XML فريد لهذا العنصر الكيانات المرمّزة غير متاحة. تتطابق قيم المعرّفات المسموح بها مع التعبير العادي "([-_#]|\p{L}|\p{D})+". راجِع XML-ID للحصول على مزيد من المعلومات.
البدء لا 0 وقت البدء لحاوية الوسائط هذه. يتم تجاهله إذا كان هذا هو عنصر حاوية الوسائط الجذر (تمت معالجته بالطريقة نفسها التي يتم بها التعامل مع الإعداد التلقائي "0"). يُرجى الاطّلاع على قسم مواصفات الوقت أدناه لمعرفة قيم السلسلة الصالحة.
النهاية لا بلا قيمة مواصفات لوقت الانتهاء لحاوية الوسائط هذه. يُرجى الاطّلاع على قسم مواصفات الوقت أدناه لمعرفة قيم السلسلة الصالحة.
repeatCount لا 1 رقم حقيقي يحدد عدد مرات إدراج الوسائط. لا يمكن استخدام التكرارات الكسورية، لذا سيتم تقريب القيمة إلى أقرب عدد صحيح. الصفر ليس قيمة صالحة وبالتالي يتم التعامل معه على أنه غير محدد وله القيمة التلقائية في هذه الحالة.
repeatDur لا بلا قيمة TimeDesignation (تحديد الوقت) هو حد لمدة الوسائط التي تم إدراجها. إذا كانت مدة الوسائط أقل من هذه القيمة، ينتهي التشغيل في ذلك الوقت.
soundLevel لا +0 ديسيبل يمكنك ضبط مستوى الصوت بمقدار soundLevel ديسيبل. الحد الأقصى للنطاق هو +/-40 ديسيبل، ولكن قد يكون النطاق الفعلي أقل فعالية، وقد لا تسفر جودة الإخراج عن نتائج جيدة على النطاق بأكمله.
fadeInDur لا 0 ثانية TimeDesignation حيث سيتلاشى الوسائط من الوضع الصامت إلى soundLevel المحددة اختياريًا. وإذا كانت مدة الوسائط أقل من هذه القيمة، فسيتوقف تلاشي الظهور عند نهاية التشغيل ولن يصل مستوى الصوت إلى مستوى الصوت المحدد.
fadeOutDur لا 0 ثانية TimeDesignation تتلاشى خلاله الوسائط من soundLevel المحددة اختياريًا حتى تصبح صامتة. وإذا كانت مدة الوسائط أقل من هذه القيمة، يتم تعيين مستوى الصوت على قيمة أقل لضمان الوصول إلى كتم الصوت عند نهاية التشغيل.

مواصفات الوقت

إنّ مواصفة الوقت المستخدَمة لقيمة سمتَي "البداية" و"النهاية" لعناصر <media> وحاويات الوسائط (العنصرَين <par> و<seq>) تكون إمّا قيمة إزاحة (على سبيل المثال، +2.5s) أو قيمة قاعدة مزامنة (مثل foo_id.end-250ms).

  • قيمة الإزاحة - قيمة معادلة الوقت هي قيمة SMIL Timecount التي تسمح بقيم تطابق التعبير العادي: "\s\*(+|-)?\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    سلسلة الرقم الأول هي الجزء الكامل من العدد العشري وسلسلة الرقم الثاني هي الجزء الكسور العشرية. العلامة التلقائية (أي "(+|-)?") هي "+". تتوافق قيم الوحدة مع الساعات والدقائق والثواني والملي ثانية على التوالي. القيمة التلقائية للوحدات هي "s" (بالثواني).

  • قيمة Syncbase - قيمة Syncbase هي قيمة SMIL Syncbase (قيمة لقاعدة مزامنة SMIL) تسمح بقيم تطابق التعبير العادي: "([-_#]|\p{L}|\p{D})+\.(begin|end)\s\*(+|-)\s\*(\d+)(\.\d+)?(h|min|s|ms)?\s\*"

    يتم تفسير الأرقام والوحدات بالطريقة ذاتها التي يتم بها تفسير قيمة الإزاحة.

محاكي تحويل النص إلى كلام

تتضمن وحدة تحكم الإجراءات محاكي TTS يمكنك استخدامه لاختبار SSML باستخدام أي من العناصر المذكورة أعلاه. يمكنك العثور على محاكي تحويل النص إلى كلام في وحدة التحكم ضمن المحاكي > الصوت. اكتب النص وSSML في المحاكي وانقر على تحديث واستماع للاستماع إلى مخرجات TTS.

يمكنك أيضًا النقر على زر التنزيل لحفظ ملف .mp3 من مخرجات TTS.