تحسين التركيب باستخدام لغة ترميز تركيب الكلام (SSML)

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

يعتمد تنفيذ خدمة الكلام ل SSML على الإصدار 1.0 من Speech Markup Language 1.0 من اتحاد الويب العالمي.

هام

يتم حساب الأحرف الصينية كحرفين للفوترة، بما في ذلك Kanji المستخدم باللغة اليابانية أو Hanja المستخدمة باللغة الكورية أو Hanzi المستخدمة بلغات أخرى. لمزيد من المعلومات، راجع التسعير.

أصوات عصبية تم إنشاؤها مسبقا وأصوات عصبية مخصصة

استخدم صوتا عصبيا إنسانيا أو أنشئ صوتك العصبي المخصص الفريد لمنتجك أو علامتك التجارية. للحصول على قائمة كاملة باللغات واللغات والأصوات المدعومة، راجع دعم اللغة. لمعرفة المزيد حول استخدام صوت عصبي تم إنشاؤه مسبقا وصوت عصبي مخصص، راجع نظرة عامة على تحويل النص إلى كلام.

ملاحظة

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

الأحرف الخاصة

عند استخدام SSML، ضع في اعتبارك أنه يجب إلغاء الأحرف الخاصة، مثل علامات الاقتباس والفواصل العليا والأقواس. لمزيد من المعلومات، راجع Extensible Markup Language (XML) 1.0: الملحق D.

عناصر SSML المدعومة

يتم إنشاء كل مستند SSML مع عناصر SSML (أو علامات). يتم استخدام هذه العناصر لضبط درجة الصوت والمحترفين ومستوى الصوت والمزيد. توضح الأقسام التالية بالتفصيل كيفية استخدام كل عنصر ومتى يكون العنصر مطلوبا أو اختياريا.

هام

لا تنس استخدام علامات اقتباس مزدوجة حول قيم السمة. تتطلب معايير XML جيدة التكوين والصالحة أن تكون قيم السمات محاطة بعلامات اقتباس مزدوجة. على سبيل المثال، <prosody volume="90"> هو عنصر صالح جيد التكوين، ولكنه <prosody volume=90> ليس كذلك. قد لا يتعرف SSML على قيم السمات غير الموجودة في علامات اقتباس مزدوجة.

إنشاء مستند SSML

speak العنصر هو العنصر الجذر. وهو مطلوب لجميع مستندات SSML. speak يحتوي العنصر على معلومات مهمة، مثل الإصدار واللغة وتعريف مفردات العلامات.

بناء الجملة

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="string"></speak>

السمات

السمة الوصف مطلوب أو اختياري
version يشير إلى إصدار مواصفات SSML المستخدمة لتفسير علامات المستند. الإصدار الحالي هو 1.0. مطلوب
xml:lang تحديد لغة المستند الجذر. يمكن أن تحتوي القيمة على تعليمة برمجية للغة صغيرة مكونة من حرفين، على سبيل المثال، en. أو يمكن أن تحتوي القيمة على رمز اللغة والبلد/المنطقة الكبيرة، على سبيل المثال، en-US. مطلوب
xmlns يحدد URI للمستند الذي يعرف مفردات العلامات (أنواع العناصر وأسماء السمات) لمستند SSML. URI الحالي هو http://www.w3.org/2001/10/synthesis. مطلوب

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

voice العنصر مطلوب. يتم استخدامه لتحديد الصوت المستخدم لتحويل النص إلى كلام.

بناء الجملة

<voice name="string">
    This text will get converted into synthesized speech.
</voice>

السمة

السمة الوصف مطلوب أو اختياري
name يحدد الصوت المستخدم لإخراج تحويل النص إلى كلام. للحصول على قائمة كاملة بالأصوات المدعومة، راجع دعم اللغة. مطلوب

مثال

ملاحظة

يستخدم en-US-JennyNeural هذا المثال الصوت. للحصول على قائمة كاملة بالأصوات المدعومة، راجع دعم اللغة.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        This is the text that is spoken.
    </voice>
</speak>

استخدام أصوات متعددة

speak ضمن العنصر، يمكنك تحديد أصوات متعددة لإخراج تحويل النص إلى كلام. يمكن أن تكون هذه الأصوات بلغات مختلفة. لكل صوت، يجب التفاف النص في عنصر voice .

السمة

السمة الوصف مطلوب أو اختياري
name يحدد الصوت المستخدم لإخراج تحويل النص إلى كلام. للحصول على قائمة كاملة بالأصوات المدعومة، راجع دعم اللغة. مطلوب

مثال

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        Good morning!
    </voice>
    <voice name="en-US-ChristopherNeural">
        Good morning to you too Jenny!
    </voice>
</speak>

ضبط أنماط التحدث

بشكل افتراضي، يقوم تحويل النص إلى كلام بتجميع النص باستخدام نمط التحدث المحايد للأصوات العصبية. يمكنك ضبط نمط التحدث ودرجة النمط والدور على مستوى الجملة.

يتم دعم الأنماط ودرجة النمط والأدوار لمجموعة فرعية من الأصوات العصبية. إذا لم يكن النمط أو الدور مدعوما، تستخدم الخدمة الكلام المحايد الافتراضي. لتحديد الأنماط والأدوار المعتمدة لكل صوت، استخدم:

السمة الوصف مطلوب أو اختياري
style تحديد نمط التحدث. أنماط التحدث خاصة بالصوت. مطلوب في حالة ضبط نمط التحدث لصوت عصبي. إذا كنت تستخدم mstts:express-as، فيجب توفير النمط. إذا تم توفير قيمة غير صالحة، يتم تجاهل هذا العنصر.
styledegree تحديد شدة نمط التحدث. القيم المقبولة: 0.01 إلى 2 شاملة. القيمة الافتراضية هي 1، ما يعني كثافة النمط المعرفة مسبقا. الحد الأدنى للوحدة هو 0.01، مما يؤدي إلى ميل طفيف للنمط الهدف. ينتج عن القيمة 2 مضاعفة كثافة النمط الافتراضي. ‏‏اختياري. إذا لم تقم بتعيين السمة style ، يتم تجاهل السمة styledegree . يتم دعم تعديلات درجة نمط التحدث للأصوات العصبية الصينية (الماندارين، المبسطة).
role تحديد دور المتحدث. يعمل الصوت كسن وجنس مختلفين، ولكن لا يتم تغيير اسم الصوت. ‏‏اختياري. يتم دعم تعديلات الأدوار لهذه الأصوات العصبية الصينية (الماندارين، المبسطةzh-CN-XiaomoNeural): و zh-CN-XiaoxuanNeuralzh-CN-YunxiNeuralو وzh-CN-YunyeNeural.

