Speech Synthesis2018متوسط11 دقيقة قراءة

توليد الكلام الطبيعي بتهيئة WaveNet على تنبؤات طيف ميل

Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions

Shen, J. · Pang, R. · Weiss, R. J. · Schuster, M. · Jaitly, N. · Yang, Z. · Chen, Z. · Zhang, Y. · Wang, Y. · Skerry-Ryan, RJ · Saurous, R. A. · Agiomyrgiannakis, Y. · Wu, Y. — ICASSP

المشكلة

أنظمة التقليدية كانت مبنية على سلسلة هشّة من المكونات المنفصلة: محلّل نصّي، ونموذج للمُدد الزمنية، ومتنبئ بالتردد الأساسي (F0)، ومُركِّب صوتي. كل مكوّن كان يُصمَّم يدوياً بقواعد لغوية وحيل معالجة إشارات، فتتسلسل الأخطاء من مرحلة إلى أخرى ويخرج الكلام بنبرة آلية جامدة. WaveNet أثبتت أن مُركِّباً صوتياً عصبياً يستطيع إنتاج صوت طبيعي، لكنها ظلّت تعتمد على سمات لغوية مصنوعة يدوياً. Tacotron 1 أظهر إمكانية التنبؤ بالأطياف من النص مباشرةً عبر نموذج ، لكنه لجأ إلى خوارزمية Griffin-Lim لتوليد الموجة الصوتية فظهرت تشوهات مسموعة بوضوح. لم يكن هناك نظام واحد يدمج التنبؤ العصبي بالأطياف مع مُركِّب صوتي عصبي في خط معالجة عصبي متكامل يصل إلى طبيعية الكلام البشري.

الإسهام

يجمع Tacotron 2 بين شبكة تسلسل إلى تسلسل تكرارية مزوَّدة بانتباه حسّاس للموقع — تتنبأ بأطياف ميل من 80 قناة انطلاقاً من الحروف مباشرةً — وبين نسخة مُعدَّلة من WaveNet تحوّل تلك الأطياف إلى موجات صوتية. طيف ميل هنا يؤدي دور تمثيل صوتي وسيط مضغوط يفصل بين الشبكتين: الأولى تحدّد «ماذا يُقال» والثانية تحدّد «كيف يُنطَق» على مستوى العيّنة الصوتية. هذا التصميم حقّق متوسط درجة رأي (MOS) قدره 4.53، وهي درجة تكاد تُطابق التسجيلات الاحترافية (4.58)، وبسّط بنية WaveNet كثيراً لأن طيف ميل يحمل مسبقاً البنية الصوتية بعيدة المدى.

الأثر

أثبت Tacotron 2 أن خط معالجة عصبياً بالكامل لتحويل النص إلى كلام يستطيع مجاراة جودة الكلام البشري، فأصبح المرجع الذي تُقاس عليه كل أنظمة تحويل النص إلى كلام اللاحقة. فكرة استخدام طيف ميل كواجهة بين المكونَين صارت هي المعيار السائد: FastSpeech وVITS وأنظمة الانتشار الحديثة كلها تتنبأ بأطياف ميل أولاً. ألهم هذا العمل نموذج الفصل بين النمذجة الصوتية عالية المستوى وتوليد الموجة، وهو نموذج لا يزال محورياً في تركيب الكلام حتى اليوم. Whisper وصوت مساعد Google وعملياً كل نظام تحويل نص إلى كلام حديث يعود في أصوله إلى هذه البنية.

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

Tacotron 2 يعمل بالمنطق نفسه. الشبكة الأولى (متنبئ الطيف) تقرأ النص وترسم مخططاً صوتياً تفصيلياً هو . الشبكة الثانية ( WaveNet) تأخذ هذا المخطط وتصوغ منه الموجة الصوتية الغنية التي تسمعها فعلاً. المخطط الصوتي هو بمنزلة العقد بين «ماذا يُقال» و«كيف يُنطَق».

المشكلة: أنابيب معالجة هشّة وكلام آلي الطابع

قبل Tacotron 2، كان بناء نظام تحويل نص إلى كلام يعني تجميع سلسلة طويلة من الوحدات، كل واحدة تُصمَّم يدوياً وتحتاج خبرة متخصصة:

  • محلّل نصّي يحوّل النص الخام إلى سمات لغوية (وحدات صوتية، أنماط نبر، وسوم نحوية).
  • نموذج مُدَد يتنبأ بالمدة الزمنية لكل وحدة صوتية.
  • متنبئ بالتردد الأساسي (F0) يرسم منحنى طبقة الصوت.
  • مُركِّب صوتي يولّد الموجة الصوتية من هذه السمات مجتمعةً.

