إسماعيل بن علا

TTS Workbench

مقاربات تحويل النص إلى كلام في PyTorch

الصوت · أكتوبر 2026 · مكتمل

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

التقنياتPyTorchNumPyMatplotlibHugging Face TransformerspytestKaggle

TTS Workbench — نظرة عامة

نظرة عامة

مرّ تحويل النص إلى كلام بعدة تصاميم في سنوات قليلة: نماذج انحدارية ذاتية بالانتباه، ونماذج غير انحدارية ذاتية بمُدد صريحة، ونماذج تبايُنية (variational) من طرف إلى طرف بتدريب تنافسي. بنيت كلاً منها في قاعدة كود PyTorch صغيرة واحدة، بنحو مليون معلمة لكل منها، بحيث يُظهر تشغيل واحد على CPU ما تفعله كل طريقة ويمكن قراءة كل سطر.

النماذج هي Tacotron 2 وTransformer-TTS وFastSpeech 2 وVITS، مع Griffin-Lim ومشفّر صوتي (vocoder) HiFi-GAN، ومحاذٍ مدمج ببحث محاذاة رتيب (monotonic alignment search) لمُدد المعلّم، ووحدة تقييم تقيس MCD على طول مسار DTW، وجذر متوسط مربع خطأ لوغاريتم F0، وأخطاء الجهر والمدة، وقطرية الانتباه، مع WER اختياري عبر Whisper وMOS متنبَّأ به عبر UTMOS. وتتشارك كلها تنظيم البيانات والمدرّب وصيغة نقاط الحفظ والتقييم.

اختبرت كل شيء على بيانات بسيطة بتردد 8 kHz في تشغيلات قصيرة على CPU: لغة تجريبية اصطناعية وأرقام FSDD المنطوقة. على اللغة التجريبية يبلغ Transformer-TTS وFastSpeech 2 وVITS قيم MCD بين 12 و13 dB مقابل حد أدنى قدره 10.5 dB لإعادة التركيب بالنسخ (copy-synthesis)، بمحاذاات شبه قطرية؛ ويُظهر Tacotron 2 فشل الانتباه الكلاسيكي، ومشفّر HiFi-GAN الصوتي ناقص التدريب بوضوح عند هذه الميزانية. تقول الأرقام إن خط المعالجة والمقاييس يعملان، لا إن النماذج تنافس أنظمة LJSpeech.

السؤال

عندما تتشارك أربعة تصاميم لتحويل النص إلى كلام البيانات نفسها والمدرّب نفسه والمقاييس نفسها، أي أجزاء من كل منها تتعلم فعلاً، وماذا تكشف المقاييس الموضوعية مما تخفيه خسارة التدريب؟

أهم الميزات

كيف يعمل

  1. من النص إلى الرموز

    يُطبَّع النص ويُجزَّأ إلى معرّفات رموز؛ وفي الجانب الصوتي مخطط طيفي log-mel محسوب بالإعدادات نفسها في كل مكان.

  2. التنبؤ بـ mel أو بشكل موجي

    يفك Tacotron 2 وTransformer-TTS الترميز إطاراً إطاراً بالانتباه والتلقين القسري (teacher forcing)؛ ويمدّد FastSpeech 2 كل رمز وفق مدته المتنبَّأ بها ويضيف طبقة الصوت والطاقة؛ ويحوّل VITS النص إلى كمون ويفك ترميز الشكل الموجي مباشرة.

  3. تعلّم المحاذاة

    تتعلمها نماذج الانتباه من البيانات بمساعدة خسارة انتباه موجَّه؛ ويحصل عليها FastSpeech 2 وVITS ببحث المحاذاة الرتيب على مصفوفة التشابه للمحاذي أو لمشفّر التوزيع البعدي (posterior encoder).

  4. الترميز الصوتي

    يتحول mel إلى صوت عبر Griffin-Lim أو عبر مولّد HiFi-GAN المدرَّب بخسائر تنافسية ومطابقة سمات وmel.

  5. التقييم

    يركّب tts-eval جمل التحقق، ويحاذي كلاً منها مع تسجيلها بـ DTW، ويبلّغ عن مقاييس MCD وF0 والجهر والمدة والمحاذاة، إلى جانب نقطتي مرجع إعادة التركيب بالنسخ والمتحدث نفسه.