النمط

يمكنك استخدام mstts:express-as العنصر للتعبير عن العواطف مثل البهجة والتعاطف والهدوء. يمكنك أيضا تحسين الصوت لسيناريوهات مختلفة مثل خدمة العملاء، ونشرة الأخبار، والمساعد الصوتي.

بناء الجملة

<mstts:express-as style="string"></mstts:express-as>

مثال

توضح قصاصة SSML هذه كيفية <mstts:express-as> استخدام العنصر لتغيير نمط التحدث إلى cheerful.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <mstts:express-as style="cheerful">
            That'd be just amazing!
        </mstts:express-as>
    </voice>
</speak>

يحتوي الجدول التالي على أوصاف لكل نمط معتمد.

النمط الوصف
style="affectionate" يعبر عن نغمة دافئة وحنونة، مع درجة أعلى وطاقة صوتية. المتحدث في حالة جذب انتباه المستمع. غالبا ما تختتم شخصية المتحدث بطبيعتها.
style="angry" يعبر عن لهجة غاضبة ومزعجة.
style="assistant" يعبر عن نبرة دافئة ومريحة للمساعدين الرقميين.
style="calm" يعبر عن موقف بارد، مجمع، ومؤلف عند التحدث. النغمة والنبرة والبروسودي أكثر اتساقا مقارنة بالأنواع الأخرى من الكلام.
style="chat" يعبر عن نبرة غير رسمية ومريحة.
style="cheerful" يعبر عن نبرة إيجابية وسعيدة.
style="customerservice" يعبر عن نبرة ودية ومفيدة لدعم العملاء.
style="depressed" يعبر عن نبرة كآبة ودنيئة مع انخفاض درجة الصوت والطاقة.
style="disgruntled" يعبر عن نبرة ازدراء وشكوى. إن الكلام عن هذه المشاعر يعرض الاستياء والاحتقار.
style="embarrassed" يعبر عن لهجة غير مؤكدة ومترددة عندما يشعر المتحدث بعدم الارتياح.
style="empathetic" يعبر عن شعور من الرعاية والتفاهم.
style="envious" يعبر عن نبرة الإعجاب عندما ترغب في شيء ما لدى شخص آخر.
style="excited" يعبر عن النبرة والأمل. يبدو وكأنه شيء عظيم يحدث والمتحدث سعيد حقا عن ذلك.
style="fearful" يعبر عن نبرة خائفة وعصبية، مع درجة أعلى، وطاقة صوتية أعلى، ومعدل أسرع. المتكلم في حالة من التوتر وعدم الارتياح.
style="friendly" يعبر عن نبرة لطيفة ودعوة ودافئة. يبدو صادقا ومهتما.
style="gentle" يعبر عن لهجة خفيفة ومهذبة وممتعة، مع انخفاض درجة الصوت والطاقة الصوتية.
style="hopeful" يعبر عن نغمة دافئة وتوق. يبدو أن شيئا جيدا سيحدث للمتحدث.
style="lyrical" التعبير عن المشاعر بطريقة حنونية وعاطفية.
style="narration-professional" يعبر عن نبرة احترافية وموضوعية لقراءة المحتوى.
style="narration-relaxed" التعبير عن نغمة مهدوية ولحن لقراءة المحتوى.
style="newscast" يعبر عن نبرة رسمية واحترافية لسرد الأخبار.
style="newscast-casual" يعبر عن نبرة متعددة الاستخدامات وغير رسمية لتسليم الأخبار العامة.
style="newscast-formal" يعبر عن نبرة رسمية وثقة وموثوقة لتسليم الأخبار.
style="sad" يعبر عن نبرة حزينة.
style="serious" يعبر عن نغمة صارمة ووامرة. السماعة غالبا ما تبدو أكثر صرامة وأقل استرخاء بكثير مع إيقاع ثابت.
style="shouting" يتحدث مثل من بعيد أو خارج وجعل النفس مسموعة بوضوح
style="whispering" يتحدث بهدوء شديد ويصنع صوتا هادئا ولطيفا
style="terrified" يعبر عن نبرة خائفة جدا، مع وتيرة أسرع وصوت أكثر هزة. يبدو أن السماعة في حالة غير محمومة ومحمومة.
style="unfriendly" يعبر عن نبرة باردة وغير مبال.

درجة النمط

يمكن تعديل شدة نمط التحدث لتناسب حالة الاستخدام بشكل أفضل. يمكنك تحديد نمط أقوى أو أكثر نعومة مع السمة styledegree لجعل الكلام أكثر تعبيرا أو منخفضا. يتم دعم تعديلات درجة نمط التحدث للأصوات العصبية الصينية (الماندارين، المبسطة).

بناء الجملة

<mstts:express-as style="string" styledegree="value"></mstts:express-as>

مثال

توضح قصاصة SSML هذه كيفية استخدام السمة styledegree لتغيير كثافة نمط التحدث ل zh-CN-XiaomoNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaoxiaoNeural">
        <mstts:express-as style="sad" styledegree="2">
            快走吧,路上一定要注意安全,早去早回。
        </mstts:express-as>
    </voice>
</speak>

الدور

وبصرف النظر عن ضبط أنماط التحدث ودرجة النمط، يمكنك أيضا ضبط المعلمة role بحيث يقلد الصوت عمرا وجنسا مختلفا. على سبيل المثال، يمكن لصوت ذكر رفع درجة الصوت وتغيير النغم لتقليد صوت أنثى، ولكن لن يتم تغيير اسم الصوت. يتم دعم تعديلات الأدوار لهذه الأصوات العصبية الصينية (الماندارين، المبسطة):

  • zh-CN-XiaomoNeural
  • zh-CN-XiaoxuanNeural
  • zh-CN-YunxiNeural
  • zh-CN-YunyeNeural

بناء الجملة

<mstts:express-as role="string" style="string"></mstts:express-as>

مثال

