Model reference · open weights
IndexTTS-2.5 is an open-weight audio or speech model from IndexTeam. IndexTTS-2.5 (BF16) weighs 1.2 GB; the smallest configuration that runs it is RTX 3060 12 GB.
Summary of the IndexTeam/IndexTTS-2.5 model card, 2026-10-01
What it is
| Released by | IndexTeam |
|---|---|
| Released | 2026-08-10 |
| VRAM | 1.2 GB for the weights |
What it runs on
| Card | One stream | Memory |
|---|---|---|
| RTX 3060 12 GB | fits | 11.6 GB |
| RTX 4060 Ti 16 GB | fits | 15.4 GB |
| RTX 3090 24 GB | fits | 23.4 GB |
| RTX 4090 24 GB | fits | 23.4 GB |
| RTX 5090 32 GB | fits | 31.0 GB |
| L40S 48 GB | fits | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
IndexTTS-2.5 is a zero-shot text-to-speech model that clones a voice from a single reference audio clip. It supports Chinese, English, Japanese, Spanish and Arabic, with cross-lingual voice transfer and emotion control disentangled from timbre.
Compared with IndexTTS-2, it adds Japanese, Spanish and Arabic, infers faster, adds speaking speed control, and improves controllability of Chinese Pinyin, English CMU phonemes and Japanese Kana.
Requires Python 3.10–3.11, an NVIDIA GPU, and roughly 6 GB of VRAM for inference.
git clone https://github.com/index-tts/index-tts.git && cd index-tts
pip install -U uv
uv sync --all-extras
# HuggingFace
uv tool install "huggingface-hub"
hf download IndexTeam/IndexTTS-2.5 --local-dir=checkpoints
# or ModelScope
uv tool install "modelscope"
modelscope download --model IndexTeam/IndexTTS-2.5 --local_dir checkpoints
Auxiliary models (w2v-bert-2.0, MaskGCT semantic codec, CAMPPlus, BigVGAN) are not
part of this repository; they are downloaded into checkpoints/hf_cache/ on first run.
from indextts.infer_v2_5 import IndexTTS2
tts = IndexTTS2(cfg_path="checkpoints/config.yaml", model_dir="checkpoints", use_bf16=True)
# Voice cloning
tts.infer(
spk_audio_prompt="prompt.wav",
text="Hello, this is a voice cloning demo.",
lang="EN",
output_path="output.wav",
)
# Emotion control with an 8-float vector, in the order
# [happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]
tts.infer(
spk_audio_prompt="prompt.wav",
text="快躲起来!是他要来了!",
lang="ZH",
output_path="output.wav",
emo_vector=[0, 0, 0.8, 0, 0, 0, 0, 0],
)
# Pronunciation control: Pinyin, CMU phonemes, or Kana in form
tts.infer(
spk_audio_prompt="prompt.wav",
text="他在银里走了半天。",
lang="ZH",
output_path="output.wav",
)
# Speaking speed: >1.0 slows down, <1.0 speeds up (valid range 0.5–2.0)
tts.infer(
spk_audio_prompt="prompt.wav",
text="大家好,欢迎来到IndexTTS。",
lang="ZH",
output_path="output.wav",
duration_factor=1.2,
)
uv run webui.py
use_qwen_emo=True. Passing
use_emo_text=True without it raises at inference time.use_random=True) reduces voice cloning
fidelity.@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},
}
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
How it works