← جميع المقالات

SSML للتعليق الصوتي بالذكاء الاصطناعي: كيف تتحكم في الوقفات والنبرة والتشديد

موجة صوتية زجاجية متوهجة وكُرات شفافة على خلفية فاتحة

SSML لغة ترميز تخبر محرّك تحويل النص إلى كلام ليس فقط بماذا يقرأ، بل وكيف: أين يتوقف، وبأي سرعة ينطق الجملة، وأي كلمة يبرز، وكيف يقرأ الرقم. النص العادي لا يمنح هذه الدقة: الفاصلة قد تصبح وقفة وقد لا تصبح. وفي ما يلي مراجعة عملية: أي الوسوم تعمل في المحرّكات الحقيقية، وكيف نتعامل مع النطق والتشكيل، وما يجب اختباره على مقطع قصير قبل تعليق طويل، وأين يقع الخطأ الأكثر شيوعاً.

لماذا الترميز إذا كانت هناك نقاط وفواصل

علامات الترقيم تمنح تحكماً خشناً: معظم المحرّكات تقف عند النقطة ولا تكاد تتفاعل مع الشرطة. هذا يكفي لجملة قصيرة. أما لتعليق على فيديو أو كتاب صوتي أو ردّ آلي — فلا: المهم هناك أن تكون الوقفة 300 مللي ثانية بالضبط، لا «كما اتفق»، وأن يُقرأ السعر قراءة صحيحة لا على شكل أرقام متتابعة. يضيف SSML ثلاثة أشياء لا يوفّرها النص العادي: وقفات دقيقة، ومعاملات للصوت (السرعة والعلو والجهارة)، وتلميحات لكيفية نطق الأرقام والتواريخ والاختصارات.

وتحفّظ يوفّر الوقت: الترميز لا يجعل النص أفضل. إذا كانت الجملة سيئة الصياغة، فسيقرأها SSML بسهولة — لكنه سيقرأ جملة سيئة.

أين يعمل SSML وأين لا يعمل

SSML معيار من W3C، لكن الدعم يختلف بين المحرّكات. محرّك يفهم المجموعة كاملة، وآخر يتجاهل كل شيء إلا الوقفات، وثالث يقرأ الوسوم بصوت عالٍ لأنه ينتظر نصاً عادياً. لذلك الخطوة الأولى ليست كتابة نص طويل بالترميز، بل اختبار المحرّك على جملة قصيرة. مراجعة SSML للذكاء الاصطناعي الصوتي على dev.to (25 أكتوبر 2026) تصف المجموعة الأساسية من الوسوم؛ والمواصفة الكاملة — SSML 1.1 على موقع W3C.

من المفيد أن نتذكّر أن الأعطال جزء طبيعي من أي توليد. وفق تجميعات مجهولة الهوية من قاعدة الإنتاج (server/seo/benchmarkData.json، الفترة 25.09–25.10.2026) نفّذت المنصة خلال 30 يوماً 14,784 توليدة: 12,323 صورة و2,001 فيديو و460 مقطعاً موسيقياً. وحتى النماذج الناضجة فيها أعطال: خلال 90 يوماً بلغت نسبة النجاح 93.3% لدى gpt-image-2 (2,991 توليدة مكتملة) و91.2% لدى seedream-4.5 (1,395). والتعليق الصوتي بالمنطق نفسه: مقطع قصير أولاً، ثم نص طويل.

الهيكل: <speak> و<p> و<s>

تطلب المحرّكات الصارمة أن يُغلَّف النص كله بالوسم الجذري <speak>. ومن المفيد داخله تقسيم الفقرات والجمل — فهذا يسهّل ضبط الوقفات والسرعة في المكان المناسب.

<speak>
  <p><s>الجملة الأولى.</s><s>الجملة الثانية.</s></p>
</speak>

وتُهرَّب الرموز الخاصة داخل النص: &amp; بدل & و&lt; بدل <. وإلا رفض بعض المحرّكات الطلب، وقرأ بعضها كلمة «أمبيرساند» بصوت عالٍ.

الوقفات: <break>

