1 VITS模型介绍

VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种结合变分推理(variational inference)、标准化流(normalizing flows)和对抗训练的高表现力语音合成模型。

VITS模型是韩国科学院在2021年6月提出的,VITS通过隐变量而非频谱串联起来语音合成中的声学模型和声码器,在隐变量上进行随机建模并利用随机时长预测器,提高了合成语音的多样性,输入同样的文本,能够合成不同声调和韵律的语音。

论文地址:VITS论文

2 VITS模型结构

VITS主要包括3块:

  • 条件变分自编码器(Variational AutoEncoder,VAE)
  • 从变分推断中产生的对齐估计
  • 生成对抗训练

VITS 语音合成完全端到端TTS的里程碑,主要突破点如下:

(1)首个自然度超过2-stage架构SOTA的完全E2E模型。MOS4.43, 仅低于GT录音0.03。声称目前公开系统最好效果。

(2)得益于图像领域中把Flow引入VAE提升生成效果的研究,成功把Flow-VAE应用到了完全E2E的TTS任务中。

(3)训练非常简便,完全E2E。不需要像Fastspeech系列模型需要额外提pitch, energy等特征,也不像多数2-stage架构需要根据声学模型的输出来finetune声码器以达到最佳效果。

(4)摆脱了预设的声学谱作为链接声学模型和声码器的特征,成功的应用来VAE去E2E的学习隐性表示来链接两个模块

(5)多说话人模型自然度不下降,不像其他模型趋于持平GT录音MOS分

3 使用vits模型进行中文语音合成训练

3.1 github项目下载:

git clone https://github.com/PlayVoice/vits_chinese

3.2 运行环境搭建:

annoconda环境搭建详见:annoconda安装与使用

conda create -n vits pyton=3.9conda activate vitscd vits_chinesepip install -r requirements.txtcd monotonic_alignpython setup.py build_ext --inplace

3.3 数据集下载:

下载标贝男声数据集,采样频率为22050,下载地址如下:

标贝男声数据集(第一个包)

标贝男声数据集(第二个包)

标贝男声数据集标注数据

下载完成后,将数据集解压缩后放到“vits_chinese/data/waves”目录下,标注数据放到

“vits_chinese/data”目录下

3.4 预训练模型下载:

韵律模型下载:韵律模型

下载完成后,移动到“vits_chinese/bert/”目录下

3.5 数据预处理:

修改配置文件:vi config/bert_vits.json

"max_wav_value": 32768.0,"sampling_rate": 22050,"filter_length": 1024,
python vits_prepare.py -c ./configs/bert_vits.json

3.6 启动训练

python train.py -c configs/bert_vits.json -m bert_vits

3.7 训练后推理

python vits_infer.py --config ./configs/bert_vits.json --model logs/bert_vits/G_700000.pth

其中G_700000.pth为训练后的模型,根据训练实际情况指定训练模型进行推理

4 训练结果展示

经过1000个epoch训练后的语音生成效果如下:

https://download.csdn.net/download/lsb2002/87832170d

5 预训练模型

使用标贝男声数据,使用Tasla-v100GPU,经过70万epochs训练后模型,新speaker可以在此模型上二次训练,达到快速收敛的效果。预训练模型下载地址

下载后,将模型存储到/vits_chinese/logs/bert_vits/目录下,启动二次训练