Bayan-Arabic-TTS-v1.0 — Arabic TTS (MagpieTTS 357M + LoRA)

Bayan logo

Bayan (بيان) — نموذج تحويل النص إلى كلام عربي بصوت رجل اسمه «مراد»، مبني على nvidia/magpie_tts_multilingual_357m مع تدريب LoRA وصف speaker سادس مخصص للصوت.

Arabic text-to-speech with a single Arabic male voice. Built on MagpieTTS Multilingual 357M using LoRA + a dedicated baked speaker row, fine-tuned on 71.6 minutes of Arabic speech.

بطاقة النموذج التفاعلية (HTML): model_card.html — تضم النتائج والعينات وطريقة التشغيل والتدريب في صفحة واحدة.

Sample audio

الفصحى المشكّلة — CER 0.00% على 8/8 جُمل:

كل المقاطع في samples/msa/ مع نصوصها في samples/msa/texts.txt.

النتائج

تقييم على 32 مقطعاً محجوزاً لم تُستخدم في التدريب (Whisper large-v3 للـCER، TitaNet لتشابه الصوت):

النموذج CER ↓ WER ↓ تشابه الصوت ↑
MagpieTTS الأصلي (صوت Jason) 1.25% — 0.294
Bayan — الملف المنشور (صوت مراد) 1.39% 8.12% 0.869
  • الفصحى المشكّلة: CER = 0.00% وWER = 0.00% على 8 جُمل متنوعة، تشابه صوت 0.864.
  • RTF ≈ 1.0 على RX 6700 XT (توليد أسرع من الزمن الحقيقي).

مقارنة مباشرة مع النموذج الأصلي

نفس النص الطويل (compare/test.txt)، نفس الإعدادات، الأصلي بصوت Jason المدمج:

المقياس الأصلي (Jason) Bayan (صوت مراد)
CER 4.13% 3.03%
WER 7.23% 4.10%
تشابه الصوت مع مراد 0.387 0.930

استمع للمقارنة جنباً إلى جنب: compare/index.html (Audio: compare/original/ وcompare/finetuned/).

اختبار الفصحى العلمي — 32 جملة حصرية

32 جملة فصحى مشكّلة لم تُستخدم في التدريب ولا التحقق، تغطي 36 حرفاً وتشمل الأرقام والتواريخ والأسماء الأجنبية والأسئلة والجمل الطويلة:

المقياس الأصلي (Jason) Bayan (صوت مراد)
CER 3.40% 1.60%
CER* (بعد تطبيع الأرقام والوحدات) 0.63% 0.10%
WER 5.82% 2.02%
جُمل مطابقة تماماً 22/32 28/32
تشابه الصوت مع مراد 0.317 0.854

لم يتبقَّ في نموذج Bayan سوى خطأين بحرف واحد («كامبريدج» و«مجتهدة»)؛ أما الفروق الكبيرة في CER الخام فهي تحويل Whisper للأرقام المنطوقة إلى أرقام حسابية، وليست أخطاء نطق.

هذه المجموعة أصعب من مجموعة التحقق (أرقام وتواريخ وأسماء أجنبية وجمل طويلة)، لذلك لا تُقارن نسبتها مباشرة بجدول الـ32 مقطعاً أعلاه.

الصفحة التفاعلية: eval/msa_32/report.html — والمنهجية والقياسات الخام في eval/msa_32/README.md.

مقارنة مع النماذج المشهورة على Hugging Face

نفس 5 جمل (أخبار، علوم، سؤال، أرقام، فصحى طويلة) مع أربعة أنظمة إضافية: Chatterbox، XTTS-v2، MMS-TTS Arabic، وMagpieTTS الأصلي.

النظام CER* ↓ CER خام التشابه ↑ RTF ↓ الترخيص
Bayan (صوت مراد) 0.00% 4.30% 0.867 0.99 NVIDIA Open
Chatterbox Multilingual v2 0.00% 2.53% 0.830 1.06 MIT
XTTS-v2 0.97% 5.28% 0.718 0.31 CPML (غير تجاري)
MMS-TTS Arabic 2.24% 4.71% 0.407 0.03 CC-BY-NC
MagpieTTS الأصلي (Jason) 0.00% 4.30% 0.299 1.03 NVIDIA Open

Bayan وChatterbox تعادلا نصياً بعد تطبيع الأرقام، وتفوق Bayan في تشابه الصوت. الفروق في CER الخام سببها تنسيق Whisper للأرقام.

استمع وقارن: compare_models/index.html — والمنهجية في compare_models/README.md.

الاستخدام السريع

pip install "nemo_toolkit[tts]" soundfile
python inference.py --text "أَهْلًا بِكَ، كَيْفَ حَالُكَ الْيَوْمَ؟" --out-dir out

أو من Python:

import soundfile as sf
from nemo.collections.tts.models import MagpieTTSModel