يضبط الوسم <break> الوقفة بطريقتين: زمن محدد (time="300ms" أو time="1.2s") أو قوة (strength="weak|medium|strong|x-strong"). الطريقة الثانية أنسب حين لا تهمّ المللي ثانية الدقيقة، بل تهمّ الهرمية الطبيعية: وقفة قصيرة بين الكلمات، ومتوسطة بين الجمل، وطويلة بين الأقسام.

الفقرة الأولى.<break time="400ms"/>
الفقرة الثانية.<break strength="strong"/>
فكرة جديدة.

مراجع للتعليق العربي: 250–400 مللي ثانية بين الجمل و600–800 بين الكتل الدلالية. هذه ليست قاعدة، بل نقطة بداية — والأذن تطلب عادةً تقصير الوقفات لا إطالتها. ولا تضع <break> بعد كل كلمة: يصبح الكلام متقطعاً.

السرعة والعلو والجهارة: <prosody>

يتحكم <prosody> في ثلاثة معاملات. rate — السرعة: بكلمات (x-slow، slow، medium، fast) أو بنسب مئوية (rate="90%"). pitch — العلو: low وhigh أو نسب أو أنصاف نغمات (pitch="+1st"). volume — الجهارة: soft، loud أو رقم من 0 إلى 100.

<prosody rate="95%" pitch="+1st">
تبدو هذه الجملة أبطأ قليلاً وأعلى قليلاً.
</prosody>

للتعليق الطويل أبقِ السرعة عند 90–100%: والأسرع للإعلانات والتنبيهات القصيرة فقط. وغيّر العلو بنصف نغمة إلى نغمة، لا «إلى أقصى حد»: +20st يجعل الصوت كرتونياً ويخرج غالباً عن نطاق المحرّك. أما الجهارة فالأفضل تركها للمحرّك وتطبيع الصوت لاحقاً في المحرّر.

التشديد: <emphasis>

يبرز <emphasis level="strong|moderate|reduced"> كلمة أو عبارة. تأثيره أهدأ مما يبدو: ليس صراخاً بل إزاحة خفيفة في النبرة. والقاعدة بسيطة — تشديد أو اثنان في الفقرة. وإذا شُدّد نصف النص، فلم يُشدّد شيء.

مهم: الخصم ساري <emphasis level="strong">اليوم فقط</emphasis>.
ثلاث كُرات زجاجية شفافة تربطها خطوط ضوء رقيقة

الأرقام والتواريخ والاختصارات: <say-as> و<sub>

أكثر جزء عملي في SSML — تلميحات للمواضع الملتبسة. يخبر <say-as interpret-as="..."> المحرّك كيف يقرأ المحتوى: كرقم أو تاريخ أو وقت أو هاتف أو حرفاً حرفاً. أما <sub alias="..."> فيستبدل المكتوب بما يُنطق.

السعر — <say-as interpret-as="cardinal">12500</say-as> ريال.
الموعد <say-as interpret-as="date">01.11.2026</say-as>.
<sub alias="شركة ذات مسؤولية محدودة">ذ.م.م</sub> «مثال».

مجموعة قيم interpret-as تختلف بين المحرّكات: بعضها يدعم «currency» و«telephone»، وبعضها «cardinal» و«characters» فقط. وإذا لم يُدعم الوسم، يُقرأ النص عادةً كما هو — لكن يجب التحقق من ذلك على مثال قصير.

النطق والتشكيل

في SSML لهذا وسم <phoneme alphabet="ipa" ph="..."> وبديله x-sampa. المشكلة أن التسجيل الفونيمي لا تدعمه إلا قلة من المحرّكات، وفي العربية خصوصاً نادر. عملياً تساعد ثلاثة حلول: استخدام صيغة المحرّك الخاصة (وهي ليست جزءاً من SSML وقد لا تعمل)، أو استبدال الكلمة بمرادف، أو إعادة صياغة الجملة كي يزول الالتباس. ولا تكتب الحرف المشدّد بحروف كبيرة: بعض المحرّكات ستقرأ الكلمة حرفاً حرفاً.