توضح القصاصة البرمجية SSML هذه كيفية استخدام السمة role لتغيير تشغيل الأدوار ل zh-CN-XiaomoNeural.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
    <voice name="zh-CN-XiaomoNeural">
        女儿看见父亲走了进来,问道:
        <mstts:express-as role="YoungAdultFemale" style="calm">
            “您来的挺快的,怎么过来的?”
        </mstts:express-as>
        父亲放下手提包,说:
        <mstts:express-as role="OlderAdultMale" style="calm">
            “刚打车过来的,路上还挺顺畅。”
        </mstts:express-as>
    </voice>
</speak>

يحتوي الجدول التالي على أوصاف لكل دور مدعوم.

الدور الوصف
role="Girl" الصوت يقلد لفتاة
role="Boy" الصوت يقلد لولد.
role="YoungAdultFemale" الصوت يقلد لأنثى شابة بالغة.
role="YoungAdultMale" الصوت يحاكي ذكرا شابا بالغا.
role="OlderAdultFemale" الصوت يقلد لأنثى بالغة أكبر سنا.
role="OlderAdultMale" الصوت يحاكي ذكرا بالغا أكبر سنا.
role="SeniorFemale" الصوت يقلد لأنثى كبيرة.
role="SeniorMale" الصوت يحاكي ذكرا كبيرا.

ضبط لغات التحدث

بشكل افتراضي، تكون جميع الأصوات العصبية بطلاقة بلغتها الخاصة ولغة الإنجليزية دون استخدام <lang xml:lang> العنصر . على سبيل المثال، إذا كان نص الإدخال باللغة الإنجليزية "أنا متحمس لمحاولة تحويل النص إلى كلام" وكنت تستخدم es-ES-ElviraNeural الصوت، يتم التحدث بالنص باللغة الإنجليزية بلهجة إسبانية. مع معظم الأصوات العصبية، لا يتم حاليا دعم تعيين لغة كلام معينة مع <lang xml:lang> عنصر على مستوى الجملة أو الكلمة.

يمكنك ضبط لغة التحدث للصوت en-US-JennyMultilingualNeural العصبي على مستوى الجملة ومستوى الكلمة باستخدام <lang xml:lang> العنصر . الصوت en-US-JennyMultilingualNeural العصبي متعدد اللغات ب 14 لغة (على سبيل المثال: الإنجليزية والإسبانية والصينية). يتم توفير اللغات المدعومة في جدول يتبع تعريفات بناء الجملة <lang> والسمات.

بناء الجملة

<lang xml:lang="string"></lang>

السمة

السمة الوصف مطلوب أو اختياري
lang يحدد اللغة التي تريد أن يتحدث بها الصوت العصبي. مطلوب لضبط لغة التحدث للصوت العصبي. إذا كنت تستخدم lang xml:lang، فيجب توفير إعدادات محلية.

ملاحظة

<lang xml:lang> العنصر غير متوافق مع prosody العناصر وbreak. لا يمكنك ضبط الإيقاف المؤقت والمحترفين مثل درجة الصوت أو contour أو rate أو مستوى الصوت في هذا العنصر.

استخدم هذا الجدول لتحديد لغات التحدث المعتمدة لكل صوت عصبي. إذا كان الصوت لا يتحدث لغة نص الإدخال، فلن تقوم خدمة الكلام إخراج الصوت المركبة.

الصوت الإعدادات المحلية الأساسية والافتراضية الإعدادات المحلية الإضافية
en-US-JennyMultilingualNeural en-US de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN

مثال

اللغة الأساسية ل en-US-JennyMultilingualNeural هي en-US. يجب تحديد en-US كلغة افتراضية speak داخل العنصر، سواء تم تعديل اللغة في مكان آخر أم لا. توضح قصاصة SSML هذه كيفية التحدث de-DE مع en-US-JennyMultilingualNeural الصوت العصبي.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-JennyMultilingualNeural">
        <lang xml:lang="de-DE">
            Wir freuen uns auf die Zusammenarbeit mit Ihnen!
        </lang>
    </voice>
</speak>

speak ضمن العنصر، يمكنك تحديد لغات متعددة بما في ذلك en-US إخراج تحويل النص إلى كلام. لكل لغة معدلة، يجب أن يتطابق النص مع اللغة وأن يكون ملتفا في عنصر voice . توضح قصاصة SSML هذه كيفية استخدام <lang xml:lang> لتغيير لغات التحدث إلى es-MXو en-USو fr-FR.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
    <voice name="en-US-JennyMultilingualNeural">
        <lang xml:lang="es-MX">
            ¡Esperamos trabajar con usted! 
        </lang>
        <lang xml:lang="en-US">
           We look forward to working with you!
        </lang>
        <lang xml:lang="fr-FR">
            Nous avons hâte de travailler avec vous!
        </lang>
    </voice>
</speak>

إضافة فاصل أو إيقاف مؤقت أو إزالته

break استخدم العنصر لإدراج الإيقاف المؤقت أو الفواصل بين الكلمات. يمكنك أيضا استخدامه لمنع الإيقاف المؤقت الذي تتم إضافته تلقائيا بواسطة تحويل النص إلى كلام.

ملاحظة

استخدم هذا العنصر لتجاوز السلوك الافتراضي لتحويل النص إلى كلام لكلمة أو عبارة إذا كان الكلام الذي تم تركيبه لتلك الكلمة أو العبارة يبدو غير طبيعي. قم بتعيين strength إلى none لمنع فاصل بروسويدي، والذي يتم إدراجه تلقائيا بواسطة تحويل النص إلى كلام.

بناء الجملة

<break strength="string" />
<break time="string" />

السمات

السمة الوصف مطلوب أو اختياري
strength تحديد المدة النسبية للإيقاف المؤقت باستخدام إحدى القيم التالية:
  • بلا
  • x-weak
  • ضعيفه
  • متوسط (افتراضي)
  • قويه
  • x-strong
‏‏اختياري
time تحديد المدة المطلقة للإيقاف المؤقت بالثوان أو المللي ثانية (مللي ثانية). يجب تعيين هذه القيمة أقل من 5000 مللي ثانية. أمثلة على القيم الصالحة هي 2s و 500ms. ‏‏اختياري
قوه الوصف
بلا، أو إذا لم يتم توفير قيمة 0 مللي ثانية
X-weak 250 مللي ثانية
ضعيفه 500 مللي ثانية
متوسط 750 مللي ثانية
قوي "Strong" 1,000 مللي ثانية
X-strong 1250 مللي ثانية

