IndexTeam/IndexTTS-2.5 · Hugging Face
Log In<br>Sign Up
IndexTTS-2.5
IndexTTS-2.5 is a zero-shot text-to-speech model that clones a voice from a single<br>reference audio clip. It supports Chinese, English, Japanese, Spanish and Arabic ,<br>with cross-lingual voice transfer and emotion control disentangled from timbre.
Compared with IndexTTS-2, it adds Japanese, Spanish and Arabic, infers faster, adds<br>speaking speed control, and improves controllability of Chinese Pinyin, English CMU<br>phonemes and Japanese Kana.
Model Details
Developed by: IndexTeam, Bilibili
Model type: Autoregressive zero-shot TTS — GPT backbone, flow-matching<br>speech-to-mel decoder, BigVGAN vocoder
Parameters: ~0.8B (GPT backbone)
Languages: Chinese, English, Japanese, Spanish, Arabic
Output: 22.05 kHz waveform
License: bilibili Model Use License Agreement
Repository: github.com/index-tts/index-tts
Paper: arXiv:2601.03888
Getting Started
Requires Python 3.10–3.11, an NVIDIA GPU, and roughly 6 GB of VRAM for inference.
Install
git clone https://github.com/index-tts/index-tts.git && cd index-tts<br>pip install -U uv<br>uv sync --all-extras
Download the weights
# HuggingFace<br>uv tool install "huggingface-hub"<br>hf download IndexTeam/IndexTTS-2.5 --local-dir=checkpoints
# or ModelScope<br>uv tool install "modelscope"<br>modelscope download --model IndexTeam/IndexTTS-2.5 --local_dir checkpoints
Auxiliary models (w2v-bert-2.0, MaskGCT semantic codec, CAMPPlus, BigVGAN) are not<br>part of this repository; they are downloaded into checkpoints/hf_cache/ on first run.
Inference
from indextts.infer_v2_5 import IndexTTS2
tts = IndexTTS2(cfg_path="checkpoints/config.yaml", model_dir="checkpoints", use_bf16=True)
# Voice cloning<br>tts.infer(<br>spk_audio_prompt="prompt.wav",<br>text="Hello, this is a voice cloning demo.",<br>lang="EN",<br>output_path="output.wav",
# Emotion control with an 8-float vector, in the order<br># [happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]<br>tts.infer(<br>spk_audio_prompt="prompt.wav",<br>text="快躲起来!是他要来了!",<br>lang="ZH",<br>output_path="output.wav",<br>emo_vector=[0, 0, 0.8, 0, 0, 0, 0, 0],
# Pronunciation control: Pinyin, CMU phonemes, or Kana in form<br>tts.infer(<br>spk_audio_prompt="prompt.wav",<br>text="他在银里走了半天。",<br>lang="ZH",<br>output_path="output.wav",
# Speaking speed: >1.0 slows down,<br>tts.infer(<br>spk_audio_prompt="prompt.wav",<br>text="大家好,欢迎来到IndexTTS。",<br>lang="ZH",<br>output_path="output.wav",<br>duration_factor=1.2,
Web UI
uv run webui.py
Limitations
Long text is split into segments and the pieces are concatenated with a short<br>silence, so prosody is not modelled across a segment boundary.
Emotion control from a text description needs the QwenEmotion model, which is<br>loaded only when IndexTTS2 is constructed with use_qwen_emo=True. Passing<br>use_emo_text=True without it raises at inference time.
Enabling random sampling for emotion (use_random=True) reduces voice cloning<br>fidelity.
The model does not verify that the speaker in a reference clip consented to being<br>cloned. Obtaining that consent is the user's responsibility, and all use is subject<br>to the license terms.
Citation
@misc{li2026indextts25technicalreport,<br>title={IndexTTS 2.5 Technical Report},<br>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},<br>year={2026},<br>eprint={2601.03888},<br>archivePrefix={arXiv},<br>primaryClass={cs.SD},<br>url={https://arxiv.org/abs/2601.03888},
Downloads last month 5,871
Inference Providers NEW
Text-to-Speech
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support
Model tree for IndexTeam/IndexTTS-2.5
Finetunes
4 models
Quantizations
1 model
Spaces using IndexTeam/IndexTTS-2.5 2
Paper for IndexTeam/IndexTTS-2.5<br>Paper • 2601.03888 • Published Jan 7 • 2