وإذا كان المحرّك يدعم <sub>، يمكن تثبيت النطق من خلاله — باستبدال الكلمة بصيغة أو سياق يُقرأ بوضوح. هذا أخشن، لكنه يعمل حيث يصمت <phoneme>.

وسوم لا يُعتمد عليها

<voice> (تغيير الصوت داخل النص) و<audio> (إدراج ملف) و<mark> (علامة مرجعية للمشغّل) مذكورة في المعيار، لكنها نادراً ما تُدعم في المحرّكات السحابية: تغيير الصوت ممنوع عادةً، والملفات الصوتية الخارجية قد تُحجب، والعلامات يحتاجها مشغّل خاص فقط. راجع توثيق المحرّك قبل بناء سيناريو عليها.

ترتيب الاختبار: من الجملة القصيرة إلى النص الطويل

الخوارزمية العملية تستغرق عشر دقائق وتوفّر ساعات:

  1. اجمع جملة واحدة بكل الوسوم التي تنوي استخدامها.
  2. علّقها صوتياً واستمع: هل قُرئت الوسوم بصوت عالٍ، أم تُجوهلت، أم عملت؟
  3. قارن نسختين — بالترميز وبدونه: هل تغيّرت الوقفات والسرعة فعلاً؟
  4. وبعد ذلك فقط أرسل النص كاملاً، مقسّماً إلى فقرات، مع حفظ الترميز العامل كقالب.

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

أخطاء شائعة

  • غياب الوسم الجذري <speak> — محرّك صارم يرفض الطلب.
  • رموز & و< غير مهربة — الطلب ينكسر أو يُقرأ حرفاً حرفاً.
  • كثرة <break> — كلام متقطع بشكل غير طبيعي.
  • العلو بالهرتز بدل الأنصاف أو النسب — خطأ في النطاق.
  • <prosody> متداخل بمعاملات متناقضة — النتيجة تعتمد على المحرّك.
  • إرسال الترميز إلى محرّك لا يدعمه — الوسوم تُسمع بصوت عالٍ.

قائمة تحقق قصيرة

  • تحقق من دعم الوسوم في توثيق المحرّك.
  • ابدأ بجملة واحدة وكل الوسوم المطلوبة.
  • أبقِ الوقفات 250–400 مللي ثانية بين الجمل.
  • السرعة 90–100%، والعلو ±1–2 نصف نغمة.
  • تشديد أو اثنان في الفقرة.
  • الأرقام والتواريخ والاختصارات — عبر <say-as> و<sub>.
  • اقسم النص الطويل إلى أجزاء.

أسئلة شائعة

هل SSML والتعليق الصوتي بالذكاء الاصطناعي شيء واحد؟

لا. SSML لغة ترميز، والتعليق بالذكاء الاصطناعي محرّك يحوّل النص إلى كلام. وقد يدعم المحرّك SSML كاملاً أو جزئياً أو لا يدعمه إطلاقاً.

لماذا قرأ المحرّك الوسوم بصوت عالٍ؟

لأنه ينتظر نصاً عادياً ولم يتعرّف على الترميز. أزل الوسوم أو فعّل وضع SSML إن وُجد في الإعدادات.

هل يمكن ضبط التشديد في الكلمة؟

لا يوجد وسم عالمي لذلك. إذا كان المحرّك يدعم <phoneme> فاستخدمه؛ وإلا فصيغة المحرّك الخاصة أو مرادف أو إعادة صياغة الجملة.

كم نصاً يمكن تعليقه في المرة الواحدة؟

الحدود تختلف بين الخدمات. في التعليق الصوتي على NeuralSpace — حتى 5000 حرف للطلب الواحد؛ والنصوص الطويلة تُقسَّم إلى أجزاء.

يمكن تجربة الترميز عملياً في قسمي التعليق الصوتي المجاني والتعليق الصوتي مع النبرة. وإذا لم يفهم المحرّك SSML فسيقرأ النص كما هو — حينها تُضبط الوقفات بعلامات الترقيم وتقسيم الفقرات، ويُصحَّح الإيقاع والعلو في المحرّر.