مثال

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        Welcome to Microsoft Cognitive Services <break time="100ms" /> Text-to-Speech API.
    </voice>
</speak>

إضافة صمت

mstts:silence استخدم العنصر لإدراج إيقاف مؤقت قبل النص أو بعده، أو بين جملتين متجاورتين.

ملاحظة

الفرق بين mstts:silence و break هو أنه break يمكن إضافة أي مكان في النص. لا يعمل الصمت إلا في بداية نص الإدخال أو نهايته أو عند حد جملتين متجاورتين.

بناء الجملة

<mstts:silence  type="string"  value="string"/>

السمات

السمة الوصف مطلوب أو اختياري
type يحدد موقع الصمت المراد إضافته:
  • Leading – في بداية النص
  • Tailing – في نهاية النص
  • Sentenceboundary – بين الجمل المجاورة
مطلوب
Value تحديد المدة المطلقة للإيقاف المؤقت بالثوان أو المللي ثانية. يجب تعيين هذه القيمة أقل من 5000 مللي ثانية. أمثلة على القيم الصالحة هي 2s و 500ms. مطلوب

مثال

في هذا المثال، mtts:silence يستخدم لإضافة 200 مللي ثانية من الصمت بين جملتين.

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
<voice name="en-US-JennyNeural">
<mstts:silence  type="Sentenceboundary" value="200ms"/>
If we’re home schooling, the best we can do is roll with what each day brings and try to have fun along the way.
A good place to start is by trying out the slew of educational apps that are helping children stay happy and smash their schooling at the same time.
</voice>
</speak>

تحديد الفقرات والجمل

p يتم استخدام العنصرين و s للإشارة إلى الفقرات والجمل، على التوالي. في حالة عدم وجود هذه العناصر، يحدد تحويل النص إلى كلام تلقائيا بنية مستند SSML.

p يمكن أن يحتوي العنصر على نص والعناصر التالية: audioو breakو phonemeprosodyو. say-asssubmstts:express-as

s يمكن أن يحتوي العنصر على نص والعناصر التالية: audioو breakو phonemeprosodyوsay-asmstts:express-as.sub

بناء الجملة

<p></p>
<s></s>

مثال

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <p>
            <s>Introducing the sentence element.</s>
            <s>Used to mark individual sentences.</s>
        </p>
        <p>
            Another simple paragraph.
            Sentence structure in this paragraph is not explicitly marked.
        </p>
    </voice>
</speak>

استخدام الهواتف لتحسين النطق

ph يتم استخدام العنصر للنطق الصوتي في مستندات SSML. ph يمكن أن يحتوي العنصر على نص فقط ولكن لا يحتوي على عناصر أخرى. قدم دائما كلاما قابلا للقراءة من قبل الإنسان ككلمة احتياطية.

تتكون الحروف الأبجدية الصوتية من هواتف تتكون من أحرف أو أرقام أو أحرف، في بعض الأحيان في تركيبة. يصف كل هاتف صوتا فريدا من نوعه للكلام. وهذا على النقيض من الأبجدية اللاتينية، حيث قد يمثل أي حرف أصواتا منطوقة متعددة. ضع في اعتبارك النطق المختلف للحرف "ج" في كلمتي "حلوى" و"توقف" أو نطقات مختلفة من تركيبة الحرف "ث" في كلمتي "الشيء" و"تلك".

ملاحظة

في هذا الوقت، لا يتم دعم علامة phonemes لخمسة أصوات: et-EE-AnuNeural، ga-IE-OrlaNeural، lt-LT-OnaNeural، lv-LV-EveritaNeural، وmt-MT-GarceNeural.

بناء الجملة

<phoneme alphabet="string" ph="string"></phoneme>

السمات

السمة الوصف مطلوب أو اختياري
alphabet تحديد الأبجدية الصوتية لاستخدامها عند تركيب نطق السلسلة في السمة ph . يجب تحديد السلسلة التي تحدد الأبجدية بأحرف صغيرة. الخيارات التالية هي الأبجديات المحتملة التي يمكنك تحديدها:
تنطبق الأبجدية فقط على phoneme في العنصر .
‏‏اختياري
ph سلسلة تحتوي على هواتف تحدد نطق الكلمة في phoneme العنصر. إذا كانت السلسلة المحددة تحتوي على هواتف غير معترف بها، فإن تحويل النص إلى كلام يرفض مستند SSML بأكمله ولا ينتج أي من إخراج الكلام المحدد في المستند. مطلوب إذا كنت تستخدم phonemes

أمثلة

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <phoneme alphabet="ipa" ph="təˈmeɪtoʊ"> tomato </phoneme>
    </voice>
</speak>
<speak version="1.0" xmlns="https://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <phoneme alphabet="sapi" ph="iy eh n y uw eh s"> en-US </phoneme>
    </voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <s>His name is Mike <phoneme alphabet="ups" ph="JH AU"> Zhou </phoneme></s>
    </voice>
</speak>

استخدام المعجم المخصص لتحسين النطق

في بعض الأحيان لا يمكن تحويل النص إلى كلام نطق كلمة بدقة. قد تكون الأمثلة على ذلك اسم شركة أو مصطلح طبي أو رمز مشاعر. يمكنك تحديد كيفية قراءة الكيانات الفردية في SSML باستخدام العلامات phoneme و sub . إذا كنت بحاجة إلى تحديد كيفية قراءة كيانات متعددة، يمكنك إنشاء معجم مخصص باستخدام العلامة lexicon .

يدعم المعجم المخصص حاليا ترميز UTF-8.

ملاحظة

في هذا الوقت، لا يتم دعم المعجم المخصص لخمسة أصوات: et-EE-AnuNeural، ga-IE-OrlaNeural، lt-LT-OnaNeural، lv-LV-EveritaNeural، وmt-MT-GarceNeural.

بناء الجملة

<lexicon uri="string"/>

السمة

السمة الوصف مطلوب أو اختياري
uri عنوان مستند PLS الخارجي مطلوب

الاستخدام