المشكلة أن كل وحدة تُبنى بقواعد مخصّصة وحيل في معالجة الإشارات، فأي خطأ في أي مرحلة — صوت خاطئ أو مدة غير طبيعية — ينتقل مباشرةً إلى المراحل التالية، والنتيجة كلام يبدو متصلّباً ومصطنعاً. ظهرت محاولتان واعدتان لكن كلتيهما بقيت ناقصة:

WaveNet عام 2016 أثبتت أن مُركِّباً صوتياً عصبياً يستطيع إنتاج صوت طبيعي بشكل مذهل، لكنها ظلّت تعتمد على سمات لغوية مصنوعة يدوياً كمدخلات — يعني أن خط المعالجة الهشّ بقي كما هو، فقط المرحلة الأخيرة تحسّنت.

Tacotron 1 عام 2017 أظهر أن نموذج تسلسل إلى تسلسل يستطيع التنبؤ بالأطياف مباشرةً من الحروف، لكنه اعتمد على خوارزمية Griffin-Lim لتحويل الأطياف إلى صوت، فظهرت تشوهات طورية جعلت الكلام يبدو أجوف وغير مكتمل.

افتح في المختبر
قارن بين خط المعالجة التقليدي لتحويل النص إلى كلام (أعلى) ومنهج Tacotron 2 العصبي بالكامل (أسفل). لاحظ كم عدد المراحل اليدوية التي اختفت.
تستيقظ التجربة عند وصولك…

الجسر: أطياف ميل بوصفها مخططات صوتية

الفكرة المحورية هنا هي اختيار التمثيل الوسيط المناسب — أي الواجهة التي تربط بين شبكة فهم النص وشبكة توليد الصوت. Tacotron 2 اختار أطياف ميل من 80 قناة، تُحسَب من نوافذ زمنية طولها 50 ميلي ثانية بخطوة مقدارها 12.5 ميلي ثانية.

ما هو طيف ميل بالضبط؟ هو صورة زمنية-ترددية للصوت، لكنها مُعدَّلة لتُحاكي طريقة الأذن البشرية في إدراك الأصوات. الترددات المنخفضة تحصل على دقة أعلى لأن آذاننا أكثر حساسية لها، بينما تُضغط الترددات العالية. تخيّله كـخريطة حرارية للصوت: المحور الأفقي يمثّل الزمن، والرأسي يمثّل التردد على مقياس ميل، وشدة اللون تعبّر عن مقدار الطاقة الصوتية.

لماذا أطياف ميل تحديداً بدلاً من السمات اللغوية التقليدية؟ لثلاثة أسباب عملية:

  • مضغوطة. 80 قناة بخطوة 12.5 ميلي ثانية مقابل أكثر من 16,000 عيّنة صوتية خام في الثانية — أي ضغط بمعامل 200 مرة مع الحفاظ على طبقة الصوت والجرس والإيقاع.
  • قابلة للتعلّم. لا نحتاج قواميس صوتية أو قواعد نبر مصنوعة يدوياً.
  • تُبسِّط المُركِّب الصوتي. بما أن الطيف يحمل مسبقاً البنية الصوتية بعيدة المدى، لم تعد WaveNet بحاجة إلى ضخم كي «تكتشف» أي كلمة تُنطَق حالياً — بل تركّز فقط على التفاصيل الصوتية الدقيقة.
افتح في المختبر
استكشف كيف يمثّل طيف ميل الصوت. بدّل بين المقياس الترددي الخطي ومقياس ميل لترى كيف يضغط مقياس ميل الترددات العالية.
تستيقظ التجربة عند وصولك…

الشبكة الأولى: من الحروف إلى الأطياف

شبكة التنبؤ بالطيف هي نموذج تسلسل إلى تسلسل يتكوّن من ثلاثة أجزاء رئيسية: ، وآلية حسّاس للموقع، و** **.

يبدأ المُرمِّز بأخذ سلسلة الحروف و كل حرف في متجه من 512 بُعداً، ثم يمرّرها عبر 3 (512 مرشحاً بحجم نواة 5) مع ودالة ReLU. هذه الالتفافات تلتقط السياق المحلي لكل حرف — كل مرشح يرى الحرف مع جارَيه من كل جانب. في النهاية تمرّ السلسلة عبر شبكة بـ256 وحدة لكل اتجاه لتنتج التمثيل المرمَّز النهائي. فكّر في المُرمِّز كقارئ يفهم الحروف المنفردة ويفهم أيضاً كيف تتصل ببعضها لتشكّل كلمات وعبارات.

