Views
No views yet
1git clone https://github.com/index-tts/index-tts.git && cd index-tts
2pip install -U uv
3uv sync --all-extras1# HuggingFace
2uv tool install "huggingface-hub"
3hf download IndexTeam/IndexTTS-2.5 --local-dir=checkpoints
4
5# or ModelScope
6uv tool install "modelscope"
7modelscope download --model IndexTeam/IndexTTS-2.5 --local_dir checkpointscheckpoints/hf_cache/ on first run.1from indextts.infer_v2_5 import IndexTTS2
2
3tts = IndexTTS2(cfg_path="checkpoints/config.yaml", model_dir="checkpoints", use_bf16=True)
4
5# Voice cloning
6tts.infer(
7 spk_audio_prompt="prompt.wav",
8 text="Hello, this is a voice cloning demo.",
9 lang="EN",
10 output_path="output.wav",
11)
12
13# Emotion control with an 8-float vector, in the order
14# [happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]
15tts.infer(
16 spk_audio_prompt="prompt.wav",
17 text="快躲起来!是他要来了!",
18 lang="ZH",
19 output_path="output.wav",
20 emo_vector=[0, 0, 0.8, 0, 0, 0, 0, 0],
21)
22
23# Pronunciation control: Pinyin, CMU phonemes, or Kana in <word|reading> form
24tts.infer(
25 spk_audio_prompt="prompt.wav",
26 text="他在银<行|XING2>里<行|HANG2>走了半天。",
27 lang="ZH",
28 output_path="output.wav",
29)
30
31# Speaking speed: >1.0 slows down, <1.0 speeds up (valid range 0.5–2.0)
32tts.infer(
33 spk_audio_prompt="prompt.wav",
34 text="大家好,欢迎来到IndexTTS。",
35 lang="ZH",
36 output_path="output.wav",
37 duration_factor=1.2,
38)uv run webui.pyuse_qwen_emo=True. Passing
use_emo_text=True without it raises at inference time.use_random=True) reduces voice cloning
fidelity.1@misc{li2026indextts25technicalreport,
2 title={IndexTTS 2.5 Technical Report},
3 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},
4 year={2026},
5 eprint={2601.03888},
6 archivePrefix={arXiv},
7 primaryClass={cs.SD},
8 url={https://arxiv.org/abs/2601.03888},
9}