logo
0
0
Login

IndexTTS: An Industrial-Level Controllable and Efficient Zero-Shot Text-To-Speech System

👉🏻 IndexTTS 👈🏻

[HuggingFace Demo] [ModelScope Demo]
[Paper] [Demos]

IndexTTS is a GPT-style text-to-speech (TTS) model mainly based on XTTS and Tortoise. It is capable of correcting the pronunciation of Chinese characters using pinyin and controlling pauses at any position through punctuation marks. We enhanced multiple modules of the system, including the improvement of speaker condition feature representation, and the integration of BigVGAN2 to optimize audio quality. Trained on tens of thousands of hours of data, our system achieves state-of-the-art performance, outperforming current popular TTS systems such as XTTS, CosyVoice2, Fish-Speech, and F5-TTS.
Experience IndexTTS: Please contact xuanwu@bilibili.com for more detailed information.

Contact

QQ群:553460296
Discord:https://discord.gg/uT32E7KDmy
简历:indexspeech@bilibili.com
欢迎大家来交流讨论!

📣 Updates

  • 2025/03/25 🔥🔥 We release the model parameters and inference code.
  • 2025/02/12 🔥 We submitted our paper on arXiv, and released our demos and test sets.

🖥️ Method

The overview of IndexTTS is shown as follows.

The main improvements and contributions are summarized as follows:

  • In Chinese scenarios, we have introduced a character-pinyin hybrid modeling approach. This allows for quick correction of mispronounced characters.
  • IndexTTS incorporate a conformer conditioning encoder and a BigVGAN2-based speechcode decoder. This improves training stability, voice timbre similarity, and sound quality.
  • We release all test sets here, including those for polysyllabic words, subjective and objective test sets.

Model Download

HuggingFaceModelScope
😁IndexTTSIndexTTS

📑 Evaluation

Word Error Rate (WER) Results for IndexTTS and Baseline Models on the seed-test

WERtest_zhtest_entest_hard
Human1.262.14-
SeedTTS1.0021.9456.243
CosyVoice 21.452.576.83
F5TTS1.561.838.67
FireRedTTS1.513.8217.45
MaskGCT2.272.6210.27
Spark-TTS1.21.98-
MegaTTS 31.361.82-
IndexTTS0.9371.9366.831

Word Error Rate (WER) Results for IndexTTS and Baseline Models on the other opensource test

Modelaishell1_testcommonvoice_20_test_zhcommonvoice_20_test_enlibrispeech_test_cleanavg
Human2.09.510.02.45.1
CosyVoice 21.89.17.34.95.9
F5TTS3.911.75.47.88.2
Fishspeech2.411.48.88.08.3
FireRedTTS2.211.016.35.77.7
XTTS3.011.47.13.56.0
IndexTTS1.37.05.32.13.7

Speaker Similarity (SS) Results for IndexTTS and Baseline Models

Modelaishell1_testcommonvoice_20_test_zhcommonvoice_20_test_enlibrispeech_test_cleanavg
Human0.8460.8090.8200.8580.836
CosyVoice 20.7960.7430.7420.8370.788
F5TTS0.7430.7470.7460.8280.779
Fishspeech0.4880.5520.6220.7010.612
FireRedTTS0.5790.5930.5870.6980.631
XTTS0.5730.5860.6480.7610.663
IndexTTS0.7440.7420.7580.8230.776

MOS Scores for Zero-Shot Cloned Voice

ModelProsodyTimbreQualityAVG
CosyVoice 23.674.053.733.81
F5TTS3.563.883.563.66
Fishspeech3.403.633.693.57
FireRedTTS3.793.723.603.70
XTTS3.232.993.103.11
IndexTTS3.794.204.054.01

Usage Instructions

Environment Setup

  1. Download this repository:
git clone https://github.com/index-tts/index-tts.git
  1. Install dependencies:
conda create -n index-tts python=3.10 conda activate index-tts pip install -r requirements.txt apt-get install ffmpeg
  1. Download models:

Download by huggingface-cli:

huggingface-cli download IndexTeam/Index-TTS \ bigvgan_discriminator.pth bigvgan_generator.pth bpe.model dvae.pth gpt.pth unigram_12000.vocab \ --local-dir checkpoints

Recommended for China users. 如果下载速度慢,可以使用镜像:

export HF_ENDPOINT="https://hf-mirror.com"

Or by wget:

wget https://huggingface.co/IndexTeam/Index-TTS/resolve/main/bigvgan_discriminator.pth -P checkpoints wget https://huggingface.co/IndexTeam/Index-TTS/resolve/main/bigvgan_generator.pth -P checkpoints wget https://huggingface.co/IndexTeam/Index-TTS/resolve/main/bpe.model -P checkpoints wget https://huggingface.co/IndexTeam/Index-TTS/resolve/main/dvae.pth -P checkpoints wget https://huggingface.co/IndexTeam/Index-TTS/resolve/main/gpt.pth -P checkpoints wget https://huggingface.co/IndexTeam/Index-TTS/resolve/main/unigram_12000.vocab -P checkpoints
  1. Run test script:
# Please put your prompt audio in 'test_data' and rename it to 'input.wav' PYTHONPATH=. python indextts/infer.py
  1. Use as command line tool:
# Make sure pytorch has been installed before running this command pip install -e . indextts "大家好,我现在正在bilibili 体验 ai 科技,说实话,来之前我绝对想不到!AI技术已经发展到这样匪夷所思的地步了!" \ --voice reference_voice.wav \ --model_dir checkpoints \ --config checkpoints/config.yaml \ --output output.wav

Use --help to see more options.

indextts --help

Web Demo

pip install -e ".[webui]" python webui.py

Open your browser and visit http://127.0.0.1:7860 to see the demo.

Note for Windows Users

On Windows, you may encounter an error when installing pynini: ERROR: Failed building wheel for pynini

In this case, please install pynini via conda:

# after conda activate index-tts conda install -c conda-forge pynini==2.1.5 pip install WeTextProcessing==1.0.3 pip install -e ".[webui]"

Sample Code

from indextts.infer import IndexTTS tts = IndexTTS(model_dir="checkpoints",cfg_path="checkpoints/config.yaml") voice="reference_voice.wav" text="大家好,我现在正在bilibili 体验 ai 科技,说实话,来之前我绝对想不到!AI技术已经发展到这样匪夷所思的地步了!比如说,现在正在说话的其实是B站为我现场复刻的数字分身,简直就是平行宇宙的另一个我了。如果大家也想体验更多深入的AIGC功能,可以访问 bilibili studio,相信我,你们也会吃惊的。" tts.infer(voice, text, output_path)

Acknowledge

  1. tortoise-tts
  2. XTTSv2
  3. BigVGAN
  4. wenet
  5. icefall

📚 Citation

🌟 If you find our work helpful, please leave us a star and cite our paper.

@article{deng2025indextts, title={IndexTTS: An Industrial-Level Controllable and Efficient Zero-Shot Text-To-Speech System}, author={Wei Deng, Siyi Zhou, Jingchen Shu, Jinchao Wang, Lu Wang}, journal={arXiv preprint arXiv:2502.05512}, year={2025} }