Index-TTS 是哔哩哔哩推出的一款工业级、可控性强的文本转语音(TTS)系统。它基于开源项目 XTTS 和 Tortoise 进行深度优化,融合了类 GPT 的生成式模型架构,能够将文本快速转化为自然、流畅、高保真的语音。
IndexTTS 的优势
对中文文本的处理能力,支持拼音纠正汉字发音,可通过标点符号精准控制停顿,有效解决了多音字和长尾字符的发音问题。
采用混合建模方法,结合汉字和拼音,优化语音生成效果。在性能方面,IndexTTS 的字词错误率(WER)仅为1.3%,扬声器相似性(SS)达到 0.776,主观音质评分(MOS)为 4.01,表现出色。
使用大量数据进行训练,包括 25 万小时的中文音频和 9000 小时的英文音频,确保了音质和音色的高质量。
环境搭建全流程
1. 本教程操作环境
系统:Ubuntu 22.04 LTS
python:3.10
CUDA:12.9
显存:6G
2. 安装步骤
步骤 1:克隆代码库
git clone https://github.com/index-tts/index-tts.git
cd index-tts
步骤 2:创建虚拟环境
使用的是 conda 环境管理工具
conda create -n index-tts python=3.10
conda activate index-tts
步骤 3:安装依赖
pip install -r requirements.txt
# 上面安装依赖慢或者失败可使用下列镜像方式安装
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
apt-get install ffmpeg # 如果本地未安装过的话
步骤 4:模型下载
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
3.运行
测试脚本
mkdir test_data
PYTHONPATH=. python indextts/infer.py
运行脚本前需要新建一个test_data目录并在其目录下上传一个名为input.wav的语音文件作音色样本,也可以使用我这个来测试
最后转换生成的语音文件会保存在目录下的gen.wav文件,默认语音内容为英语,也可以通过修改indextts/infer.py文件中的text值或者output_path参数的文件名称,我这里是直接注释了英文内容,改成转换上句的中英文
网站页面(GUI)
python webui.py --host=0.0.0.0 # 设置host为0.0.0.0后其他机器才能访问,默认是只允许本机访问;如需修改端口则添加port参数,如--port=7861