vits_chinese

中文语音合成更自然,支持流式输出,开箱即用

vits_chinese 是一个基于 BERT 和 VITS 的中文语音合成(TTS)最佳实践项目,融合了微软自然语音的某些特性,并支持 ONNX 流式输出。它解决了中文 TTS 中韵律不自然、多音字发音不准等问题,通过引入 BERT 增强语义理解,提升合成语音的自然度和表现力。项目提供完整的训练和推理流程,支持多说话人、情感控制等高级功能,并针对中文发音规则进行了优化。核心能力包括:基于 BERT 的韵律预测、VITS 的高质量声学模型、ONNX 流式推理,以及丰富的预训练模型和工具链。

开源 free 音频音乐
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1228
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类音频音乐
开发团队PlayVoice
所属国家
官网地址
定价模式free
价格说明开源项目,MIT许可证,完全免费,需自行部署使用
访问状态
是否开源是
开源协议MIT
主要语言Python
技术栈/模型aishell3,bert,bert-vits,bert-vits2,naturalspeech,tts,vits
GitHub 星标★ 1228
30天Star增速
HF 下载量
上线时间2021-09-27 00:00:00
最近更新2026-09-04 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:进阶 约 20 分钟 部署方式:本地安装 7 步

环境要求

  • Python 环境(README 未注明具体版本,建议 3.8+)
  • pip,可执行 pip install -r requirements.txt
  • 可用的 C/C++ 编译环境(monotonic_align 需要 build_ext 编译)
  • 推理/训练需要预先下载模型权重;训练建议使用 GPU

安装与启动步骤

  1. 1获取项目源码

    从 GitHub 克隆项目并进入目录,后续所有命令都在项目根目录或 monotonic_align 子目录执行。

    git clone https://github.com/PlayVoice/vits_chinese.git
    cd vits_chinese
  2. 2安装 Python 依赖

    在项目根目录安装 requirements.txt 中列出的全部依赖,建议先建虚拟环境避免污染全局环境。

    pip install -r requirements.txt
  3. 3编译 MAS 对齐模块

    进入 monotonic_align 目录编译对齐模块,这一步会生成 C 扩展,编译失败通常是缺少编译工具链。

    cd monotonic_align
    python setup.py build_ext --inplace
  4. 4准备模型权重

    README 未给出权重下载命令,需自行准备 vits_bert_model.pth 等权重文件并放入项目根目录。

  5. 5无 BERT 推理

    使用 no_bert 脚本推理,不走 BERT,牺牲部分自然停顿,适合手机等低计算资源设备。

    python vits_infer_no_bert.py --config ./configs/bert_vits.json --model vits_bert_model.pth
  6. 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. 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

项目介绍

vits_chinese 是音频音乐领域的开源项目,由 PlayVoice 开发,2021 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,228)位列前 30%,在音频音乐分类的 738 个项目里位列前 15%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-04。MIT许可证,完全免费,需自行部署使用。

它主要面向的使用场景是:中文有声书和播客生成。同类可对比的替代方案包括 MeloTTS、ChatTTS、GPT-SoVITS。

上一篇:chattts-seed-example

下一篇:FunCodec

同类项目推荐

tango 开源

输入一句话,自动生成匹配的音频内容

A family of diffusion models for text-to-audio generation.

★ 1239 2026-08-09
AuK 开源

一个模型搞定语音生成、编辑与分离

AuK: An Open-Source Foundational Model for Speech Generation and Editing

★ 1236 2026-09-13
swift-tts 开源

Swift 项目三行代码接入系统 TTS,兼容 TCA 和 Combine

A straightforward package containing version for Swift modern concurrency, Point-Fre···

★ 52 2026-08-09
ai-dj 开源

现场演出中实时用 AI 生成音乐,保持人类掌控

AI music generation for live performance - Standalone (Ableton Link) + VST3/AU. 8 tr···

★ 246 2026-08-09