لتحديد كيفية قراءة كيانات متعددة، يمكنك إنشاء معجم مخصص، والذي يتم تخزينه كملف .xml أو .pls. التعليمات البرمجية التالية هي نموذج ملف .xml.

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="ipa" xml:lang="en-US">
  <lexeme>
    <grapheme>BTW</grapheme>
    <alias>By the way</alias>
  </lexeme>
  <lexeme>
    <grapheme> Benigni </grapheme>
    <phoneme> bɛˈniːnji</phoneme>
  </lexeme>
  <lexeme>
    <grapheme>😀</grapheme>
    <alias>test emoji</alias>
  </lexeme>
</lexicon>

lexicon يحتوي العنصر على عنصر واحد lexeme على الأقل. يحتوي كل lexeme عنصر على عنصر واحد grapheme على الأقل وعنصر واحد أو أكثر graphemeو aliasو phoneme . grapheme يحتوي العنصر على نص يصف رسم العظام. alias يتم استخدام العناصر للإشارة إلى نطق اختصار أو مصطلح مختصر. phoneme يوفر العنصر نصا يصف كيفية lexeme نطق . alias عند توفير العناصر و phoneme بنفس grapheme العنصر، alias يكون لها أولوية أعلى.

هام

lexeme العنصر حساس لحالة الأحرف في المعجم المخصص. على سبيل المثال، إذا قمت فقط بتوفير phoneme ل lexeme "Hello"، فلن يعمل مع lexeme "hello".

يحتوي المعجم على السمة الضرورية xml:lang للإشارة إلى اللغة التي يجب تطبيقها عليها. يقتصر معجم مخصص واحد على لغة واحدة حسب التصميم، لذلك إذا قمت بتطبيقه على لغة مختلفة، فلن يعمل.

لا يمكنك تعيين نطق عبارة مباشرة باستخدام المعجم المخصص. إذا كنت بحاجة إلى تعيين النطق لاختصار أو مصطلح مختصر، فقم أولا بتوفير alias، ثم قم بإقران phoneme ب alias. على سبيل المثال:

  <lexeme>
    <grapheme>Scotland MV</grapheme>
    <alias>ScotlandMV</alias>
  </lexeme>
  <lexeme>
    <grapheme>ScotlandMV</grapheme>
    <phoneme>ˈskɒtlənd.ˈmiːdiəm.weɪv</phoneme>
  </lexeme>

ملاحظة

الحد المقطعي هو '.' في IPA.

يمكنك أيضا توفير الاختصار alias أو المصطلح المختصر بشكل مباشر. على سبيل المثال:

  <lexeme>
    <grapheme>Scotland MV</grapheme>
    <alias>Scotland Media Wave</alias>
  </lexeme>

هام

phoneme لا يمكن أن يحتوي العنصر على مسافات بيضاء عند استخدام IPA.

لمزيد من المعلومات حول ملف المعجم المخصص، راجع إصدار مواصفات معجم النطق (PLS) 1.0.

بعد ذلك، انشر ملف المعجم المخصص. ليس لدينا قيود على مكان تخزين هذا الملف، ولكن نوصي باستخدام Azure Blob Storage.

بعد نشر معجمك المخصص، يمكنك الرجوع إليه من SSML الخاص بك.

ملاحظة

lexicon يجب أن يكون العنصر داخل voice العنصر .

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
          xmlns:mstts="http://www.w3.org/2001/mstts"
          xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <lexicon uri="http://www.example.com/customlexicon.xml"/>
        BTW, we will be there probably at 8:00 tomorrow morning.
        Could you help leave a message to Robert Benigni for me?
    </voice>
</speak>

عند استخدام هذا المعجم المخصص، تتم قراءة "BTW" على أنه "بالمناسبة". تتم قراءة "Benigni" مع IPA المقدم "bɛˈniːnji."

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

التقييدات

  • حجم الملف: الحد الأقصى لحجم ملف المعجم المخصص هو 100 كيلوبايت. إذا كان الملف يتجاوز هذا الحجم، يفشل طلب التركيب.
  • تحديث ذاكرة التخزين المؤقت ل Lexicon: يتم تخزين المعجم المخصص مؤقتا باستخدام URI كمفتاح على تحويل النص إلى كلام عند تحميله لأول مرة. لن يتم إعادة تحميل المعجم الذي يحمل نفس URI في غضون 15 دقيقة، لذلك يحتاج تغيير المعجم المخصص إلى الانتظار 15 دقيقة على الأكثر حتى يصبح ساري المفعول.

مجموعات صوتية لخدمة الكلام

في العينة السابقة، نستخدم IPA، والذي يعرف أيضا باسم مجموعة هواتف IPA. نقترح عليك استخدام IPA لأنه المعيار الدولي. بالنسبة لبعض أحرف IPA، فهي الإصدار "المحوسب مسبقا" و"المفكك" عندما يتم تمثيلها باستخدام Unicode. يدعم المعجم المخصص فقط Unicode المفكك.

ليس من السهل تذكر IPA، لذلك تحدد خدمة الكلام مجموعة صوتية لسبع لغات: en-USوfr-FRzh-CNde-DEes-ESja-JP.zh-TW

يمكنك استخدام x-microsoft-sapi كقيمة للسمة alphabet مع المعجم المخصص كما هو موضح هنا:

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="x-microsoft-sapi" xml:lang="en-US">
  <lexeme>
    <grapheme>BTW</grapheme>
    <alias> By the way </alias>
  </lexeme>
  <lexeme>
    <grapheme> Benigni </grapheme>
    <phoneme> b eh 1 - n iy - n y iy </phoneme>
  </lexeme>
</lexicon>

لمزيد من المعلومات حول الأبجدية الصوتية المفصلة لخدمة الكلام، راجع المجموعات الصوتية لخدمة الكلام.

ضبط prosody

prosody يتم استخدام العنصر لتحديد التغييرات على درجة الصوت، والمكون، والنطاق، والمعدل، ومستوى الصوت لإخراج تحويل النص إلى كلام. prosody يمكن أن يحتوي العنصر على نص والعناصر التالية: audioو breakو pphonemeو. prosodyssay-assub

نظرا لأن قيم السمات prosodic يمكن أن تختلف عبر نطاق واسع، فإن أداة التعرف على الكلام تفسر القيم المعينة كاقتراح لما يجب أن تكون عليه القيم الافتراضية الفعلية للصوت المحدد. حدود تحويل النص إلى كلام أو استبدال القيم غير المعتمدة. أمثلة القيم غير المدعومة هي درجة 1 ميغاهرتز أو حجم 120.

