
vits_chinese
中文语音合成更自然,支持流式输出,开箱即用
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1232
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Python 环境(README 未注明具体版本,建议 3.8+)
- pip,可执行 pip install -r requirements.txt
- 可用的 C/C++ 编译环境(monotonic_align 需要 build_ext 编译)
- 推理/训练需要预先下载模型权重;训练建议使用 GPU
安装与启动步骤
-
1获取项目源码
从 GitHub 克隆项目并进入目录,后续所有命令都在项目根目录或 monotonic_align 子目录执行。
git clone https://github.com/PlayVoice/vits_chinese.git cd vits_chinese -
2安装 Python 依赖
在项目根目录安装 requirements.txt 中列出的全部依赖,建议先建虚拟环境避免污染全局环境。
pip install -r requirements.txt -
3编译 MAS 对齐模块
进入 monotonic_align 目录编译对齐模块,这一步会生成 C 扩展,编译失败通常是缺少编译工具链。
cd monotonic_align python setup.py build_ext --inplace -
4准备模型权重
README 未给出权重下载命令,需自行准备 vits_bert_model.pth 等权重文件并放入项目根目录。
-
5无 BERT 推理
使用 no_bert 脚本推理,不走 BERT,牺牲部分自然停顿,适合手机等低计算资源设备。
python vits_infer_no_bert.py --config ./configs/bert_vits.json --model vits_bert_model.pth -
6启动训练
从项目根目录执行训练:先回上层目录,再指定配置文件和实验名 bert_vits 启动 train.py。
cd monotonic_align python setup.py build_ext --inplace cd - python train.py -c configs/bert_vits.json -m bert_vits -
7在线体验
不想本地部署可先用 HuggingFace 在线 demo 试听效果,无需安装任何依赖。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
--config | 是 | 推理与训练使用的配置文件路径 | ./configs/bert_vits.json |
--model | 是 | 推理时加载的模型权重文件路径 | vits_bert_model.pth |
-c(train.py) | 是 | 训练使用的配置文件路径 | configs/bert_vits.json |
-m(train.py) | 是 | 训练实验名,用于标识本次训练输出 | bert_vits |
如何确认成功
推理命令能正常执行并输出合成音频,且音频中无明显杂音或错读,即表示环境与权重加载成功。
常见问题
Q:训练用了 BERT,推理时一定要用 BERT 吗?
A:不需要。可用 vits_infer_no_bert.py 完全不用 BERT 推理,代价是牺牲自然停顿,适配低计算资源设备,如手机。
Q:低资源设备上停顿不自然怎么办?
A:低资源设备通常会分句合成,句子变短后牺牲掉的自然停顿也就没那么明显了。
Q:怎么提升合成质量、减少声音错误?
A:先完成基础模型训练,再添加 loss_kl_r 做 Infer Loss 微调;音频质量差时可给 loss_kl_r 乘一个小于 1 的系数,继续训练时还可尝试冻结 PosteriorEncoder。
Q:为什么项目不升级到 VITS2?
A:VITS2 最重要的改进是用 Transformer 替换 Flow 的 WaveNet 模块,而在 TTS 流式实现中通常需要用纯 CNN 替换 Transformer,因此未升级。
Q:如何节约训练时间?
A:可用小米 K2 社区开源的 AISHELL3 模型(huggingface.co/jackyqs/vits-aishell3-175-chinese)初始化训练权重。
注意事项
- 本项目定位是 TTS 算法学习用途,README 明确说明不适合直接用于生产环境。
- 安装依赖后必须先编译 monotonic_align 中的对齐模块,否则训练无法正常进行。
- README 未提供模型权重的下载命令与存放路径细节,需自行获取权重后按命令中的文件名放置。
- 执行训练前确认 monotonic_align 已编译完成,并回到项目根目录再运行 train.py。
核心亮点
- 引入 BERT 增强语义理解,多音字和韵律表现优于原生 VITS
- 支持 ONNX 流式输出,适合实时交互场景
- 提供完整中文训练流程和预训练模型,上手门槛低
不足之处
- 依赖较多外部组件(如 BERT 模型),部署稍复杂
- 文档/社区待观察
适用场景
- 中文有声书和播客生成
- 智能客服和语音助手实时应答
- 短视频和游戏角色配音
替代项目
MeloTTS、ChatTTS、GPT-SoVITS
下一篇:FunCodec
同类项目推荐
ElevenLabs-Clone
开源
自建语音合成服务,摆脱 ElevenLabs 限制和费用
A self-hosted ElevenLabs clone for text-to-speech, voice conversion, and AI audio ge···
Kani-TTS-Vie
开源
越南语语音合成,3秒推理,轻量模型即用
Fast Vietnamese TTS. 370M params, 3-second inference.
OpenAI-Audiobook-Generator
开源
输入文本,一键生成有声书音频
This project is a web-based application that converts text into audio, primarily foc···
paradee
开源
9MB 小模型,单核 CPU 18 倍速念英文
An 8M-parameter English text-to-speech model distilled from Kokoro-82M. 9 MB, runs 1···
mel-cepstral-distance
开源
算两段语音差多少,客观评估合成质量
A Python library for computing the Mel-Cepstral Distance (Mel-Cepstral Distortion, M···
vst
开源
在DAW里输入文字,直接生成声音,创意音色一键即得
Generate sounds from words. Directly in your DAW.
AceForge
开源
在 Mac 上离线完成 AI 作曲、人声分离和语音合成
AceForge is a local-first AI music workstation for Apple/OSX based on Ace-Step, DeMu···
用 C# 快速接入 ElevenLabs,实现高质量语音合成。
A Non-Official ElevenLabs RESTful API Client for dotnet
breeze-tts
开源
官方 PyTorch 推理,快速把文字变成中文语音
Official PyTorch inference for Breeze TTS 2