前言#
本文简单记录介绍一下 vits_chinese。
vits_chinese 使用了 BERT 和 VITS 进行 TTS,并加入了一些自然语言特性,从而实现高质量的文本转音频,同时支持实时输出。
正文#
一、什么是 VITS#
VITS 是一种采用变分推理和对抗性训练过程的声音合成模型,可生成比当前两阶段 TTS 系统更自然的音频。该模型采用随机时长预测器来从输入文本中合成具有不同节奏的语音,并通过概率建模和随机时长预测器表达自然的一对多关系,其中输入文本可以以不同的音调和节奏发音。
如下是 vits 的训练流程图:
如下是 vits 的推理过程:
而 vits_chinese 使用 vits 作为模型框架,采用 BERT 作为内部基础组件,可以获取更自然的停顿、较少的声音错误和高音频质量。
二、vits_chinese 功能#
- 使用 BERT 获取自然停顿,实现自然语音
- 根据自然语音推断损失,减少声音误差
- 使用 VITS 的框架,提供高质量音频
三、vits_chinese 使用与训练#
可以在线体验demo。
如果要自己训练测试,需要先安装项目:
pip install -r requirements.txt
cd monotonic_align
python setup.py build_ext --inplace
预训练模型可以在 huggingface 项目上或在网盘下载,
推理请执行:python vits_infer.py --config ./configs/bert_vits.json --model vits_bert_model.pth
训练可以下载 baker 数据,将波形的采样率更改为 16kHz,并将波形放入./data/waves
中,将000001-010000.txt
放入./data
中,然后运行python vits_prepare.py -c ./configs/bert_vits.json
和python train.py -c configs/bert_vits.json -m bert_vits
进行训练。
如果要自定义训练数据,只需要将数据整理成项目要求的格式即可。
四、总结#
效果完全依赖语料数据集的覆盖程度,该项目也不算是一个完整的 TTS 项目。
项目只有一种女声,如果要更多可选项就需要自己收集语料训练了,整体效果非常不错。
最后#
参考文章:
声明#
本文仅作为个人学习记录。
本文与hblog保持同步。