IndexTTS-2.5:生产级零样本 TTS,一段参考音频克隆音色 + 细粒度情感与语速控制

index-tts-25-production-tts-voice-clone-emotion-multilingual

Tech-News #TTS#语音合成#零样本#情感控制#开源#Python#多语言#Mycelium
更新于
🇨🇳 中文

by Mycelium Protocol


一段参考音频,文字进去,带有相同音色的语音出来——这是零样本 TTS 的核心承诺。IndexTTS 把这件事从演示级推向了生产级:22,000+ stars,活跃的版本迭代,以及正式的 vLLM 生产部署支持。

2026 年 8 月 10 日,IndexTTS-2.5 正式发布。

GitHub: https://github.com/index-tts/index-tts | ⭐ 22,615 | Python
HuggingFace: IndexTeam/IndexTTS-2.5 | arxiv: 2601.03888


核心能力:三件事

IndexTTS-2.5 的核心围绕三个轴展开:音色克隆、情感控制、发音控制。


音色克隆:一段音频搞定

零样本音色克隆是 IndexTTS 的基础能力——不需要训练,不需要大量数据,给一段参考音频就能把音色迁移到任意文本:

from indextts.infer_v2_5 import IndexTTS2
tts = IndexTTS2(cfg_path="checkpoints/config.yaml", model_dir="checkpoints", use_bf16=True)

# 音色来自参考音频,文本用任意语言
tts.infer(
    spk_audio_prompt='voice.wav',   # 参考音频(提供音色)
    text="Hello world.",
    lang="EN",                       # ZH / EN / JA / ES / AR
    output_path="gen.wav"
)

跨语言支持:中文、英文、日语、西班牙语、阿拉伯语。跨语言音色保持——用中文参考音频生成英文,音色仍然一致。


情感控制:四种方式

IndexTTS-2.5 提供了四种粒度不同的情感控制方式,可以混合使用。

情感由 8 个维度组成:[愉快, 愤怒, 悲伤, 恐惧, 厌恶, 忧郁, 惊讶, 平静]

方式 1:情感参考音频

最直观的方式。给一段情绪化的参考音频,让模型从中提取情感:

tts.infer(
    spk_audio_prompt='voice.wav',    # 音色来源
    emo_audio_prompt='emo_sad.wav',  # 情感来源(独立于音色)
    emo_alpha=0.9,                   # 情感强度,0.0–1.0,默认 1.0
    text="酒楼丧尽天良,开始借机竞拍房间。",
    lang="ZH",
    output_path="gen.wav"
)

emo_alpha 控制情感强度,0 = 不受情感音频影响,1 = 完全按情感音频的情绪输出。

方式 2:8 维情感向量

直接用数字指定每个情感维度的强度:

tts.infer(
    spk_audio_prompt='voice.wav',
    emo_vector=[0, 0, 0.8, 0, 0, 0, 0, 0],  # 悲伤强度 0.8
    text="对不起,我的记性真的不太好。",
    lang="ZH",
    output_path="gen.wav"
)

顺序固定:[happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]。

方式 3:从文本内容自动推断情感

让模型从文本本身推断情感,需要 Qwen 情感理解模块:

tts = IndexTTS2(..., use_qwen_emo=True)  # 初始化时开启

tts.infer(
    spk_audio_prompt='voice.wav',
    text="快躲起来!是他要来了!",
    lang="ZH",
    use_emo_text=True,
    emo_alpha=0.6,    # 推荐用较低强度,更自然
    output_path="gen.wav"
)

方式 4:显式情感描述文本

文本和情感描述分开,让模型用情感描述来生成语音:

tts.infer(
    spk_audio_prompt='voice.wav',
    text="快躲起来!是他要来了!",
    emo_text="你吓死我了!你是鬼吗?",  # 情感描述,独立于台词
    lang="ZH",
    use_emo_text=True,
    emo_alpha=0.6,
    output_path="gen.wav"
)

语速控制

duration_factor 控制语速,大于 1 变慢,小于 1 变快:

# 慢速(1.2× 时长 = 语速降低约 20%)
tts.infer(..., duration_factor=1.2, output_path="slow.wav")