بناء الجملة

<prosody pitch="value" contour="value" range="value" rate="value" volume="value"></prosody>

السمات

السمة الوصف مطلوب أو اختياري
pitch يشير إلى درجة الأساس للنص. يمكنك التعبير عن العرض التقديمي على النحو التالي:
  • قيمة مطلقة، يتم التعبير عنها كعدد متبوعة ب "Hz" (Hertz). على سبيل المثال، ⁧<prosody pitch="600Hz">some text</prosody>⁩.
  • قيمة نسبية، يتم التعبير عنها كعدد يسبقها "+" أو "-" متبوعة ب "Hz" أو "st" تحدد مبلغا لتغيير درجة الصوت. على سبيل المثال: ⁧<prosody pitch="+80Hz">some text</prosody>⁩ أو ⁧<prosody pitch="-2st">some text</prosody>⁩. يشير "st" إلى أن وحدة التغيير هي شبه نغمة، وهي نصف نغمة (نصف خطوة) على مقياس diatonic القياسي.
  • قيمة ثابتة:
    • x-low
    • منخفضه
    • المتوسطه
    • عاليه
    • x-high
    • افتراضي
‏‏اختياري
contour يدعم Contour الآن الصوت العصبي. يمثل Contour التغييرات في درجة الصوت. يتم تمثيل هذه التغييرات كصفيف من الأهداف في مواضع زمنية محددة في إخراج الكلام. يتم تعريف كل هدف بواسطة مجموعات من أزواج المعلمات. على سبيل المثال:

<prosody contour="(0%,+20Hz) (10%,-2st) (40%,+10Hz)">

تحدد القيمة الأولى في كل مجموعة من المعلمات موقع تغيير العرض التقديمي كنسبة مئوية من مدة النص. تحدد القيمة الثانية المبلغ المطلوب رفعه أو خفضه باستخدام قيمة نسبية أو قيمة تعداد لقيمة العرض الترويجي (راجع pitch).
‏‏اختياري
range قيمة تمثل نطاق العرض التقديمي للنص. يمكنك التعبير range باستخدام نفس القيم المطلقة أو القيم النسبية أو قيم التعداد المستخدمة لوصف pitch. ‏‏اختياري
rate يشير إلى معدل التحدث للنص. يمكنك التعبير عن rate ك:
  • قيمة نسبية، يتم التعبير عنها كرقم يعمل كمضاعف للقيمة الافتراضية. على سبيل المثال، لا تؤدي القيمة 1 إلى أي تغيير في المعدل. تؤدي القيمة 0.5 إلى خفض المعدل إلى النصف. ينتج عن القيمة 3 تعثرا في المعدل.
  • قيمة ثابتة:
    • x-slow
    • بطيئه
    • المتوسطه
    • سريع
    • x-fast
    • افتراضي
‏‏اختياري
volume يشير إلى مستوى مستوى الصوت المتحدث. يمكنك التعبير عن وحدة التخزين كما يلي:
  • قيمة مطلقة، يتم التعبير عنها كرقم في نطاق من 0.0 إلى 100.0، من الهدوء إلى الأعلى. مثال على ذلك هو 75. الافتراضي هو 100.0.
  • قيمة نسبية، يتم التعبير عنها كعدد يسبقه "+" أو "-" تحدد مبلغا لتغيير وحدة التخزين. الأمثلة هي +10 أو -5.5.
  • قيمة ثابتة:
    • صامت
    • x-soft
    • لينه
    • المتوسطه
    • عال
    • س بصوت عال
    • افتراضي
‏‏اختياري

تغيير معدل التحدث

يمكن تطبيق معدل التحدث على مستوى الكلمة أو الجملة.

مثال

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <prosody rate="+30.00%">
            Welcome to Microsoft Cognitive Services Text-to-Speech API.
        </prosody>
    </voice>
</speak>

تغيير مستوى الصوت

يمكن تطبيق تغييرات مستوى الصوت على مستوى الجملة.

مثال

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <prosody volume="+20.00%">
            Welcome to Microsoft Cognitive Services Text-to-Speech API.
        </prosody>
    </voice>
</speak>

تغيير درجة الصوت

يمكن تطبيق تغييرات العرض التقديمي على مستوى الجملة.

مثال

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        Welcome to <prosody pitch="high">Microsoft Cognitive Services Text-to-Speech API.</prosody>
    </voice>
</speak>

تغيير إحاطة العرض التقديمي

هام

يتم الآن دعم تغييرات محيط العرض التقديمي مع الأصوات العصبية.

مثال

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <prosody contour="(60%,-60%) (100%,+80%)" >
            Were you the only person in the room?
        </prosody>
    </voice>
</speak>

عنصر «say-as»

عنصر say-as اختياري. يشير إلى نوع المحتوى، مثل الرقم أو التاريخ، لنص العنصر. يوفر هذا العنصر إرشادات لمحرك تركيب الكلام حول كيفية نطق النص.

بناء الجملة

<say-as interpret-as="string" format="digit string" detail="string"> </say-as>

السمات

السمة الوصف مطلوب أو اختياري
interpret-as يشير إلى نوع محتوى نص العنصر. للحصول على قائمة بالأنواع، راجع الجدول التالي. مطلوب
format يوفر معلومات إضافية حول التنسيق الدقيق لنص العنصر بالنسبة إلى أنواع المحتويات التي قد تحتوي على تنسيقات غامضة. يعرف SSML تنسيقات أنواع المحتويات التي تستخدمها. راجع الجدول التالي. ‏‏اختياري
detail يشير إلى مستوى التفاصيل التي سيتم التحدث بها. على سبيل المثال، قد تطلب هذه السمة أن ينطق مشغل تركيب الكلام علامات الترقيم. لا توجد قيم قياسية محددة ل detail. ‏‏اختياري

أنواع المحتوى التالية مدعومة interpret-as للسمات و format . قم بتضمين السمة format فقط إذا interpret-as تم تعيينها إلى التاريخ والوقت.

تفسير ك التنسيق الترجمة
address يتم التحدث بالنص كعنوان. ينطق محرك تركيب الكلام:

I'm at <say-as interpret-as="address">150th CT NE, Redmond, WA</say-as>

كما "أنا في المحكمة 150 شمال شرق ريدموند واشنطن. "
cardinal, number يتم التحدث بالنص كرقم أساسي. ينطق محرك تركيب الكلام:

