Bert-VITS2:当多语言 BERT 遇上 VITS2,中文 TTS 的另一种可能
vits2 backbone with multilingual-bert
秒懂
- 它是什么?
- fishaudio 的 Bert-VITS2 用多语言 BERT 替换音素编码器,为中文语音合成带来了更自然的韵律。项目已停止维护,官方推荐迁移到 Fish-Speech,但它的技术路线仍值得了解。
- 适合谁用?
- Bert-VITS2 适合两类人:一是想复现或研究多语言 BERT 与 VITS2 结合效果的研究者,二是需要中文或日文定制音色、且愿意自己处理数据与训练的爱好者。不适合生产环境使用者,因为项目已停止维护,官方明确推荐 Fish-Speech 作为替代。
- 能商用吗?
- 可以,但条件严格。AGPL-3.0 是网络 copyleft 许可证:如果别人通过网络使用你修改过的版本(例如作为托管服务),你必须以同一许可证向他们提供源代码。
- 还在维护吗?
- 在维护。仓库最近一次提交在 1 天前。
- 用什么语言写的?
- 主要是 Python(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
一个被官方放弃的 TTS 项目,为什么还要看
Bert-VITS2 的 README 第一段就写着:FishAudio 旗下的 Fish-Speech 已可用,效果是开源 SOTA,且持续维护,推荐作为 Bert-VITS2 和 GSV 的替代。项目短期内不再维护。这意味着你读到的不是一篇新工具推荐,而是一次技术回顾。Bert-VITS2 的价值在于它把多语言 BERT 引入 VITS2 骨架,解决的是传统 TTS 中文本表征单一、韵律生硬的问题。它面向的是愿意阅读代码、自己训练模型的开发者,而不是拿来即用的终端用户。README 里那句“成熟的旅行者应当参阅代码自己学习如何训练”虽然语气戏谑,但点明了门槛:这不是一个开箱即用的软件。
从 MassTTS 到 VITS2:技术路线的取舍
项目核心思路来源于 anyvoiceai/MassTTS。作者在 README 中说明,自己尝试 MassTTS 后发现其音质与 VITS 有差距,且训练 pipeline 更复杂,因此按照 MassTTS 的思路,将 BERT 融入 VITS 架构。VITS 是端到端 TTS,用对抗训练和变分推断直接生成波形。VITS2 改进了对齐和时长预测。Bert-VITS2 的做法是在文本编码端引入预训练的多语言 BERT,让模型理解上下文语义,而不是只依赖音素序列。这个取舍很直接:用更大的模型换更好的韵律,代价是推理速度和资源占用。它没有自回归解码器,一次前向即可生成语音,这与后来 Fish-Speech 的自回归路线形成鲜明对比。
多语言 BERT 在管线中的位置
从仓库结构和引用列表看,Bert-VITS2 的文本前端会先经过 BERT 提取特征,再与音素嵌入融合,送入 VITS2 的编码器。多语言 BERT 意味着同一套模型可以处理中文、日文等语言,这也是发布版本里有 JP-Exta(日文特化版)和 Extra(中文特化版)的原因。中文特化版修复了某些发音问题,日文版则针对日语音素做了调整。这种语言特化策略说明,通用多语言 BERT 并不足够,需要针对目标语言微调 BERT 或修改文本前端。README 没有给出详细的模型结构图,但引用了 p0p4k/vits2_pytorch 和 jaywalnut310/vits,说明骨架来自这两个项目,BERT 部分则是从 MassTTS 借鉴思路后自行实现。
快速上手:从 webui_preprocess.py 开始
README 反复强调,快速指南请参阅 webui_preprocess.py。这是唯一的入口提示。文件名的 webui 暗示预处理可能带有图形界面,但仓库中没有更多说明。训练流程大概率是:准备音频和文本标注,运行预处理脚本生成 BERT 特征和音素对齐,然后训练 VITS2 模型。具体命令和配置键在 README 中完全缺失,只能靠阅读源码推断。这本身就是一个门槛。如果你不熟悉 VITS 系列的数据格式,恐怕要花不少时间在数据清洗上。对于只想合成语音的人,这个项目不是好选择,因为连基本的启动命令都没有写清楚。
许可与法律边界:AGPL-3.0 不是摆设
项目采用 AGPL-3.0 许可证。这意味着如果你修改代码并提供网络服务,必须开源整个服务端代码。对个人学习和研究影响不大,但对企业内部使用或商用有实际约束。README 还列出了严厉的使用禁令:严禁用于违反中国宪法、刑法等用途,严禁用于任何政治相关用途。这些条款是项目方的声明,不是许可证的一部分,但作为使用者应当尊重。如果你是做语音合成产品,AGPL-3.0 可能与你公司的闭源策略冲突。这是采用前必须确认的合规问题,而不是技术问题。
维护状态:一个明确的停止信号
仓库最后推送时间是 2026 年 9 月,但 README 明确说短期内不再维护。最近发布的版本停留在 2024 年 2 月的 JP-Exta,之后没有新功能。对比之下,Fish-Speech 被官方描述为持续维护且效果是开源 SOTA。这种对比是项目方自己给出的,不是外部评价。如果你要选型,停止维护意味着安全漏洞无人修复,新硬件兼容性无人保证,社区提问可能得不到回应。对于 TTS 这类依赖 GPU 和 CUDA 生态的项目,长期不维护会导致环境适配越来越困难。这不是危言耸听,而是客观现实。
替代方案:Fish-Speech 的自回归路线
官方推荐的替代是 Fish-Speech,同样是 fishaudio 旗下项目。两者技术路线有本质差异。Bert-VITS2 基于 VITS2,是并行生成,一次前向得到全部波形,速度更快。Fish-Speech 是自回归 TTS,逐 token 生成音频,通常能产生更自然的长句韵律,但推理延迟更高。README 中作者提到 MassTTS 的音质与 VITS 有差距,这暗示自回归模型在音质上有优势,只是训练复杂。Fish-Speech 的定位是替代 Bert-VITS2 和 GSV,说明它在效果上得到作者认可。如果你追求当前最佳开源效果,Fish-Speech 是明确选择。但如果你需要并行生成的低延迟,Bert-VITS2 的架构仍有参考价值,只是要自己承担维护成本。
编辑结论
Bert-VITS2 适合两类人:一是想复现或研究多语言 BERT 与 VITS2 结合效果的研究者,二是需要中文或日文定制音色、且愿意自己处理数据与训练的爱好者。不适合生产环境使用者,因为项目已停止维护,官方明确推荐 Fish-Speech 作为替代。若你仍想尝试,先确认自己能接受 AGPL-3.0 的传染性,并准备好从 webui_preprocess.py 开始学习数据预处理,而不是期待一键部署。
社区笔记