أمثلة

اللغة التجريبية، 285 جملة تدريب: خسارة التدريب (مقياس لوغاريتمي) وخطأ L1 لـ mel التحقق بالتلقين القسري للنماذج الأربعة. يبلغ Tacotron 2 أدنى خطأ بالتلقين القسري (0.12)، وهو ما يخفي أن انتباهه لم يتحاذَ قط.
اللغة التجريبية، 285 جملة تدريب: خسارة التدريب (مقياس لوغاريتمي) وخطأ L1 لـ mel التحقق بالتلقين القسري للنماذج الأربعة. يبلغ Tacotron 2 أدنى خطأ بالتلقين القسري (0.12)، وهو ما يخفي أن انتباهه لم يتحاذَ قط.
المحاذاات عند التقييمين الأول والأخير على اللغة التجريبية: يصبح انتباه Transformer-TTS قطرياً بحلول الخطوة 720، وتستقر مسارات MAS في FastSpeech 2 وVITS على القطر، ويبقى Tacotron 2 منتبهاً إلى رمز واحد.
المحاذاات عند التقييمين الأول والأخير على اللغة التجريبية: يصبح انتباه Transformer-TTS قطرياً بحلول الخطوة 720، وتستقر مسارات MAS في FastSpeech 2 وVITS على القطر، ويبقى Tacotron 2 منتبهاً إلى رمز واحد.
أرقام FSDD المنطوقة، 475 مقطعاً من كلمة واحدة: خسارة التدريب وخطأ L1 لـ mel التحقق في Tacotron 2 (7,200 خطوة) وFastSpeech 2 (أفضل نقطة حفظ عند الخطوة 4,200).
أرقام FSDD المنطوقة، 475 مقطعاً من كلمة واحدة: خسارة التدريب وخطأ L1 لـ mel التحقق في Tacotron 2 (7,200 خطوة) وFastSpeech 2 (أفضل نقطة حفظ عند الخطوة 4,200).
على FSDD، لا يزال انتباه Tacotron 2 ضبابياً بعد 7,200 خطوة، ويكدّس مسار MAS في FastSpeech 2 الإطارات على رمز أو رمزين (قطرية بين 0.29 و0.40): 475 مقطعاً من كلمة واحدة أقل من أن تعطي محاذاة حادة.
على FSDD، لا يزال انتباه Tacotron 2 ضبابياً بعد 7,200 خطوة، ويكدّس مسار MAS في FastSpeech 2 الإطارات على رمز أو رمزين (قطرية بين 0.29 و0.40): 475 مقطعاً من كلمة واحدة أقل من أن تعطي محاذاة حادة.

المدخل

tts-eval --checkpoint checkpoints/fs2/best.pt --data-dir data/synthetic --n 15

المخرج

MCD 12.3 dB, log-F0 RMSE 3.0 st, voicing error 0.04, duration error 0.05, alignment diagonality 0.97 (Griffin-Lim; copy-synthesis floor 10.5 dB)

FastSpeech 2 على اللغة التجريبية، أفضل MCD وF0 بين النماذج الأربعة. مع HiFi-GAN ناقص التدريب بدلاً من Griffin-Lim يرتفع MCD إلى 14.6 dB وخطأ F0 إلى 19.5 نصف نغمة.

التقنيات المستخدمة

ما تعلمته

الحدود

الكلمات المفتاحية

تحويل النص إلى كلام · TTS · تركيب الكلام · Tacotron 2 · Transformer-TTS · FastSpeech 2 · VITS · HiFi-GAN · Griffin-Lim · مشفّر صوتي عصبي · بحث المحاذاة الرتيب · MAS · انتباه حساس للموقع · مخطط طيفي mel · تشوه mel-cepstral · MCD · F0 · UTMOS · MOS · PyTorch · FSDD · LJSpeech