# 快速(0.8× 时长 = 语速加快约 25%)
tts.infer(..., duration_factor=0.8, output_path="fast.wav")

有效范围:0.5–2.0。


发音控制:拼音 / CMU 音素 / 日语假名

对多音字、专业术语、外来词,IndexTTS-2.5 支持在文本里内联标注精确发音。

中文拼音(多音字控制):

他在银<行|XING2>里<行|HANG2>走了半天,发现这笔业务办不<行|HANG2>。

英文 CMU 音素(专业词汇精确发音):

He had a <minute|M IH1 . N AH0 T> to examine the <minute|M AY0 . N UW1 T> details.

日语假名(汉字多读音控制):

彼は料理が<上手|じょうず>だが、囲碁では<上手|うわて>に負けた。

安装与启动

git clone https://github.com/index-tts/index-tts.git && cd index-tts

# 安装(uv 自动管理 Python 版本和所有依赖)
pip install -U uv
uv sync --all-extras

# 下载模型
hf download IndexTeam/IndexTTS-2.5 --local-dir=checkpoints

# 启动 WebUI(localhost:7860)
uv run webui.py

推理脚本:

PYTHONPATH="$PYTHONPATH:." uv run indextts/infer_v2_5.py \
  --cfg_path checkpoints/config.yaml \
  --model_dir checkpoints \
  --text "Hello world" \
  --lang EN

BF16 推理(2.5 版本默认,降低显存占用,质量损失极小)。
DeepSpeed(可选,部分硬件上会加速,需要实测)。
FP8/BF16 推理:国内镜像:uv sync --default-index "https://hf-mirror.com"


生产部署:vLLM

IndexTTS-2.5 正式支持 vLLM 生产部署,见 vLLM recipe for IndexTTS。


版本演进

版本时间关键能力
IndexTTS 1.02025-03零样本 TTS,基础版
IndexTTS 1.52025-05英文稳定性大幅提升
IndexTTS 22025-09首个自回归 TTS + 精确时长控制 + 情感控制
IndexTTS 2.52026-08五语言 + 语速控制 + 发音标注改进 + 推理提速 + vLLM

Mycelium Protocol — 追踪 AI 系统的底层演化


关于 Mycelium

菌丝协议。持续追踪 AI 工具、系统和实验的内容节点。


🇬🇧 English

IndexTTS-2.5: Production-Grade Zero-Shot TTS with Fine-Grained Emotion and Speed Control

by Mycelium Protocol


One reference audio clip. Text goes in. Speech in the same voice comes out. That’s the zero-shot TTS promise. IndexTTS has taken this from demo-quality to production-grade: 22,000+ stars, active versioning, and now vLLM deployment support.

On August 10, 2026, IndexTTS-2.5 was released.

GitHub: https://github.com/index-tts/index-tts | ⭐ 22,615 | Python
HuggingFace: IndexTeam/IndexTTS-2.5 | arxiv: 2601.03888


Core Capabilities: Three Axes

IndexTTS-2.5 centers on three axes: voice cloning, emotion control, and pronunciation control.


Voice Cloning: One Audio Clip

Zero-shot voice cloning is the foundation — no training, no dataset, just a reference audio:

from indextts.infer_v2_5 import IndexTTS2
tts = IndexTTS2(cfg_path="checkpoints/config.yaml", model_dir="checkpoints", use_bf16=True)

tts.infer(
    spk_audio_prompt='voice.wav',
    text="Hello world.",
    lang="EN",                       # ZH / EN / JA / ES / AR
    output_path="gen.wav"
)

Languages: Chinese, English, Japanese, Spanish, Arabic. Cross-lingual voice preservation — clone a Chinese voice and generate English, the timbre carries over.


Emotion Control: Four Modes

The 8-dimension emotion space: [happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]

Mode 1 — Emotion reference audio: provide a separate emotional audio clip; emo_alpha (0.0–1.0) controls how strongly it affects the output.

tts.infer(
    spk_audio_prompt='voice.wav',
    emo_audio_prompt='emo_sad.wav',
    emo_alpha=0.9,
    text="...", lang="ZH", output_path="gen.wav"
)

Mode 2 — 8-float emotion vector: specify each dimension directly.

