项目详情
深入了解 index-tts 的功能与特性
IndexTTS:工业级可控高效零样本文本转语音系统
👉🏻 IndexTTS 👈🏻
[HuggingFace 演示] [ModelScope 演示]
[论文] [示例音频]
IndexTTS 是一款基于 XTTS 和 Tortoise 的 GPT 风格文本转语音 (TTS) 模型。它能够通过拼音纠正汉字发音,并通过标点符号在任意位置控制停顿。我们对系统的多个模块进行了增强,包括改进说话人条件特征表示,以及集成 BigVGAN2 以优化音频质量。经过数万小时数据的训练,我们的系统实现了业界领先的性能,超越了当前流行的 TTS 系统,如 XTTS、CosyVoice2、Fish-Speech 和 F5-TTS。
体验 IndexTTS:请发送邮件至 [email protected] 获取详细信息。
联系我们
QQ群(二群):1048202584
Discord:https://discord.gg/uT32E7KDmy
简历投递:[email protected]
欢迎大家来交流讨论!
📣 最新动态
2025/05/14🔥🔥 发布 IndexTTS-1.5 版本,显著提升模型稳定性及英语表现。2025/03/25🔥 发布 IndexTTS-1.0 模型参数与推理代码。2025/02/12🔥 论文提交至 arXiv,并发布演示示例和测试集。
🖥️ 技术方案
IndexTTS 的整体架构如下所示。
主要改进与贡献总结如下:
- 在中文场景中,我们引入了字符-拼音混合建模方法,可快速纠正发音错误的汉字。
- IndexTTS 整合了 Conformer 条件编码器和基于 BigVGAN2 的语音码解码器,提升了训练稳定性、音色相似度和音质。
- 我们在此公开所有测试集,包括多音节词测试集、主观和客观测试集。
模型下载
| 🤗HuggingFace | ModelScope |
|---|---|
| IndexTTS | IndexTTS |
| 😁IndexTTS-1.5 | IndexTTS-1.5 |
📑 性能评估
IndexTTS 与基线模型在 seed-test 测试集上的词错误率 (WER) 结果
| WER | test_zh | test_en | test_hard |
|---|---|---|---|
| Human | 1.26 | 2.14 | - |
| SeedTTS | 1.002 | 1.945 | 6.243 |
| CosyVoice 2 | 1.45 | 2.57 | 6.83 |
| F5TTS | 1.56 | 1.83 | 8.67 |
| FireRedTTS | 1.51 | 3.82 | 17.45 |
| MaskGCT | 2.27 | 2.62 | 10.27 |
| Spark-TTS | 1.2 | 1.98 | - |
| MegaTTS 3 | 1.36 | 1.82 | - |
| IndexTTS | 0.937 | 1.936 | 6.831 |
| IndexTTS-1.5 | 0.821 | 1.606 | 6.565 |
IndexTTS 与基线模型在其他开源测试集上的词错误率 (WER) 结果
| 模型 | aishell1_test | commonvoice_20_test_zh | commonvoice_20_test_en | librispeech_test_clean | 平均 |
|---|---|---|---|---|---|
| Human | 2.0 | 9.5 | 10.0 | 2.4 | 5.1 |
| CosyVoice 2 | 1.8 | 9.1 | 7.3 | 4.9 | 5.9 |
| F5TTS | 3.9 | 11.7 | 5.4 | 7.8 | 8.2 |
| Fishspeech | 2.4 | 11.4 | 8.8 | 8.0 | 8.3 |
| FireRedTTS | 2.2 | 11.0 | 16.3 | 5.7 | 7.7 |
| XTTS | 3.0 | 11.4 | 7.1 | 3.5 | 6.0 |
| IndexTTS | 1.3 | 7.0 | 5.3 | 2.1 | 3.7 |
| IndexTTS-1.5 | 1.2 | 6.8 | 3.9 | 1.7 | 3.1 |
IndexTTS 与基线模型的说话人相似度 (SS) 结果
| 模型 | aishell1_test | commonvoice_20_test_zh | commonvoice_20_test_en | librispeech_test_clean | 平均 |
|---|---|---|---|---|---|
| Human | 0.846 | 0.809 | 0.820 | 0.858 | 0.836 |
| CosyVoice 2 | 0.796 | 0.743 | 0.742 | 0.837 | 0.788 |
| F5TTS | 0.743 | 0.747 | 0.746 | 0.828 | 0.779 |
| Fishspeech | 0.488 | 0.552 | 0.622 | 0.701 | 0.612 |
| FireRedTTS | 0.579 | 0.593 | 0.587 | 0.698 | 0.631 |
| XTTS | 0.573 | 0.586 | 0.648 | 0.761 | 0.663 |
| IndexTTS | 0.744 | 0.742 | 0.758 | 0.823 | 0.776 |
| IndexTTS-1.5 | 0.741 | 0.722 | 0.753 | 0.819 | 0.771 |
零样本克隆语音的平均意见得分 (MOS)
| 模型 | 韵律 | 音色 | 音质 | 平均 |
|---|---|---|---|---|
| CosyVoice 2 | 3.67 | 4.05 | 3.73 | 3.81 |
| F5TTS | 3.56 | 3.88 | 3.56 | 3.66 |
| Fishspeech | 3.40 | 3.63 | 3.69 | 3.57 |
| FireRedTTS | 3.79 | 3.72 | 3.60 | 3.70 |
| XTTS | 3.23 | 2.99 | 3.10 | 3.11 |
| IndexTTS | 3.79 | 4.20 | 4.05 | 4.01 |
使用说明
环境配置
- 下载本仓库:
git clone https://github.com/index-tts/index-tts.git
- 安装依赖:
创建新的 conda 环境并安装依赖:
conda create -n index-tts python=3.10
conda activate index-tts
apt-get install ffmpeg
# 或使用 conda 安装 ffmpeg
conda install -c conda-forge ffmpeg
安装 PyTorch,例如:
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118
[!注意] Windows 用户在安装
pynini时可能会遇到 错误:ERROR: Failed building wheel for pynini此时请通过conda安装pynini:bash# 在 conda activate index-tts 之后执行 conda install -c conda-forge pynini==2.1.6 pip install WeTextProcessing --no-deps
将 IndexTTS 作为包安装:
cd index-tts
pip install -e .
- 下载模型:
通过 huggingface-cli 下载:
huggingface-cli download IndexTeam/IndexTTS-1.5 \
config.yaml bigvgan_discriminator.pth bigvgan_generator.pth bpe.model dvae.pth gpt.pth unigram_12000.vocab \
--local-dir checkpoints
国内用户推荐使用镜像加速下载:
export HF_ENDPOINT="https://hf-mirror.com"
或通过 wget 下载:
wget https://huggingface.co/IndexTeam/IndexTTS-1.5/resolve/main/bigvgan_discriminator.pth -P checkpoints
wget https://huggingface.co/IndexTeam/IndexTTS-1.5/resolve/main/bigvgan_generator.pth -P checkpoints
wget https://huggingface.co/IndexTeam/IndexTTS-1.5/resolve/main/bpe.model -P checkpoints
wget https://huggingface.co/IndexTeam/IndexTTS-1.5/resolve/main/dvae.pth -P checkpoints
wget https://huggingface.co/IndexTeam/IndexTTS-1.5/resolve/main/gpt.pth -P checkpoints
wget https://huggingface.co/IndexTeam/IndexTTS-1.5/resolve/main/unigram_12000.vocab -P checkpoints
wget https://huggingface.co/IndexTeam/IndexTTS-1.5/resolve/main/config.yaml -P checkpoints
[!注意] 如需使用
IndexTTS-1.0模型,请将上述命令中的IndexTeam/IndexTTS-1.5替换为IndexTeam/IndexTTS。
- 运行测试脚本:
# 请将提示音频放入 'test_data' 文件夹并重命名为 'input.wav'
python indextts/infer.py
- 作为命令行工具使用:
# 运行此命令前请确保已安装 pytorch
indextts "大家好,我现在正在bilibili 体验 ai 科技,说实话,来之前我绝对想不到!AI技术已经发展到这样匪夷所思的地步了!" \
--voice reference_voice.wav \
--model_dir checkpoints \
--config checkpoints/config.yaml \
--output output.wav
使用 --help 查看更多选项。
indextts --help
Web 演示界面
pip install -e ".[webui]" --no-build-isolation
python webui.py
# 使用其他模型版本:
python webui.py --model_dir IndexTTS-1.5
打开浏览器访问 http://127.0.0.1:7860 查看演示界面。
示例代码
from indextts.infer import IndexTTS
tts = IndexTTS(model_dir="checkpoints",cfg_path="checkpoints/config.yaml")
voice="reference_voice.wav"
text="大家好,我现在正在bilibili 体验 ai 科技,说实话,来之前我绝对想不到!AI技术已经发展到这样匪夷所思的地步了!比如说,现在正在说话的其实是B站为我现场复刻的数字分身,简直就是平行宇宙的另一个我了。如果大家也想体验更多深入的AIGC功能,可以访问 bilibili studio,相信我,你们也会吃惊的。"
tts.infer(voice, text, output_path)