model = MagpieTTSModel.restore_from("Bayan-Arabic-TTS-v1.0.nemo", map_location="cuda", strict=False).eval()
model.inference_parameters.cfg_scale = 2.5
model.inference_parameters.temperature = 0.6
model.inference_parameters.topk = 80

audio, audio_len = model.do_tts(
    "إِنَّ الْعِلْمَ نُورٌ يُضِيءُ طَرِيقَ الْإِنْسَانِيَّةِ.",
    language="ar-MSA",
    apply_TN=False,
    use_cfg=True,
    speaker_index=5,     # 5 = مراد، 0-4 أصوات النموذج الأصلية
)
sf.write("out.wav", audio[0, : int(audio_len[0])].float().cpu().numpy(), 22050)

التفاصيل الكاملة: INSTALL.md وUSAGE.md.

تفاصيل النموذج

الاسم / الإصدار Bayan-Arabic-TTS-v1.0 (بيان)
ملف النموذج Bayan-Arabic-TTS-v1.0.nemo — 1.36 GiB
النموذج الأساسي nvidia/magpie_tts_multilingual_357m (v2607)
المعمارية Transformer decoder + NanoCodec (22.05 kHz، 21.5 fps)
طريقة التكيّف LoRA r=32، α=64، dropout=0.05 على 133 طبقة + صف speaker سادس
عدد المعاملات المدرَّبة 13.91M (12.91M LoRA + 1.00M embedding)
الصوت «مراد»، ذكر
اللغة ar-MSA مع tokenizer arabic_MSA_chartokenizer
البيانات 633 مقطعاً / 71.6 دقيقة (متوسط 6.8 ثانية)
التقسيم 601 تدريب / 32 تحقق (مرتّب حسب المدة)
العتاد AMD RX 6700 XT 12 GB، ROCm 6.3، fp32
التدريب 47 epoch (أفضل نتيجة عند 40)، ~85 ثانية/epoch، ذروة VRAM 7.9 GB

طريقة التدريب الكاملة، المشاكل والحلول، وأوامر إعادة الإنتاج في TRAINING.md.

لماذا صف speaker سادس؟

إصدار v2607 أزال zero-shot voice cloning ولا يحتوي أوزان context encoder. الحل: إضافة صف سادس إلى baked_context_embedding (217×768) مهيّأ من صوت مدمج، وتدريبه مع LoRA. هذا يعمل كـvoice prompt ويسمح بتعلّم بصمة صوت جديدة دون إعادة تدريب النموذج كاملاً.

الاستخدام على AMD (ROCm)

export HSA_OVERRIDE_GFX_VERSION=10.3.0   # gfx1031 (RX 6700 XT)
export MIOPEN_FIND_MODE=FAST             # يمنع توقفات autotuning

بدون MIOPEN_FIND_MODE=FAST قد يتوقف التوليد 30–50 ثانية عند كل طول جديد. على بطاقات NVIDIA لا حاجة لهذه المتغيرات.

القيود

  • التشكيل مهم: التدريب جرى على نصوص مشكّلة بالكامل. النص غير المشكّل يعمل، لكن الدقة أفضل بكثير مع التشكيل (خصوصاً أواخر الكلمات).
  • النموذج مُقيَّم أساساً على الفصحى المشكّلة.
  • البيانات اصطناعية بالكامل من محرك TTS واحد؛ قد تظهر محدودية في العواطف القصوى أو الضحك أو الهمس.
  • الحد الأقصى للجملة ~37 ثانية (max_decoder_steps=800)؛ قسّم النصوص الطويلة.
  • قد يخطئ في أسماء أجنبية مُعرَّبة غير شائعة (مثل الأسماء الكورية).
  • 22.05 kHz أحادية.

الترخيص

النموذج مشتق من nvidia/magpie_tts_multilingual_357m ويخضع لترخيص NVIDIA Open Model License. راجع NOTICE.md قبل الاستخدام التجاري.

الإشارة إلى النموذج الأساسي

إن استخدمت هذا النموذج في عمل منشور، اذكر النموذج الأساسي MagpieTTS (NVIDIA NeMo) بالإضافة إلى هذا المستودع.

النشر على Hugging Face

المستودع المستهدف: anwar-dev/Bayan-Arabic-TTS-v1.0.

hf auth login
./push_to_hub.sh anwar-dev/Bayan-Arabic-TTS-v1.0

ينشئ السكربت المستودع إن لم يكن موجوداً، ثم يرفع بطاقة النموذج والعينات والتقييمات والملف .nemo (1.36 GiB) عبر Git LFS. إن كان اسم حسابك مختلفاً، مرّر اسم-المستخدم/Bayan-Arabic-TTS-v1.0 كوسيط للسكربت.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for anwar-dev/Bayan-Arabic-TTS-v1.0

Adapter
(1)
this model