There are <say-as interpret-as="cardinal">3</say-as> alternatives

كما "هناك ثلاثة بدائل."
characters, spell-out يتم التحدث بالنص كأحرف فردية (مكتوبة). ينطق محرك تركيب الكلام:

<say-as interpret-as="characters">test</say-as>

ك "T E S T."
date dmy, mdy, ymd, ydm, ym, my, md, dm, d, m, y يتم التحدث بالنص كتاريخ. format تحدد السمة تنسيق التاريخ (d=day وm=month وy=year). ينطق محرك تركيب الكلام:

Today is <say-as interpret-as="date" format="mdy">10-19-2016</say-as>

كما "اليوم هو أكتوبر التاسع عشر ألفين ستة عشر."
digits, number_digit يتم التحدث بالنص كتسلسل من الأرقام الفردية. ينطق محرك تركيب الكلام:

<say-as interpret-as="number_digit">123456789</say-as>

كما "1 2 3 4 5 6 7 8 9."
fraction يتم التحدث بالنص كرقم كسري. ينطق محرك تركيب الكلام:

<say-as interpret-as="fraction">3/8</say-as> of an inch

ك "ثلاثة أثمان من البوصة"
ordinal يتم التحدث بالنص كرقم ترتيبي. ينطق محرك تركيب الكلام:

Select the <say-as interpret-as="ordinal">3rd</say-as> option

ك "حدد الخيار الثالث."
telephone يتم نطق النص كرقم هاتف. format يمكن أن تحتوي السمة على أرقام تمثل رمز بلد. ومن الأمثلة على ذلك "1" للولايات المتحدة أو "39" لإيطاليا. يمكن لمحرك تركيب الكلام استخدام هذه المعلومات لتوجيه نطقه لرقم هاتف. قد يتضمن رقم الهاتف أيضا رمز البلد، وإذا كان الأمر كذلك، فإن له الأسبقية على رمز البلد في السمة format . ينطق محرك تركيب الكلام:

The number is <say-as interpret-as="telephone" format="1">(888) 555-1212</say-as>

كما "رقمي هو رمز المنطقة ثمانية ثمانية ثمانية خمسة خمسة خمسة واحد اثنين واحد اثنين."
time hms12, hms24 يتم التحدث بالنص كوقت. format تحدد السمة ما إذا كان يتم تحديد الوقت باستخدام ساعة 12 ساعة (hms12) أو ساعة 24 ساعة (hms24). استخدم علامة النقطتين لفصل الأرقام التي تمثل الساعات والدقائق والثوان. فيما يلي بعض أمثلة الوقت الصالحة: 12:35 و1:14:32 و08:15 و02:50:45. ينطق محرك تركيب الكلام:

The train departs at <say-as interpret-as="time" format="hms12">4:00am</say-as>

"عندما يغادر القطار الساعة الرابعة صباحا"
name يتم نطق النص كاسم شخص. ينطق محرك تركيب الكلام:

<say-as interpret-as="name">ED</say-as>

ك [واد].
في الأسماء الصينية، تنطق بعض الأحرف بشكل مختلف عند ظهورها في اسم عائلة. على سبيل المثال، يقول محرك تركيب الكلام 仇 في

<say-as interpret-as="name">仇先生</say-as>

ك [qiú] بدلا من [chóu].

الاستخدام

say-as يمكن أن يحتوي العنصر على نص فقط.

مثال

يتحدث محرك تركيب الكلام المثال التالي على أنه "طلبك الأول كان لغرفة واحدة في العاشر والعشرين من أكتوبر مع وصول مبكر في الثانية عشرة وخمسة وثلاثين م".

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <p>
        Your <say-as interpret-as="ordinal"> 1st </say-as> request was for <say-as interpret-as="cardinal"> 1 </say-as> room
        on <say-as interpret-as="date" format="mdy"> 10/19/2010 </say-as>, with early arrival at <say-as interpret-as="time" format="hms12"> 12:35pm </say-as>.
        </p>
    </voice>
</speak>

إضافة صوت مسجل

عنصر audio اختياري. يمكنك استخدامه لإدراج صوت مسجل مسبقا في مستند SSML. يمكن أن يحتوي نص عنصر الصوت على نص عادي أو علامات SSML التي يتم التحدث بها إذا كان الملف الصوتي غير متوفر أو غير قابل للتشعب. audio يمكن أن يحتوي العنصر أيضا على نص والعناصر التالية: audioو breakو pوsphonemeprosodysay-as.sub

يجب أن يفي أي صوت مضمن في مستند SSML بهذه المتطلبات:

  • يجب استضافة الصوت على نقطة نهاية HTTPS يمكن الوصول إليها عبر الإنترنت. HTTPS مطلوب، ويجب أن يقدم المجال الذي يستضيف الملف شهادة TLS/SSL صالحة وموثوقة. نوصي بوضع ملف الصوت في Blob Storage في نفس منطقة Azure مثل نقطة نهاية تحويل النص إلى كلام لتقليل زمن الانتقال.
  • يجب أن يكون الملف الصوتي صحيحا *.mp3 أو *.wav أو *.opus أو *.ogg أو *.flac أو *.wma.
  • لا يمكن أن يتجاوز إجمالي الوقت المدمج لجميع الملفات النصية والصوتية في استجابة واحدة 600 ثانية.
  • يجب ألا يحتوي الصوت على أي معلومات حساسة خاصة بالعميل أو معلومات حساسة أخرى.

بناء الجملة

<audio src="string"/></audio>

السمة

السمة الوصف مطلوب أو اختياري
src تحديد موقع/عنوان URL لملف الصوت. مطلوب إذا كنت تستخدم عنصر الصوت في مستند SSML.

مثال

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-JennyNeural">
        <p>
            <audio src="https://contoso.com/opinionprompt.wav"/>
            Thanks for offering your opinion. Please begin speaking after the beep.
            <audio src="https://contoso.com/beep.wav">
                Could not play the beep, please voice your opinion now.
            </audio>
        </p>
    </voice>
</speak>

إضافة صوت الخلفية