يوسّع آلية المعتادة بإضافة معلومة إضافية: أين كان النموذج ينظر في الخطوة السابقة. الهدف منع المشاكل الشائعة في أنظمة تحويل النص إلى كلام: تكرار كلمة (لأن الانتباه يعلَق في موضع واحد) أو تخطّي كلمة (لأنه يقفز بعيداً جداً). سجلّ الانتباه يشبه إصبعك وأنت تقرأ كتاباً: «وصلتُ إلى هنا — أكمل للأمام ولا تُعِد ما قرأته».

فاكّ الترميز يعمل بأسلوب ذاتي الانحدار: في كل خطوة يتنبأ بإطار واحد من طيف ميل، ثم يُعيد ذلك التنبؤ كمدخل للخطوة التالية. التنبؤ السابق يمرّ أولاً عبر شبكة تمهيدية (طبقتان متصلتان بالكامل من 256 وحدة مع ReLU و) تعمل كعنق زجاجة للمعلومات — تمنع النموذج من حفظ قيم الإطارات السابقة حرفياً وتُجبره على الاعتماد الفعلي على آلية الانتباه ليعرف أين وصل في النص. بعدها يُدمَج خرج الشبكة التمهيدية مع سياق الانتباه ويمرّان عبر طبقتَي LSTM أحاديتَي الاتجاه (1024 وحدة في كل منهما). من خرج LSTM يُحسَب إطار ميل الحالي إلى جانب يُشير إلى نهاية الجملة المنطوقة.

افتح في المختبر
انقر على أي مكوّن في بنية Tacotron 2 لتتعرّف على وظيفته.
تستيقظ التجربة عند وصولك…

الشبكة اللاحقة: صقل الطيف

تنبؤات فاكّ الترميز الأولية بـطيف ميل تكون مقبولة لكنها تفتقر إلى التفاصيل الدقيقة. هنا يأتي دور الشبكة اللاحقة: خمس طبقات التفافية (512 مرشحاً بحجم نواة 5 مع تسوية الدُّفعات ودالة tanh في الطبقات الأربع الأولى) مهمّتها التنبؤ بـبقايا تصحيحية تُضاف إلى التنبؤ الأولي. هذا كلاسيكي: بدلاً من مطالبة الشبكة اللاحقة بإنتاج الطيف كاملاً من الصفر، نطلب منها فقط أن تتعلّم الفرق بين «مقبول» و«ممتاز».

الأمر يشبه عمل الرسّام: فاكّ الترميز يرسم المسودة الأولى، ثم الشبكة اللاحقة تُضيف الظلال والإضاءات واللمسات النهائية. النظام يُدرَّب بحدّين من : واحد على خرج فاكّ الترميز الخام وآخر على الخرج المُحسَّن بعد الشبكة اللاحقة، فتتعلّم كلتا النسختين — المسودة والنسخة المصقولة — أن تكونا دقيقتين.

افتح في المختبر
شاهد كيف تُصقَل تنبؤات فاكّ الترميز الخام بإضافة البقايا التصحيحية من الشبكة اللاحقة.
تستيقظ التجربة عند وصولك…

الشبكة الثانية: WaveNet تحوّل المخطط إلى صوت

المُركِّب الصوتي WaveNet المُعدَّل يأخذ طيف ميل ويولّد عيّنات صوتية بتردد 24 كيلوهرتز — عيّنة تلو الأخرى بأسلوب ذاتي الانحدار. الفكرة الأساسية هي نفسها من WaveNet الأصلي: سببية مكدَّسة تمنح كل عيّنة مجال استقبال واسعاً يغطي العيّنات السابقة.

لكن هناك تبسيط جوهري. WaveNet الأصلي احتاج 30 طبقة موسَّعة ليصل إلى مجال استقبال يكفي لالتقاط البنية الصوتية بعيدة المدى — أي كلمة تُنطَق وما نمط التنغيم. في المقابل، نسخة Tacotron 2 من WaveNet تحتاج طبقات أقل بكثير، والسبب بسيط: طيف ميل يحمل هذه المعلومات مسبقاً. كل ما يحتاجه المُركِّب الصوتي هو سياق محلي كافٍ ليُخرج صوتاً سلساً وطبيعياً على مستوى العيّنة المفردة.

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

