AI数字人:基于VITS模型的中文语音生成训练

这篇具有很好参考价值的文章主要介绍了AI数字人:基于VITS模型的中文语音生成训练。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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模型结构

AI数字人:基于VITS模型的中文语音生成训练

2.1 总体结构

  • 先验编码器:TextEncoder由多层的transformer encoder组成,预测的结果输出均值与方差。

  • 后验编码器:由conv1d+WN网络组成+conv1d组成。输出得到均值与方差,并且使用FLOW得到复杂分布z_p。通过flow后的复杂分布z_p与先验编码器后的分布进行对MAS对齐估计。得到attn硬对齐矩阵。

  • MAS对齐估计:通过mas(monotonic align search)硬对齐算法,将文本feature和序列帧feature进行一个硬对齐,拿到对齐矩阵Attn。MAS使用DP算法,假设一个文本feature其对应的帧序列符合一个高斯分布,通过DP算法做优化,计算出文本和序列的最优对齐矩阵。

  • 解码器:实际就是声码器HiFi-GAN V1的生成器。应用于多人模型时,在说话人嵌入向量之后添加一个线性层,拼接到的输出隐变量。

  • 判别器:增加了一个HiFi-GAN的多周期判别器,仅在训练的时候才起作用,用于对抗generator的训练。

2.2 VITS的好处及问题

  • VAE 擅长捕捉句子整体的韵律特征,而Flow擅长重建音频的细节特征;将两者整合,进行多任务训练,实现参数与优势共享。

  • VITS 直接合成音频,实现真正意义的端到端语音合成,而不是two-stage阶段的序列到序列的合成;从而消除两个模型带来的Gap。

  • 传统两个模型的TTS系统,GAN 训练通常只应用与声码器,而VITS 中的 GAN 训练是全局的、对每个模块都有效。

  • vits虽然通过sdp解决了one-to-many的问题,但是从合成结果来看,因为对韵律,语调等feature是统一建模的,没有进行拆分细粒度,因此针对英文这种语调丰富的语言,其语调建模的学习的比较平均化,针对风格发音人来说,整体合成效果来看无法得到较好的语调,比较单一,语调较平。

2.3 VITS主要包括3块

  • 条件变分自编码器(Variational AutoEncoder,VAE)

VAE(Variational Autoencoder)是一种深度生成模型,同时也被视为一种自编码器。它的结构包含两部分:编码器和解码器。

编码器的功能是将输入数据转换为一组潜在空间的高维向量。这些潜在向量通常被称为“隐变量”或“latent vectors”。

解码器则是利用编码器产生的潜在向量来重建原始输入数据。这个过程涉及到从潜在空间中采样,以及根据采样到的潜在向量合成新数据。

VAE的核心原理是利用变分推断(variational inference),这是一种统计学方法,旨在找到一个简单且接近真实分布的概率密度函数。在这个框架下,VAE试图学习数据的内在分布,而不是直接优化对数似然函数。这允许VAE在不完全了解数据分布的情况下进行有效的数据生成和学习。

在VAE的训练过程中,首先通过编码器提取输入数据的潜在向量,然后从中生成样本来计算与原始输入的重构误差。这个误差作为损失函数的一部分,通过反向传播算法更新网络权重和偏置,以最小化损失。这样,VAE能够学习到数据的潜在表示,并且在实际应用中表现出良好的泛化能力和性能。

总结来说,VAE的学习目标是在不完美地知道数据分布的情况下,通过学习数据的内在分布来生成新的数据,同时在一定程度上保持原有数据的特性。这种架构不仅适用于图像、声音等传统领域,而且在降维和特征提取方面也表现出了优势。

  • 从变分推断中产生的对齐估计
  • 生成对抗训练

2.4 语音合成里程碑

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

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

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

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

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

  • 多说话人模型自然度不下降,不像其他模型趋于持平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.9

conda activate vits

cd vits_chinese

pip install -r requirements.txt

cd monotonic_align

python 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为训练后的模型,根据训练实际情况指定训练模型进行推理

AI数字人:基于VITS模型的中文语音生成训练

 4 训练结果展示

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

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

 5 预训练模型

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

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

        文章来源地址https://www.toymoban.com/news/detail-515123.html

