魔搭开源IndexTTS 2.5:零样本语音克隆+多语言情绪控制

近期一款零样本语音复刻模型完成重磅升级,在多个核心指标上实现了全面突破:A10环境下推理提速约2.28倍,五语言零样本场景下词错误率(WER)为6.00%,平均说话人相似度达到73.63,跨语言情感迁移的MOS评分达到4.18/5。这款模型就是IndexTTS 2.5,由开源语音团队在技术社区开源发布。
IndexTTS系列此前凭借情感与音色解耦的核心优势,在创作者群体中获得了广泛关注,尤其适合有声书制作、视频配音等场景。但在迭代过程中,团队收到了大量用户反馈,其中最集中的两个问题分别是:语种覆盖仅支持中英,无法满足多语言创作需求;推理速度偏慢,在实时交互场景中等待时间较长。
针对这些反馈,IndexTTS 2.5做了系统性的升级,同时新增了语速控制能力,具体升级方向包括:
- 跨语种情感复刻优化,进一步打磨情绪韵律表现与音色还原效果,整体稳定性大幅提升
- 多语言覆盖升级,一站式支持中文、英语、日语、西班牙语、阿拉伯语五大语种
- 推理架构轻量化重构,有效提升运行效率,实现更快更轻的生成体验
- 开放语速控制能力,满足多样化的创作节奏需求
当前主流的零样本TTS技术路线,一般是先由语言模型生成承载发音和韵律的语义token,再通过流匹配模块还原声学细节,最后经声码器输出完整音频波形。IndexTTS 2.5沿用了IndexTTS 2验证过的成熟路线,将研发重点放在四个关键升级点上。
多语言支持的技术突破
做多语言TTS最棘手的问题之一,是跨语言共享字符的识别歧义。比如日语中大量使用的汉字,模型需要准确判断应该按照中文发音还是日语发音来处理。为此团队设计并对比了三种主流的建模策略,完整的对比结论已经整理进技术报告,可为同类多语言系统开发提供参考。
为了支撑多语言模型的训练,团队搭建了一套自动化的数据处理管线,包括带事件分类的VAD切分、一体化ASR识别、选择性音源分离、基于说话人一致性的片段合并,以及音频和文本双重质量过滤。最终累计收集了约15万小时的多语言语料,外加135小时的情感语音数据集。
推理效率的双重优化
为了提升推理速度,团队打出了两套组合拳:
- 将语义Codec的帧率从50Hz降低到25Hz,直接将语义token的序列长度减半,大幅降低训练和推理的计算量与显存占用,同时几乎保留了全部语言信息
- 将S2M模块的主干网络从U-DiT替换为Zipformer,在参数更少的前提下实现更快的生成速度。更有意思的是,主观盲测结果显示,Zipformer版本的生成效果获得了56%的用户偏好率,优于更复杂的U-DiT版本
在相同的A10硬件环境下,这套优化方案让T2S模块的RTF从0.232降至0.119,S2M模块的RTF从0.078降至0.017,整体推理速度提升约2.28倍,且主观听感没有可感知的下降,让实时交互场景下的使用体验从“能用”升级到了“好用”。
模型自我进化的后训练优化
团队将GRPO强化学习引入了T2S模块的后训练阶段:针对同一段文本,让模型随机生成4个候选语音,通过ASR词错误率和说话人相似度作为评价标准,让模型自主朝着“发音准确、音色还原”的方向进化。
这套优化带来了实打实的性能提升:五语言的平均WER从6.75%降至6.00%,平均说话人相似度从73.18提升到73.63,其中英语、日语、阿拉伯语的提升尤为明显。
核心性能表现
在零样本语音克隆任务中,IndexTTS 2.5在五种语言的评测中平均说话人相似度最高,仅WER略低于同类大模型,整体处于第一梯队。
在跨语言合成测试中,使用一段中文语音作为音色参考,让该音色开口说英、日、西、阿语,IndexTTS 2.5的综合成绩位列全场最佳。
情感迁移能力方面,模型仅使用中文和英文数据进行情感训练,却可以将情绪迁移到所有支持的语种中:阿拉伯语的情感测试MOS评分达到4.18/5;在CV3-Eval情感零样本基准测试中,中文情感识别准确率达到0.713,远高于同类竞品。简单来说,用户只需要提供一段带有特定情绪的中文语音,就能让其他语言的音色复刻出完全一致的情感,实现了情感、音色与语种的有效解耦。
本地部署与使用方法
IndexTTS 2.5已在技术社区开源,除了可以在线体验外,也支持在本地GPU环境部署运行,具体步骤如下:
1. 克隆仓库并安装依赖
git clone https://github.com/index-tts/index-tts.git && cd index-tts pip install -U uv uv sync --all-extras
2. 下载模型权重
pip install modelscope modelscope download --model IndexTeam/IndexTTS-2.5 --local_dir checkpoints
首次运行时,w2v-bert-2.0、MaskGCT semantic codec、CAMPPlus、BigVGAN等辅助模型会自动下载到checkpoints/hf_cache/目录。
3. 推理调用
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="prompt.wav",
text="Hello, this is a voice cloning demo.",
lang="EN",
output_path="output.wav",
)
# 情绪控制:emo_vector 依次对应 [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],
)
# 语速控制(duration_factor 取值范围 0.5–2.0)
tts.infer(
spk_audio_prompt="prompt.wav",
text="大家好,欢迎来到IndexTTS。",
lang="ZH",
output_path="output.wav",
duration_factor=1.2,
)
也可以启动Web UI进行交互式体验:
uv run webui.py
写在最后
从IndexTTS 1到2再到2.5,这个系列的每一次迭代都离不开社区用户的关注和反馈。IndexTTS 2.5希望让“用任意音色、任意语言、携带任意情绪进行语音合成”这件事,离每一位创作者更近一步。团队也欢迎开发者在技术社区的模型页面体验产品,并分享使用场景和建议,每一条反馈都将成为下一次版本升级的重要参考。