p(x)=t=1Tp(xtx1,,xt1,mel)p(\mathbf{x}) = \prod_{t=1}^{T} p(x_t \mid x_1, \ldots, x_{t-1}, \mathbf{mel})
الاحتمال الذاتي الانحدار لـWaveNet — مشروط على طيف ميلكل عيّنة صوتية xₜ تُحسَب بناءً على جميع العيّنات السابقة وعلى طيف ميل معاً. هذا التهيئة على طيف ميل هي ما يسمح لـWaveNet بالعمل بمجال استقبال أصغر.
افتح في المختبر
اسحب المنزلق لترى كيف توسّع الالتفافات الموسَّعة مجال الاستقبال تدريجياً. تهيئة طيف ميل (الموضّحة أسفل) هي التي توفّر السياق بعيد المدى.
تستيقظ التجربة عند وصولك…

تدريب الشبكتين

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

بعد اكتمال تدريب شبكة الطيف، نستخدمها لتوليد أطياف ميل لبيانات التدريب. هذه الأطياف المُتنبَّأ بها — وليس الحقيقية — هي التي تُستخدَم لتدريب المُركِّب الصوتي WaveNet. لماذا لا نستخدم الأطياف الحقيقية؟ لأنه عند سيستقبل WaveNet أطياف مُتنبَّأ بها قد تحتوي عيوباً صغيرة. تدريبه على أطياف من النوع نفسه يجعله أكثر تحمّلاً لهذه العيوب ويسدّ الفجوة بين ظروف التدريب وظروف الاستخدام الفعلي.

دالة الخسارة في شبكة الطيف بسيطة ومباشرة: (MSE) يُحسَب على خرج فاكّ الترميز الخام وعلى الخرج المُحسَّن بالشبكة اللاحقة معاً، بالإضافة إلى على رمز التوقف. لا تدريب تنافسي ولا خسائر إدراكية معقّدة — فقط MSE، ومع ذلك يصل النظام إلى جودة تُقارب المستوى البشري.

الفكرة الجوهرية في شيفرة برمجية

المنطق المبسَّط لمُرمِّز وفاكّ ترميز Tacotron 2python

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import numpy as np

def encoder(chars, W_embed, conv_filters, lstm):
    """ترميز سلسلة حروف إلى تمثيلات مخفية."""
    # الخطوة 1: تضمين الحروف (512 بُعداً)
    embedded = W_embed[chars]                    # (T_text, 512)

    # الخطوة 2: 3 طبقات التفافية تلتقط السياق المحلي (جاران من كل جانب)
    h = embedded
    for conv in conv_filters:
        h = relu(batch_norm(conv1d(h, conv)))    # (T_text, 512)

    # الخطوة 3: LSTM ثنائي الاتجاه يلتقط السياق الشامل
    h_enc = bilstm(h, lstm)                      # (T_text, 512)
    return h_enc

def decoder_step(prev_mel, h_enc, attn_state, lstm_state, prenet, lstm):
    """التنبؤ بإطار ميل واحد بناءً على خرج المُرمِّز والإطار السابق."""
    # الشبكة التمهيدية: عنق زجاجة معلوماتي مع تسريب
    h_pre = dropout(relu(prenet[1] @ dropout(relu(prenet[0] @ prev_mel))))

    # الانتباه الحسّاس للموقع: "أين وصلتُ؟ أكمل للأمام"
    context, attn_state = location_attention(h_enc, lstm_state, attn_state)

    # فاكّ ترميز LSTM: طبقتان، 1024 وحدة لكل منهما
    lstm_input = np.concatenate([h_pre, context])
    lstm_out, lstm_state = lstm_forward(lstm_input, lstm_state, lstm)

    # التنبؤ بإطار ميل + رمز التوقف
    mel_frame = linear_project(np.concatenate([lstm_out, context]))  # 80 قناة
    stop_prob = sigmoid(linear_project_stop(np.concatenate([lstm_out, context])))
    return mel_frame, stop_prob, attn_state, lstm_state

ما كشفته دراسات الاجتزاء