يمكنك استخدام mstts:backgroundaudio العنصر لإضافة صوت الخلفية إلى مستندات SSML أو مزج ملف صوتي مع تحويل النص إلى كلام. باستخدام mstts:backgroundaudio، يمكنك تكرار ملف صوتي في الخلفية، والتلاشي في بداية تحويل النص إلى كلام، وتلاشى في نهاية تحويل النص إلى كلام.

إذا كان الصوت في الخلفية المقدم أقصر من تحويل النص إلى كلام أو تلاشي، فإنه يتكرر. إذا كان أطول من تحويل النص إلى كلام، فإنه يتوقف عند انتهاء التلاشي.

يسمح بملف صوت خلفية واحد فقط لكل مستند SSML. يمكنك تداخل audio العلامات داخل voice العنصر لإضافة المزيد من الصوت إلى مستند SSML.

بناء الجملة

<mstts:backgroundaudio src="string" volume="string" fadein="string" fadeout="string"/>

السمات

السمة الوصف مطلوب أو اختياري
src تحديد موقع/عنوان URL لملف الصوت في الخلفية. مطلوب إذا كنت تستخدم صوت الخلفية في مستند SSML
volume تحديد مستوى صوت ملف الصوت في الخلفية. القيم المقبولة: 0 إلى شاملة 100 . القيمة الافتراضية هي 1. ‏‏اختياري
fadein تحديد مدة تلاشي الصوت في الخلفية بالمللي ثانية. القيمة الافتراضية هي 0، وهو ما يعادل عدم التلاشي. القيم المقبولة: 0 إلى شاملة 10000 . ‏‏اختياري
fadeout تحديد مدة تلاشي الصوت في الخلفية بالمللي ثانية. القيمة الافتراضية هي 0، وهو ما يعادل عدم التلاشي. القيم المقبولة: 0 إلى شاملة 10000 . ‏‏اختياري

مثال

<speak version="1.0" xml:lang="en-US" xmlns:mstts="http://www.w3.org/2001/mstts">
    <mstts:backgroundaudio src="https://contoso.com/sample.wav" volume="0.7" fadein="3000" fadeout="4000"/>
    <voice name="Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)">
        The text provided in this document will be spoken over the background audio.
    </voice>
</speak>

عنصر الإشارة المرجعية

يمكنك استخدام bookmark العنصر لإدراج علامات مخصصة في SSML للحصول على إزاحة كل علامة في دفق الصوت. لن نقرأ bookmark العناصر. bookmark يمكن استخدام العنصر للإشارة إلى موقع معين في تسلسل النص أو العلامة. تتوفر الإشارة المرجعية لجميع اللغات والأصوات.

بناء الجملة

<bookmark mark="string"/>

السمة

السمة الوصف مطلوب أو اختياري
mark تحديد النص المرجعي للعنصر bookmark . مطلوب

مثال

على سبيل المثال، قد تحتاج إلى معرفة إزاحة الوقت لكل كلمة زهرة في القصاصة البرمجية التالية:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
    <voice name="en-US-AriaNeural">
        We are selling <bookmark mark='flower_1'/>roses and <bookmark mark='flower_2'/>daisies.
    </voice>
</speak>

الحصول على إشارة مرجعية باستخدام Speech SDK

يمكنك الاشتراك في BookmarkReached الحدث في Speech SDK للحصول على إزاحات الإشارة المرجعية.

ملاحظة

BookmarkReached يتوفر الحدث فقط منذ إصدار Speech SDK 1.16.

BookmarkReached يتم رفع الأحداث مع توفر بيانات صوت الإخراج، والتي ستكون أسرع من التشغيل إلى جهاز إخراج.

  • AudioOffset يبلغ عن الوقت المنقضي لصوت الإخراج بين بداية التركيب والعنصر bookmark . يتم قياس الوقت بوحدات مئة نانو ثانية (HNS) مع 10000 HNS ما يعادل 1 مللي ثانية.
  • Text هو النص المرجعي للعنصر bookmark ، وهو السلسلة التي قمت بتعيينها في السمة mark .

لمزيد من المعلومات، راجع BookmarkReached.

synthesizer.BookmarkReached += (s, e) =>
{
    // The unit of e.AudioOffset is tick (1 tick = 100 nanoseconds), divide by 10,000 to convert to milliseconds.
    Console.WriteLine($"Bookmark reached. Audio offset: " +
        $"{e.AudioOffset / 10000}ms, bookmark text: {e.Text}.");
};

بالنسبة للمثال السابق SSML، BookmarkReached سيتم تشغيل الحدث مرتين، وسيكون إخراج وحدة التحكم:

Bookmark reached. Audio offset: 825ms, bookmark text: flower_1.
Bookmark reached. Audio offset: 1462.5ms, bookmark text: flower_2.

عناصر MathML المدعومة

لغة العلامات الرياضية (MathML) هي لغة ترميز متوافقة مع XML تتيح للمطورين تحديد كيفية تحويل نص الإدخال إلى كلام مركب باستخدام تحويل النص إلى كلام.

ملاحظة

عناصر MathML (العلامات) مدعومة حاليا من قبل جميع الأصوات العصبية في en-US و en-AU المحلية.

مثال

يوضح مقتطف SSML هذا كيفية استخدام عناصر MathML لإخراج الكلام المركب. إخراج تحويل النص إلى كلام لهذا المثال هو "مربع بالإضافة إلى مربع b يساوي c تربيع".

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xml:lang="en-US"><voice name="en-US-JennyNeural"><math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup><mo>=</mo><msup><mi>c</mi><mn>2</mn></msup></math></voice></speak>

السمة xmlns في <math xmlns="http://www.w3.org/1998/Math/MathML"> اختيارية.

يتم دعم جميع العناصر من مواصفات MathML 2.0 و MathML 3.0 ، باستثناء عناصر الرياضيات الأولية MathML 3.0. semanticsannotationلا تقوم العناصر و و إخراج annotation-xml الكلام، لذلك يتم تجاهلها.

ملاحظة

إذا لم يتم التعرف على عنصر، فسيتم تجاهله، وسيتم معالجة العناصر التابعة فيه.

كيانات MathML غير معتمدة بواسطة بناء جملة XML، لذلك يجب استخدام أحرف unicode المقابلة لتمثيل الكيانات، على سبيل المثال، يجب تمثيل الكيان &copy; بأحرف &#x00A9;unicode الخاصة به، وإلا سيحدث خطأ.

الخطوات التالية

دعم اللغة: الأصوات واللغات واللغات