The Space at IndexTeam/IndexTTS-2.5-Demo now runs 2.5, but the Demos column only pointed at the demo page and the ModelScope studio. Add a Space badge next to them in all five badge-style READMEs, and a plain [HF Space] link in README2.5_ZH.md, which uses plain links instead.
27 KiB
نظام صناعي المستوى لتحويل النص إلى كلام بتقنية الاستدلال الصفري (Zero-Shot)، قابل للتحكم وعالي الكفاءة
IndexTTS هو نظام لتحويل النص إلى كلام بتقنية الاستدلال الصفري يستنسخ الصوت من مقطع صوتي مرجعي واحد. يدعم أحدث إصدار، IndexTTS-2.5، اللغات الصينية والإنجليزية واليابانية والإسبانية والعربية، مع تحكم دقيق في المشاعر، وتحكم في سرعة الكلام، وتحكم في النطق (البينيين / أصوات CMU / الكانا اليابانية)، واستدلال أسرع من IndexTTS-2.
🗂️ مجموعة النماذج
| النموذج | العروض | الورقة البحثية | ModelScope | HuggingFace |
|---|---|---|---|---|
| IndexTTS-2.5 | ||||
| IndexTTS-2 | ||||
| IndexTTS-1.5 | ||||
| IndexTTS |
📣 الأخبار
2026/08/10🔥 نطلق IndexTTS-2.5- يدعم الآن الصينية والإنجليزية واليابانية والإسبانية والعربية، مع استدلال أسرع من IndexTTS-2، مع الحفاظ على قدرات التخليق عبر اللغات وفصل نبرة الصوت عن المشاعر.
- تحسين قابلية التحكم في البينيين الصيني وأصوات CMU الإنجليزية والكانا اليابانية.
- تحكم في سرعة الكلام عبر
duration_factor(مدة من 0.5x إلى 2.0x).
2025/09/08🔥 نطلق IndexTTS-2- أول نموذج TTS ذاتي الارتداد مع تحكم دقيق في مدة التخليق، يدعم الوضعين القابل للتحكم وغير القابل للتحكم. هذه الميزة غير مفعّلة بعد في هذا الإصدار.
- تخليق كلام عالي التعبير العاطفي، مع التحكم في المشاعر عبر وسائط إدخال متعددة.
2025/05/14🔥 نطلق IndexTTS-1.5، مع تحسين كبير في استقرار النموذج وأدائه في اللغة الإنجليزية.2025/03/25🔥 نطلق IndexTTS-1.0 مع أوزان النموذج وكود الاستدلال.2025/02/12🎉 قدّمنا ورقتنا البحثية إلى arXiv، وأصدرنا العروض التوضيحية ومجموعات الاختبار.
🎬 العروض التوضيحية
🚀 البدء
1. المتطلبات الأساسية
تأكد من تثبيت git، ثم نزّل هذا المستودع:
git clone https://github.com/index-tts/index-tts.git && cd index-tts
يتم تنزيل الملفات الصوتية النموذجية عند الطلب من HuggingFace/ModelScope عند التشغيل الأول، لذا لم يعد Git LFS مطلوبًا.
2. تثبيت التبعيات
نستخدم uv لإدارة بيئة تبعيات المشروع. وهو مطلوب لتثبيت موثوق:
pip install -U uv # or see the link above for other install methods
uv sync --all-extras
يؤدي هذا تلقائيًا إلى إنشاء دليل المشروع .venv وتثبيت الإصدارات الصحيحة
من Python وجميع التبعيات المطلوبة.
إذا كان التنزيل بطيئًا، استخدم مرآة محلية، مثل إحدى هاتين المرآتين في الصين:
uv sync --all-extras --default-index "https://mirrors.aliyun.com/pypi/simple"
uv sync --all-extras --default-index "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
Tip
الميزات الإضافية المتاحة:
--all-extras: يضيف تلقائيًا كل ميزة إضافية مدرجة أدناه. يمكنك إزالة هذا الخيار إذا أردت تخصيص خيارات التثبيت.--extra webui: يضيف دعم واجهة الويب WebUI (موصى به).--extra deepspeed: يضيف دعم DeepSpeed (قد يسرّع الاستدلال على بعض الأنظمة).
Important
Windows: قد يكون تثبيت DeepSpeed صعبًا. يمكنك تخطيه بإزالة خيار
--all-extrasوإضافة خيارات الميزات الأخرى يدويًا.Linux/Windows: إذا ظهر خطأ CUDA أثناء التثبيت، تأكد من تثبيت الإصدار 12.8 (أو أحدث) من CUDA Toolkit من NVIDIA على نظامك.
3. تنزيل النماذج
نزّل النماذج المطلوبة عبر uv tool:
عبر huggingface-cli:
uv tool install "huggingface-hub"
# IndexTTS-2.5
hf download IndexTeam/IndexTTS-2.5 --local-dir=checkpoints
# IndexTTS-2
hf download IndexTeam/IndexTTS-2 --local-dir=checkpoints_2
أو عبر modelscope:
uv tool install "modelscope"
# IndexTTS-2.5
modelscope download --model IndexTeam/IndexTTS-2.5 --local_dir checkpoints
# IndexTTS-2
modelscope download --model IndexTeam/IndexTTS-2 --local_dir checkpoints_2
Important
إذا لم تكن الأوامر أعلاه متاحة، اقرأ بعناية مخرجات
uv tool— فهي ستخبرك بكيفية إضافة الأدوات إلى PATH في نظامك.
Note
يتم تنزيل بعض النماذج الصغيرة تلقائيًا عند التشغيل الأول. إذا كانت شبكتك بطيئة في الوصول إلى HuggingFace، اضبط مرآة قبل تشغيل الكود:
export HF_ENDPOINT="https://hf-mirror.com"
4. التحقق من تسريع GPU
لتشخيص بيئتك ومعرفة وحدات GPU المكتشفة، استخدم الأداة المرفقة:
uv run tools/gpu_check.py
💻 الاستخدام
🌐 عرض الويب
# IndexTTS-2.5 (default)
uv run webui.py
# IndexTTS-2
uv run webui.py --version 2 --model_dir ./checkpoints_2
افتح متصفحك وزر http://127.0.0.1:7860 لمشاهدة العرض.
يمكنك ضبط الإعدادات لتفعيل استدلال BF16 (IndexTTS-2.5) / FP16 (IndexTTS-2) (استهلاك أقل لذاكرة VRAM)، وتسريع DeepSpeed، ونوى CUDA المجمّعة للسرعة، وما إلى ذلك. يمكن الاطلاع على جميع الخيارات المتاحة عبر:
uv run webui.py -h
Important
استدلال FP16/BF16 (نصف الدقة) أسرع ويستهلك ذاكرة VRAM أقل، مع فقدان ضئيل جدًا في الجودة.
DeepSpeed قد يسرّع الاستدلال على بعض الأنظمة، لكنه قد يجعله أبطأ أيضًا — يعتمد ذلك على عتادك وتعريفاتك ونظام التشغيل. جرّب الطريقتين.
جميع أوامر
uvتفعّل تلقائيًا البيئة الافتراضية الصحيحة الخاصة بالمشروع. لا تفعّل أي بيئة يدويًا قبل تشغيل أوامرuv، لأن ذلك قد يسبب تعارضات في التبعيات.
🚀 التشغيل باستخدام vLLM
للنشر الإنتاجي، راجع وصفة vLLM لـ IndexTTS.
📝 واجهة Python البرمجية
لتشغيل السكربتات، استخدم uv run <file.py> ليعمل الكود داخل بيئة uv.
قد تحتاج أيضًا إلى إضافة الدليل الحالي إلى PYTHONPATH:
# IndexTTS2
PYTHONPATH="$PYTHONPATH:." uv run indextts/infer_v2.py
# IndexTTS2.5
PYTHONPATH="$PYTHONPATH:." uv run indextts/infer_v2_5.py \
--cfg_path checkpoints/config.yaml \
--model_dir checkpoints \
--text "Hello world" \
--lang EN
0. تهيئة IndexTTS
# IndexTTS2
from indextts.infer_v2 import IndexTTS2
tts = IndexTTS2(cfg_path="checkpoints_2/config.yaml", model_dir="checkpoints_2", use_fp16=False, use_cuda_kernel=False, use_deepspeed=False)
# IndexTTS2.5
from indextts.infer_v2_5 import IndexTTS2
tts = IndexTTS2(cfg_path="checkpoints/config.yaml", model_dir="checkpoints", use_bf16=True)
1. استنساخ الصوت من مقطع صوتي مرجعي واحد
text = "Translate for me, what is a surprise!"
# IndexTTS2
tts.infer(spk_audio_prompt='examples/voice_01.wav', text=text, output_path="gen.wav", verbose=True)
# IndexTTS2.5 (multilingual, with language selection)
tts.infer(spk_audio_prompt='examples/voice_01.wav', text=text, lang="EN", output_path="gen.wav", verbose=True)
2. التحكم في المشاعر بصوت مرجعي عاطفي منفصل
text = "酒楼丧尽天良,开始借机竞拍房间,哎,一群蠢货。"
# IndexTTS2
tts.infer(spk_audio_prompt='examples/voice_07.wav', text=text, output_path="gen.wav", emo_audio_prompt="examples/emo_sad.wav", verbose=True)
# IndexTTS2.5
tts.infer(spk_audio_prompt='examples/voice_07.wav', text=text, lang="ZH", output_path="gen.wav", emo_audio_prompt="examples/emo_sad.wav", verbose=True)
3. ضبط شدة المشاعر باستخدام emo_alpha
عند تحديد صوت مرجعي عاطفي، يضبط emo_alpha مقدار تأثيره على المخرجات.
النطاق الصالح: 0.0 - 1.0، الافتراضي: 1.0 (100%).
text = "酒楼丧尽天良,开始借机竞拍房间,哎,一群蠢货。"
# IndexTTS2
tts.infer(spk_audio_prompt='examples/voice_07.wav', text=text, output_path="gen.wav", emo_audio_prompt="examples/emo_sad.wav", emo_alpha=0.9, verbose=True)
# IndexTTS2.5
tts.infer(spk_audio_prompt='examples/voice_07.wav', text=text, output_path="gen.wav", lang="ZH", emo_audio_prompt="examples/emo_sad.wav", emo_alpha=0.9, verbose=True)
4. التحكم في المشاعر باستخدام متجه مشاعر
يمكنك حذف الصوت المرجعي العاطفي وتقديم بدلًا منه قائمة من 8 أرقام عشرية
تحدد شدة كل شعور، بالترتيب
[happy, angry, sad, afraid, disgusted, melancholic, surprised, calm].
استخدم use_random لإدخال العشوائية أثناء الاستدلال (الافتراضي: False).
Note
تفعيل أخذ العينات العشوائي يقلل من دقة استنساخ الصوت.
text = "对不起嘛!我的记性真的不太好,但是和你在一起的事情,我都会努力记住的~"
# IndexTTS2
tts.infer(spk_audio_prompt='examples/voice_09.wav', text=text, output_path="gen.wav", emo_vector=[0, 0, 0.8, 0, 0, 0, 0, 0], use_random=False, verbose=True)
# IndexTTS2.5
tts.infer(spk_audio_prompt='examples/voice_09.wav', text=text, lang="ZH", output_path="gen.wav", emo_vector=[0, 0, 0.8, 0, 0, 0, 0, 0], use_random=False, verbose=True)
5. التحكم في المشاعر من النص نفسه (use_emo_text)
فعّل use_emo_text لتحويل نص text تلقائيًا إلى متجهات مشاعر. يُوصى
بقيمة emo_alpha حوالي 0.6 (أو أقل) للحصول على كلام أكثر طبيعية. يمكن
إدخال العشوائية باستخدام use_random (الافتراضي: False).
text = "快躲起来!是他要来了!他要来抓我们了!"
# IndexTTS2
tts.infer(spk_audio_prompt='examples/voice_12.wav', text=text, output_path="gen.wav", emo_alpha=0.6, use_emo_text=True, use_random=False, verbose=True)
# IndexTTS2.5
tts.infer(spk_audio_prompt='examples/voice_12.wav', text=text, lang="ZH", output_path="gen.wav", emo_alpha=0.6, use_emo_text=True, use_random=False, verbose=True)
6. التحكم في المشاعر بوصف عاطفي صريح (emo_text)
قدّم وصفًا نصيًا محددًا للمشاعر عبر emo_text، والذي يتم تحويله إلى
متجهات مشاعر — مما يمنحك تحكمًا منفصلًا في النص ووصف المشاعر:
text = "快躲起来!是他要来了!他要来抓我们了!"
emo_text = "你吓死我了!你是鬼吗?"
# IndexTTS2
tts.infer(spk_audio_prompt='examples/voice_12.wav', text=text, output_path="gen.wav", emo_alpha=0.6, use_emo_text=True, emo_text=emo_text, use_random=False, verbose=True)
# IndexTTS2.5
tts.infer(spk_audio_prompt='examples/voice_12.wav', text=text, lang="ZH", output_path="gen.wav", emo_alpha=0.6, use_emo_text=True, emo_text=emo_text, use_random=False, verbose=True)
7. التحكم في سرعة الكلام (duration_factor)
القيمة الأكبر من 1.0 تبطئ الكلام، والقيمة الأصغر من 1.0 تسرّعه.
الافتراضي: 1.0 (السرعة العادية). النطاق الصالح: 0.5 - 2.0.
text = "大家好,欢迎来到IndexTTS的语速控制演示。"
# IndexTTS2.5
# Slow down (1.2x duration)
tts.infer(spk_audio_prompt='examples/voice_01.wav', text=text, lang="ZH", output_path="gen_slow.wav", duration_factor=1.2, verbose=True)
# Speed up (0.8x duration)
tts.infer(spk_audio_prompt='examples/voice_01.wav', text=text, lang="ZH", output_path="gen_fast.wav", duration_factor=0.8, verbose=True)
🗣️ التحكم في النطق
IndexTTS2.5 — البينيين / أصوات CMU / الكانا اليابانية:
يدعم IndexTTS2.5 هذه الاستبدالات النصية مع قدرة أفضل على اتباع التعليمات.
للقائمة الكاملة بالإدخالات الصالحة، راجع checkpoints/pinyin.vocab للبينيين
وقاموس CMU
للأصوات الإنجليزية.
他在银<行|XING2>里<行|HANG2>走了半天,发现这笔业务办不<行|HANG2>。
He had a <minute|M IH1 . N AH0 T> to examine the <minute|M AY0 . N UW1 T> details of the contract.
彼は料理が<上手|じょうず>だが、囲碁では<上手|うわて>に負けた。
IndexTTS2 — البينيين:
يدعم IndexTTS2 النمذجة المختلطة للأحرف الصينية والبينيين. لتفعيل التحكم
في البينيين، قدّم نصًا مع تعليقات بينيين محددة. لاحظ أن التحكم في البينيين
لا يعمل مع كل تركيبة صامت–صائت ممكنة؛ فقط حالات البينيين الصيني الصالحة
مدعومة (راجع checkpoints/pinyin.vocab).
之前你做DE5很好,所以这一次也DEI3做DE2很好才XING2,如果这次目标完成得不错的话,我们就直接打DI1去银行取钱。
🕰️ IndexTTS-1.5 (الإصدار القديم)
يمكنك أيضًا استخدام نموذج IndexTTS1 السابق باستيراد وحدة مختلفة:
from indextts.infer import IndexTTS
tts = IndexTTS(model_dir="checkpoints", cfg_path="checkpoints/config.yaml")
voice = "examples/voice_07.wav"
text = "大家好,我现在正在bilibili 体验 ai 科技,说实话,来之前我绝对想不到!AI技术已经发展到这样匪夷所思的地步了!比如说,现在正在说话的其实是B站为我现场复刻的数字分身,简直就是平行宇宙的另一个我了。如果大家也想体验更多深入的AIGC功能,可以访问 bilibili studio,相信我,你们也会吃惊的。"
tts.infer(voice, text, 'gen.wav')
لمزيد من التفاصيل، راجع README_INDEXTTS_1_5، أو زر مستودع IndexTTS1 على index-tts:v1.5.0.
📊 التقييم
الجدول 1: تحويل النص إلى كلام بتقنية الاستدلال الصفري على CV3-Eval (تستخدم العربية مجموعة اختبار داخلية). †مقتبس من الورقة الأصلية.
| النموذج | المعاملات | zh | en | es | ja | ar | Avg | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| WER↓ | SS↑ | WER↓ | SS↑ | WER↓ | SS↑ | WER↓ | SS↑ | WER↓ | SS↑ | WER↓ | SS↑ | ||
| VoxCPM2 | 2B | 3.88 | 74.99 | 5.13 | 71.57 | 5.49 | 74.67 | 6.69 | 72.90 | 14.94 | 65.99 | 7.22 | 72.02 |
| OmniVoice | 0.8B | 3.41 | 72.99 | 3.62 | 70.13 | 3.52 | 74.14 | 5.38 | 70.49 | 17.88 | 64.22 | 6.76 | 70.39 |
| Moss-TTS 1.5 | 8B | 4.02 | 72.68 | 4.45 | 67.46 | 3.83 | 71.75 | 10.97 | 68.71 | 23.71 | 62.21 | 9.40 | 68.56 |
| CosyVoice3-0.5B | 0.5B | 3.84 | 80.01 | 4.88 | 74.16 | 4.04 | 78.85 | - | 76.36 | - | - | - | - |
| CosyVoice3-1.5B | 1.5B | 3.91† | - | 4.99† | - | 4.47† | - | 7.57† | - | - | - | - | - |
| FireRedTTS-2 | 1.5B | 8.22 | 68.10 | 14.92 | 56.93 | - | - | - | - | - | - | - | - |
| Fish Audio S2 Pro | 4B | 3.62 | 67.79 | 3.83 | 61.66 | 2.93 | 67.44 | 5.15 | 66.15 | 14.15 | 59.43 | 5.94 | 64.49 |
| Qwen3-TTS | 1.7B | 3.27 | 73.02 | 5.06 | 67.17 | 2.87 | 73.17 | 5.89 | 70.18 | - | - | - | - |
| IndexTTS2.5 | 0.8B | 4.36 | 77.10 | 5.12 | 68.06 | 3.75 | 76.39 | 5.66 | 74.62 | 14.88 | 69.74 | 6.75 | 73.18 |
| IndexTTS2.5-RL | 0.8B | 3.93 | 77.92 | 3.89 | 67.79 | 3.33 | 76.68 | 5.30 | 75.41 | 13.58 | 70.36 | 6.00 | 73.63 |
الجدول 2: تحويل النص إلى كلام عبر اللغات على CV3-Eval (مطالبة صينية ← اللغة المستهدفة، تستخدم العربية مجموعة اختبار داخلية).
| النموذج | المعاملات | zh→en | zh→es | zh→ja | zh→ar | Avg | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| WER↓ | SS↑ | WER↓ | SS↑ | WER↓ | SS↑ | WER↓ | SS↑ | WER↓ | SS↑ | ||
| VoxCPM2 | 2B | 4.48 | 64.25 | 16.38 | 64.89 | 11.84 | 71.54 | 11.09 | 67.62 | 10.95 | 67.08 |
| OmniVoice | 0.8B | 3.74 | 64.91 | 5.84 | 62.08 | 9.09 | 69.06 | 19.80 | 65.27 | 9.62 | 65.33 |
| Moss-TTS 1.5 | 8B | 6.13 | 59.23 | 4.32 | 56.63 | 11.52 | 65.54 | 17.03 | 62.93 | 9.75 | 61.08 |
| CosyVoice3-0.5B | 0.5B | 3.23 | 62.79 | 4.58 | 64.04 | - | - | - | - | - | - |
| CosyVoice3-1.5B | 1.5B | 4.32 | - | - | - | 13.70 | - | - | - | - | - |
| FireRedTTS-2 | 1.5B | 9.34 | 53.19 | 12.25 | 58.31 | 19.05 | 64.12 | - | - | - | - |
| Fish Audio S2 Pro | 4B | 4.14 | 55.89 | 4.46 | 55.57 | 10.48 | 61.74 | 14.49 | 59.80 | 8.39 | 58.25 |
| Qwen3-TTS | 1.7B | 5.74 | 63.04 | 5.15 | 68.02 | 36.09 | 65.71 | - | - | - | - |
| IndexTTS2.5 | 0.8B | 3.62 | 63.83 | 5.17 | 65.48 | 6.57 | 74.16 | 9.51 | 71.02 | 6.22 | 68.62 |
| IndexTTS2.5-RL | 0.8B | 3.55 | 67.47 | 4.86 | 64.47 | 6.38 | 75.82 | 9.89 | 73.05 | 6.17 | 70.20 |
🤝 المجتمع والتواصل
- QQ Groups: 663272642 (No.4), 1013410623 (No.5)
- Discord: https://discord.gg/uT32E7KDmy
- Email: indexspeech@bilibili.com
نرحب بانضمامك إلى مجتمعنا! 🌏 欢迎大家来交流讨论!
Caution
شكرًا لدعمكم مشروع bilibili IndexTTS! يرجى ملاحظة أن القناة الرسمية الوحيدة التي يديرها الفريق الأساسي هي: https://github.com/index-tts/index-tts. أي مواقع أو خدمات أخرى ليست رسمية، ولا يمكننا ضمان أمانها أو دقتها أو تحديثها في الوقت المناسب. للاطلاع على آخر التحديثات، يرجى دائمًا الرجوع إلى هذا المستودع الرسمي.
للاستخدام التجاري والتعاون، يرجى التواصل عبر indexspeech@bilibili.com.
📚 الاستشهاد
🌟 إذا وجدت عملنا مفيدًا، يرجى منحنا نجمة والاستشهاد بأوراقنا البحثية.
IndexTTS2.5:
@misc{li2026indextts25technicalreport,
title={IndexTTS 2.5 Technical Report},
author={Yunpei Li and Xun Zhou and Jinchao Wang and Lu Wang and Yong Wu and Siyi Zhou and Yiquan Zhou and Yining Wang and Yaogen Yang and Zhetao Hu and Shiyao Duan and Jiacheng Xu and Bin Xia and Jingchen Shu},
year={2026},
eprint={2601.03888},
archivePrefix={arXiv},
primaryClass={cs.SD},
url={https://arxiv.org/abs/2601.03888},
}
IndexTTS2:
@article{zhou2025indextts2,
title={IndexTTS2: A Breakthrough in Emotionally Expressive and Duration-Controlled Auto-Regressive Zero-Shot Text-to-Speech},
author={Siyi Zhou and Yiquan Zhou and Yi He and Xun Zhou and Jinchao Wang and Wei Deng and Jingchen Shu},
journal={arXiv preprint arXiv:2506.21619},
year={2025}
}
IndexTTS:
@article{deng2025indextts,
title={IndexTTS: An Industrial-Level Controllable and Efficient Zero-Shot Text-To-Speech System},
author={Wei Deng and Siyi Zhou and Jingchen Shu and Jinchao Wang and Lu Wang},
journal={arXiv preprint arXiv:2502.05512},
year={2025},
doi={10.48550/arXiv.2502.05512},
url={https://arxiv.org/abs/2502.05512}
}
🙏 شكر وتقدير
📄 الترخيص
هذا المشروع صادر بموجب اتفاقية ترخيص استخدام نماذج bilibili. يرجى أيضًا قراءة إخلاء المسؤولية قبل الاستخدام.

