EchoraEchora
返回模型列表

VITS:悄然支撑开源 TTS 生态相当大一部分的架构

2026年9月9日
•
8 分钟阅读

把文字和录音,做成能听的作品

配音、分轨、翻唱和音效,都在浏览器里完成。

  • 文字转语音,也能克隆音色
  • 分离音轨,或直接生成翻唱
  • 注册就能试听,先听再决定
免费开始创作

许多知名的开源语音模型其实拥有同一个祖先,只是大多数用户从未意识到这一点——Piper 的 ONNX 音色、MeloTTS 的多语言骨干、YourTTS 的说话人条件克隆,以及 GPT-SoVITS 中的 SoVITS 部分,全都直接构建在本文介绍的架构之上。VITS 是经典的端到端 TTS 系统,它证明了单阶段、并行生成模型确实能够达到旧式两阶段管线的质量——正因如此,如今开源 TTS 生态中相当大一部分仍然可以追溯到它。

什么是 VITS?

VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech,面向端到端文本转语音的对抗学习变分推断)由 Kakao Enterprise 的 Jaehyeon Kim、Jungil Kong 和 Juhee Son 提出,并发表于 ICML 2021。它是一种端到端语音合成模型,能够在单一阶段根据输入文本序列直接预测波形,并采用 MIT 许可证发布。在 VITS 之前,已经存在能够进行单阶段训练和并行采样的端到端模型,但其输出质量始终不及两阶段系统——也就是由单独训练的声学模型连接另一个单独训练的声码器。VITS 直接弥合了这一差距;其官方评估表明,在 LJSpeech 数据集上,它的平均意见分得分超过了当时最强的公开两阶段模型。

VITS 的功能优势

  • 真正的端到端。 输入文本,输出波形,无需管理单独训练的声码器阶段——相比它所要超越的两阶段管线,这在架构上是真正的简化。
  • 并行、非自回归生成。 VITS 不会按顺序逐个生成音频 token,因此与自回归替代方案相比,推理速度更快。
  • 随机时长预测器。 同一段输入文本在不同生成中可以呈现不同但都合理的节奏和语速,而不是始终得到完全相同的确定性结果。
  • 可与两阶段系统竞争的质量,已通过单说话人(LJSpeech)和多说话人(VCTK)基准上的平均意见分评估验证。
  • 原生多说话人支持,通过说话人嵌入实现,无需为多说话人场景采用根本不同的架构。
  • 宽松的 MIT 许可证,再加上它在该领域足够广泛的影响力,使其成为许多后来项目直接构建其上的基础,而不必从头设计自己的声学架构。

深入架构:条件 VAE

VITS 的结构是一个条件变分自编码器,由三个相互协作的部分组成:后验编码器、解码器和条件先验。条件先验中,基于 Transformer 的文本编码器与一组归一化流耦合层协同工作,根据输入文本建模基于频谱图的声学特征。随后,解码器通过一组转置卷积层重建实际波形;它遵循与 HiFi-GAN 声码器相似的设计理念,而不是要求将 HiFi-GAN 作为一个真正独立的下游阶段。

让这一组合发挥出如此良好效果的关键在于训练方法:由归一化流增强的变分推断,与借鉴自 GAN 类方法的对抗训练过程相结合,共同将底层生成模型的表达能力提升到标准 VAE 通常难以达到的水平。

随机时长预测器

这是 VITS 最具特色的设计选择,它解决了大多数早期 TTS 系统的一个真实局限:同一句话由真人说两遍时,时长和节奏并不会每次都完全相同。VITS 通过随机时长预测器直接对此建模,利用潜变量的不确定性建模,让同一段输入文本合成出节奏真正多样的语音——而不是无视上下文,强制每个音素都采用唯一、确定的时长。这正是 VITS 输出具有自然一对多特性的原因:一段文本可以得到多个节奏不同但都合理的演绎,与真实口语的表现方式一致。

VITS 入门

  1. 从 Hugging Face 获取 Kakao Enterprise 的官方预训练检查点。 kakao-enterprise/vits-ljs 是在 LJ Speech 上训练的单说话人模型;kakao-enterprise/vits-vctk 是在 VCTK 数据集上训练的多说话人模型(109 位说话人,涵盖多种英语口音)——根据你需要一个稳定音色还是多个说话人来选择。
  2. 要获得最简单的配置,请使用 Hugging Face Transformers 集成。 transformers 库通过 VitsModel 和 VitsTokenizer 类直接支持 VITS——先执行 from transformers import VitsModel, VitsTokenizer,再按名称加载任一检查点,只需几行代码即可开始推理,也无需配置单独的声码器。
  3. 如果要训练或微调,请使用原始的 jaywalnut310/vits GitHub 仓库。 这是论文作者提供的官方参考实现,也是大多数衍生项目(Piper、YourTTS 等)针对各自具体用途调整 VITS 时所采用的起点。
  4. 自己训练之前,先查找特定语言或数据集的社区检查点。 社区已经在其他语言和数据集上广泛重新训练 VITS,因此在 Hugging Face 搜索目标语言的现成检查点,通常比从头训练更快。