tts.infer(
    spk_audio_prompt='voice.wav',
    emo_vector=[0, 0, 0.8, 0, 0, 0, 0, 0],  # sad=0.8
    text="...", lang="ZH", output_path="gen.wav"
)

Mode 3 — Text-derived emotion (use_emo_text=True): the model infers emotion from the script itself. Requires use_qwen_emo=True at initialization. Recommended emo_alpha ≈ 0.6 for naturalness.

Mode 4 — Explicit emotion description (emo_text): provide a separate description of the desired emotion, independent of the speech script.


Speaking Speed Control

tts.infer(..., duration_factor=1.2, ...)  # slower (~20%)
tts.infer(..., duration_factor=0.8, ...)  # faster (~25%)

Valid range: 0.5×–2.0×. Default: 1.0.


Pronunciation Control

Inline annotations directly in the text:

Chinese Pinyin (polyphone disambiguation):

他在银<行|XING2>里<行|HANG2>走了半天,发现这笔业务办不<行|HANG2>。

English CMU phonemes (technical terms, loanwords):

He had a <minute|M IH1 . N AH0 T> to examine the <minute|M AY0 . N UW1 T> details.

Japanese Kana (kanji multiple readings):

彼は料理が<上手|じょうず>だが、囲碁では<上手|うわて>に負けた。

Install and Run

git clone https://github.com/index-tts/index-tts.git && cd index-tts

pip install -U uv
uv sync --all-extras

# Download weights
hf download IndexTeam/IndexTTS-2.5 --local-dir=checkpoints

# WebUI at localhost:7860
uv run webui.py

CLI inference:

PYTHONPATH="$PYTHONPATH:." uv run indextts/infer_v2_5.py \
  --cfg_path checkpoints/config.yaml \
  --model_dir checkpoints \
  --text "Hello world" \
  --lang EN

BF16 inference is the default for 2.5 — lower VRAM, minimal quality loss. DeepSpeed is optional; test on your hardware.


Production Deployment

IndexTTS-2.5 supports production deployment via vLLM.


Version History

VersionDateKey additions
1.02025-03Initial zero-shot TTS
1.52025-05English stability improvements
22025-09Autoregressive architecture + duration control + emotion control
2.52026-085 languages + speed control + pronunciation improvements + faster inference + vLLM

Mycelium Protocol — tracking the deep evolution of AI systems

© 2026 Mycelium Protocol. All rights reserved.

💬 评论与讨论

使用 GitHub 账号登录后发表评论

关于本站 · 免责声明

🍄 Mushroom Research Blog 是非营利、免费公开的个人科技观察博客与公众号 XStack18,不接受商业合作、不代表任何企业或机构立场,也不谋求商业利益。我们以个人视角客观中立地记录和分析 AI、Web3 等领域的最新模型发布与技术动态——不止转述新闻标题或二手信息,而是给出有独立思考的深入分析,希望帮更多人获得有价值的一手科技认知。

⚠️ 文中介绍的开源代码与模型,仅供学习交流与技术借鉴。它们大多仍处于早期阶段,有待进一步研究和验证,请勿直接用于工作或生产环境;如需采用,请先自行充分测试,并核实其许可证与安全性。
Open-source code and models featured here are shared for learning and reference only. Most are early-stage and still need further study and verification — please don't use them directly in your work or in production. Test them thoroughly and check their licenses and security first.

  1. 本站文章均为作者基于公开信息的个人研究与观点整理,不代表文中提及的任何公司、产品、模型的官方立场,未与其构成商业关联或合作关系。
  2. 科技行业信息更新极快,我们尽力保证内容准确、及时,但不对完整性、实时性做绝对保证,具体请以相关企业/项目官方公告为准。
  3. 文中引用的第三方商标、产品名称、图片、数据等版权归原权利人所有,我们会尽量注明来源;如你认为存在版权疑问或侵权,请通过下方邮箱联系我们,收到通知后会尽快核实处理(更正、加注来源或删除)。
  4. 文章内容仅为技术科普与个人观点,不构成投资、法律或其他专业建议,据此进行任何决策的后果需自行判断和承担。

📮 侵权 / 勘误 / 合作咨询:hello@mushroom.cv