أجرى الباحثون سلسلة منهجية من دراسات الاجتزاء: حذف أو تعديل مكوّن تلو الآخر لقياس أثره الفعلي على الأداء:

  • طيف ميل مقابل السمات اللغوية كمدخل لـWaveNet. أطياف ميل تفوّقت بوضوح — أنتجت كلاماً أكثر طبيعية من دون الحاجة لأي خط معالجة نصّي.
  • حجم مجال الاستقبال في WaveNet. تقليصه بمعامل 25 (من 256 ميلي ثانية إلى نحو 10 ميلي ثانية) لم يؤثّر تقريباً على الجودة. لكن حذف الالتفافات الموسَّعة كلياً (مجال الاستقبال ينزل إلى ~0.5 ميلي ثانية) سبّب تراجعاً واضحاً.
  • أثر الشبكة اللاحقة. الشبكة اللاحقة ذات الطبقات الخمس حسّنت جودة الطيف بشكل مطّرد عبر تعلّمها إضافة تفاصيل طيفية دقيقة لا يلتقطها فاكّ الترميز ذاتي الانحدار وحده.
  • النظام حقّق (MOS) قدره 4.53 — وهي درجة لا تكاد تُميَّز عن التسجيلات الاحترافية التي حصلت على 4.58.
افتح في المختبر
مقارنة متوسط درجة الرأي عبر أنظمة تحويل النص إلى كلام ومتغيرات الاجتزاء المختلفة.
تستيقظ التجربة عند وصولك…

تجميع الصورة الكاملة

خط معالجة Tacotron 2 الكامل يسير كالتالي: حروف ← مُرمِّز ← انتباه ← فاكّ ترميز ← شبكة لاحقة ← طيف ميل ← WaveNet ← موجة صوتية. طيف ميل هو الواجهة النظيفة التي تفصل بين النصفين: يمكنك تحسين شبكة الطيف وحدها (آلية انتباه أقوى أو مُرمِّز أفضل) ويمكنك استبدال المُركِّب الصوتي (من WaveNet إلى WaveRNN إلى HiFi-GAN) من دون إعادة تدريب النصف الآخر.

هذا التصميم القائم على المكوّنات المستقلة هو ما جعل واجهة طيف ميل معياراً صناعياً سائداً. كل نظام تحويل نص إلى كلام جاء بعده — FastSpeech وVITS وGrad-TTS — يتنبأ بأطياف ميل كخطوة وسيطة. فكرة فصل «ماذا يُقال» عن «كيف يُنطَق» تبيّن أنها من أكثر القرارات التصميمية تأثيراً في تاريخ تركيب الكلام.

افتح في المختبر
خط معالجة Tacotron 2 الكامل. انقر على أي مرحلة لترى تدفّق البيانات عبر النظام.
تستيقظ التجربة عند وصولك…

لماذا أحدث فرقاً

  1. 2016

    WaveNet

    أثبتت أن مُركِّباً صوتياً عصبياً يستطيع توليد كلام طبيعي عيّنةً بعيّنة، لكنها ظلّت تحتاج سمات لغوية مصنوعة يدوياً كمدخلات.

  2. 2017

    Tacotron 1

    أول نموذج شامل يربط الحروف بالأطياف مباشرةً، لكنه اعتمد على Griffin-Lim لتوليد الموجة فظهرت تشوهات مسموعة.

  3. 2018

    Tacotron 2

    دمج التنبؤ العصبي بالأطياف مع مُركِّب صوتي عصبي، وحقّق MOS 4.53 — يكاد لا يُميَّز عن الكلام البشري.

  4. 2019

    FastSpeech

    استبدل فاكّ الترميز ذاتي الانحدار بتنبؤ متوازٍ، فحقّق استدلالاً آنياً مع الحفاظ على أطياف ميل كواجهة.

  5. 2020

    HiFi-GAN

    مُركِّب صوتي قائم على الشبكات التوليدية التنافسية يحوّل أطياف ميل إلى صوت آنياً بجودة تُنافس WaveNet — مما أثبت أن واجهة ميل تُتيح استبدال المُركِّب بسهولة.

  6. 2022

    Whisper

    نموذج OpenAI للتعرّف على الكلام، يعالج أطياف ميل كمدخلات — التمثيل ذاته الذي أرساه Tacotron 2 لكن بالاتجاه المعاكس.

  7. 2023

    VALL-E و XTTS

    أنظمة استنساخ صوتي بدون أمثلة وتحويل نص إلى كلام متعدد اللغات، مبنية على نموذج طيف ميل الذي أرساه Tacotron 2.

المرجعShen, Pang, Weiss, Schuster, Jaitly, Yang, Chen, Zhang, Wang, Skerry-Ryan, Saurous, Agiomyrgiannakis, Wu. Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions. ICASSP, 2018.

مصطلحات هذه الورقة