Files
nanaoto 4f8792ff12 docs: link the IndexTTS-2.5 HuggingFace Space from the Model Zoo
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.
2026-08-13 22:26:44 +08:00

27 KiB

نظام صناعي المستوى لتحويل النص إلى كلام بتقنية الاستدلال الصفري (Zero-Shot)، قابل للتحكم وعالي الكفاءة

简体中文 | English | 日本語 | Español | العربية

GitHub Stars arXiv Discord

IndexTTS هو نظام لتحويل النص إلى كلام بتقنية الاستدلال الصفري يستنسخ الصوت من مقطع صوتي مرجعي واحد. يدعم أحدث إصدار، IndexTTS-2.5، اللغات الصينية والإنجليزية واليابانية والإسبانية والعربية، مع تحكم دقيق في المشاعر، وتحكم في سرعة الكلام، وتحكم في النطق (البينيين / أصوات CMU / الكانا اليابانية)، واستدلال أسرع من IndexTTS-2.


🗂️ مجموعة النماذج

النموذج العروض الورقة البحثية ModelScope HuggingFace
IndexTTS-2.5 Demo Studio Space Paper ModelScope HuggingFace
IndexTTS-2 Demo Paper ModelScope HuggingFace
IndexTTS-1.5 Demo Paper ModelScope HuggingFace
IndexTTS Demo Paper ModelScope HuggingFace

📣 الأخبار

  • 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، وأصدرنا العروض التوضيحية ومجموعات الاختبار.

🎬 العروض التوضيحية

IndexTTS-2.5: مستقبل الصوت، يُولَّد الآن

IndexTTS2.5 Demo

IndexTTS-2: مستقبل الصوت، يُولَّد الآن

IndexTTS2 Demo

🚀 البدء

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↑
VoxCPM22B3.8874.995.1371.575.4974.676.6972.9014.9465.997.2272.02
OmniVoice0.8B3.4172.993.6270.133.5274.145.3870.4917.8864.226.7670.39
Moss-TTS 1.58B4.0272.684.4567.463.8371.7510.9768.7123.7162.219.4068.56
CosyVoice3-0.5B0.5B3.8480.014.8874.164.0478.85-76.36----
CosyVoice3-1.5B1.5B3.91†-4.99†-4.47†-7.57†-----
FireRedTTS-21.5B8.2268.1014.9256.93--------
Fish Audio S2 Pro4B3.6267.793.8361.662.9367.445.1566.1514.1559.435.9464.49
Qwen3-TTS1.7B3.2773.025.0667.172.8773.175.8970.18----
IndexTTS2.50.8B4.3677.105.1268.063.7576.395.6674.6214.8869.746.7573.18
IndexTTS2.5-RL0.8B3.9377.923.8967.793.3376.685.3075.4113.5870.366.0073.63

الجدول 2: تحويل النص إلى كلام عبر اللغات على CV3-Eval (مطالبة صينية ← اللغة المستهدفة، تستخدم العربية مجموعة اختبار داخلية).

النموذج المعاملات zh→en zh→es zh→ja zh→ar Avg
WER↓SS↑ WER↓SS↑ WER↓SS↑ WER↓SS↑ WER↓SS↑
VoxCPM22B4.4864.2516.3864.8911.8471.5411.0967.6210.9567.08
OmniVoice0.8B3.7464.915.8462.089.0969.0619.8065.279.6265.33
Moss-TTS 1.58B6.1359.234.3256.6311.5265.5417.0362.939.7561.08
CosyVoice3-0.5B0.5B3.2362.794.5864.04------
CosyVoice3-1.5B1.5B4.32---13.70-----
FireRedTTS-21.5B9.3453.1912.2558.3119.0564.12----
Fish Audio S2 Pro4B4.1455.894.4655.5710.4861.7414.4959.808.3958.25
Qwen3-TTS1.7B5.7463.045.1568.0236.0965.71----
IndexTTS2.50.8B3.6263.835.1765.486.5774.169.5171.026.2268.62
IndexTTS2.5-RL0.8B3.5567.474.8664.476.3875.829.8973.056.1770.20

🤝 المجتمع والتواصل

نرحب بانضمامك إلى مجتمعنا! 🌏 欢迎大家来交流讨论!

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}
}

🙏 شكر وتقدير

  1. tortoise-tts
  2. XTTSv2
  3. BigVGAN
  4. wenet
  5. icefall
  6. maskgct
  7. seed-vc

📄 الترخيص

هذا المشروع صادر بموجب اتفاقية ترخيص استخدام نماذج bilibili. يرجى أيضًا قراءة إخلاء المسؤولية قبل الاستخدام.