到了这里,关于AI数字人:基于VITS模型的中文语音生成训练的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face

    Hugging Face是一个机器学习(ML)和数据科学平台和社区,帮助用户构建、部署和训练机器学习模型。它提供基础设施,用于在实时应用中演示、运行和部署人工智能(AI)。用户还可以浏览其他用户上传的模型和数据集。Hugging Face通常被称为机器学习界的GitHub,因为它让开发人

    2024年02月01日
    浏览(52)
  • 全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!

    目标 :基于 pytorch 、 transformers 做中文领域的nlp开箱即用的训练框架,提供全套的训练、微调模型(包括大模型、文本转向量、文本生成、多模态等模型)的解决方案; 数据 : 从开源社区,整理了海量的训练数据,帮助用户可以快速上手; 同时也开放训练数据模版,可以快

    2024年02月11日
    浏览(39)
  • 本地训练,立等可取,30秒音频素材复刻霉霉讲中文音色基于Bert-VITS2V2.0.2

    之前我们使用Bert-VITS2V2.0.2版本对现有的原神数据集进行了本地训练,但如果克隆对象脱离了原神角色,我们就需要自己构建数据集了,事实上,深度学习模型的性能和泛化能力都依托于所使用的数据集的质量和多样性,本次我们在本地利用Bert-VITS2V2.0.2对霉霉讲中文的音色进

    2024年02月05日
    浏览(37)
  • 【AI项目实战】某语言模型-stable diffusion-vits-cqhttp 实现能对话能语音能绘画的Q群机器人

    好久没写文章了,终于想起来我有个博客账号系列。。 项目已开源在github上。 文章已滤敏,一切涉及语言模型名字的内容都以某语言模型代替 提示:AI绘画部分建议6G显存以上。 用于接收群友消息,并回复消息。 基于这种对话式的语言模型,可以对用户的聊天进行响应。

    2024年02月10日
    浏览(44)
  • Python - Bert-VITS2 自定义训练语音

    目录 一.引言 二.前期准备 1.Conda 环境搭建 2.Bert 模型下载 3.预训练模型下载  三.数据准备 1.音频文件批量处理 2.训练文件地址生成 3.模型训练配置生成 4.训练文件重采样 5.Tensor pt 文件生成 四.模型训练 1.预训练模型 2.模型训练 3.模型收菜 五.总结 前面我们通过视频 OCR 技术识

    2024年01月20日
    浏览(50)
  • so-vits-svc4.0 中文详细安装、训练、推理使用教程

    本帮助文档为项目 so-vits-svc 的详细中文安装、调试、推理教程,您也可以直接选择官方README文档 撰写:Sucial 点击跳转B站主页 本项目需要的环境: NVIDIA-CUDA Python = 3.10 Pytorch FFmpeg - Cuda 在cmd控制台里输入 nvidia-smi.exe 以查看显卡驱动版本和对应的cuda版本 前往 NVIDIA-Developer 官网

    2024年02月05日
    浏览(45)
  • so-vits-svc3.0 中文详细安装、训练、推理使用教程

    2023-3-12文档更新说明: 由于特殊原因,本项目文档将停止更新,详情请见原作者首页,感谢各位的支持! 本文档的Github项目地址 点击前往 本帮助文档为项目 so-vits-svc补档 的详细中文安装、调试、推理教程,您也可以直接选择官方README文档 撰写:Sucial 点击跳转B站主页 本项

    2024年01月21日
    浏览(46)
  • AI孙燕姿 ?AI东雪莲 !—— 本地部署DDSP-SVC一键包,智能音频切片,本地训练,模型推理,为你喜欢的角色训练AI语音模型小教程

    目录 感谢B站UP羽毛布团 演示视频 稻香——东雪莲 虚拟——东雪莲 反方向的钟——东雪莲 晴天+龙卷风——东雪莲 ZOOD——东雪莲 DDSP-SVC 3.0 (D3SP) 是什么? 下载资源: 解压整合包 准备数据集 智能音频切片  数据集准备 填写训练设置和超参数  开始训练 推理模型 羽毛布団

    2024年02月06日
    浏览(55)
  • AIGC:语音克隆模型Bert-VITS2-2.3部署与实战

    单阶段文本到语音模型最近被积极研究,其结果优于两阶段管道系统。以往的单阶段模型虽然取得了较大的进展,但在间歇性非自然性、计算效率、对音素转换依赖性强等方面仍有改进的空间。本文提出VITS2,一种单阶段的文本到语音模型,通过改进之前工作的几个方面,有

    2024年04月17日
    浏览(59)
  • 基于飞桨paddlespeech训练中文唤醒词模型

    飞桨Paddlespeech中的语音唤醒是基于hey_snips数据集做的。Hey_snips数据集是英文唤醒词,对于中国人来说,最好是中文唤醒词。经过一番尝试,我发现它也能训练中文唤醒词,于是我决定训练一个中文唤醒词模型。   要训练中文唤醒词模型,主要有如下工作要做:找数据集,做数

    2024年02月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包