VITS 家族树:究竟有哪些项目构建在它之上

Piper 将基于 VITS 的模型与 ONNX 导出和 espeak-ng 音素化结合,用于超轻量、纯 CPU 的边缘部署。MeloTTS 明确构建在 VITS 和 VITS2 之上,并加入基于 BERT 的语言特征以改善韵律。YourTTS 使用专用说话人编码器和 Speaker Consistency Loss 改造 VITS 基础,从而加入零样本多说话人和声音转换能力。GPT-SoVITS 在其混合管线的声学与声音转换部分使用基于 VITS 的系统(名称中的 “SoVITS” 部分),并搭配基于 GPT 的组件进行语义建模。这些项目都不是 VITS 的简单复制品——它们各自采用同一个核心架构,再为不同的具体目标进行改造,而这种适应能力恰恰让一个架构真正具备基础性地位。

获得更好结果的技巧

  • 需要一个稳定音色时使用 LJSpeech 检查点,需要多说话人时使用 VCTK。 不要在未确认哪一个符合项目实际说话人需求前,就默认选择某个检查点。
  • 不同生成之间出现自然变化是预期行为,不是错误。 由于采用随机时长预测器,多次用 VITS 生成同一段文本时,每次的节奏都会略有不同——这是架构按设计运行的结果,而不是需要调试的不一致。
  • 如果需求比基础 TTS 更具体,请先考察衍生项目。 如果你需要声音克隆、极致轻量部署或面向中文的专门调优,VITS 的某个直接衍生项目(YourTTS、Piper、GPT-SoVITS)很可能已经比你自行改造基础架构更好地解决了这个具体问题。
  • 如果训练效率和质量改进对项目很重要,请查看 VITS2。 Kong 及其同事发布了这一直接后续版本,通过对抗学习和架构优化,专门提升原版的质量与效率。

VITS、VITS2 与流匹配替代方案对比

VITSVITS2F5-TTS
核心方法条件 VAE + 归一化流 + 对抗训练相同基础,优化架构与训练Diffusion Transformer + 条件流匹配
生成模式非自回归、并行非自回归、并行非自回归
时长建模随机时长预测器改进的时长建模无显式时长模型
发布年份202120232024
许可证MIT需查看具体实现CC-BY-NC(非商业)
衍生项目生态极其庞大规模较小、出现较晚正在增长、范式更新

VITS 经久不衰的意义,并不在于它本身至今仍是最先进的模型——如今已有多个新架构在原始基准数字上超过它——而在于它的核心设计被证明具有足够的影响力和适应能力,真正成为当今人们实际使用的相当一部分开源 TTS 工具的底层基础。

常见问题

VITS 现在还值得直接使用吗,还是应该使用衍生项目?

对于一般研究,或直接的单说话人、多说话人 TTS 需求,VITS 基础检查点仍然可靠。对于声音克隆、极致轻量部署或特定语言调优等更具体的需求,它的某个衍生项目(YourTTS、Piper、MeloTTS、GPT-SoVITS)通常已经针对相应目标完成了架构适配。

VITS 和 VITS2 有什么区别?

VITS2 是由部分相同作者推出的直接后续版本,在保留相同条件 VAE 核心理念的同时,通过对抗学习优化和架构改动,专门提升原版的质量与训练效率。

为什么 VITS 每次为同一段文本生成的声音都略有不同?

这是有意为之,源于随机时长预测器。它对文本与语音之间天然的一对多关系进行建模——同一句话可以用不同但都合理的节奏和语速说出,VITS 会刻意反映这一点,而不是强制每次得到完全相同的输出。

VITS 可以免费商用吗?

可以。原始 VITS 采用 MIT 许可证发布,这是较为宽松的许可证之一——不过,如果使用的是特定衍生项目或社区训练的检查点,请另外查看该项目自己的许可证,因为它可能与基础模型的条款不同。

VITS 支持多个说话人吗?

支持,通过说话人嵌入实现——官方 kakao-enterprise/vits-vctk 检查点直接展示了这一能力,它使用包含多种英语口音的 109 位说话人数据训练。

在浏览器中把文字转换为语音

如果你希望完成相近的“文字 → 单人语音”流程,可以使用 Echora 的文字转语音。输入最多 5,000 个字符,选择内置音色或已保存的自定义音色,按需添加支持的表达标签并调整语音稳定度,然后试听结果并下载生成的 MP3。

开始生成语音 →