VITS语音生成模型详解及中文语音生成训练

news2024/11/26 12:23:48

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模型进行中文语音合成训练

(1)github项目下载:

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

(2)运行环境搭建:

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

conda create -n vits pyton==3.9

cd vits_chinese

pip install -r requirements.txt

cd monotonic_align

python setup.py build_ext --inplace

(3)数据集下载:

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

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

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

标贝男声数据集标注数据

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

“vits_chinese/data”目录下

(4)预训练模型下载:

韵律模型下载:韵律模型

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

(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

(6)启动训练

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

(7)训练后推理

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

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

 4 训练结果展示

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/578246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于技能的工程方法及其在I4.0 中的应用

工业4.0 组件描述了两种架构,一种是面向服务的紧耦合分层系统架构,另一种基于协议的同层架构(peer-to-peer)。传统的工业自动化系统几乎都是分层架构。例如现场设备(PLC)将数据传送到控制中心,S…

如何在华为OD机试中获得满分?Java实现【不爱施肥的小布】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1、题目描述2、输入描述3、输出描述…

第6章 Constant, Static and Name Space

Const • declares a variable to have a constant value const int x 123; x 27; // illegal! x; // illegal! int y x; // Ok, copy const to non-const y x; // Ok, same thing const int z y; // ok, const is safer 变量variable 常量 constant &#x…

chatgpt赋能python:Python词性标注:一个重要的NLP应用

Python 词性标注:一个重要的 NLP 应用 自然语言处理(Natural Language Processing,NLP)是 AI 领域中的重要分支之一,其可以帮助机器理解和处理人类语言。在 NLP 任务中,词性标注(Part-of-Speec…

k8s+负载均衡+防火墙

目录 实验拓扑 实验要求 实验部署 一、kubeadm部署k8s集群 1、环境准备(所有节点) 2、所有节点安装docker 3、所有节点安装Kubeadm、Kubelet和Kuberctl 4、部署k8s集群 初始化kubeadm 设置kubectl 5、部署网络插件flannel(所有节点…

[CSS案例二]—实现一个响应式网页,兼容PC移动端,ScrollReveal 增加动画

大家好,我是小张 本期案例,用前端三件套实现一个简约的响应式布局网页,当屏幕分辨率自适应改变时网页布局会自动发生切换,网页布局同时兼容PC端和移动端, 在普通PC屏幕下网页布局效果 移动端网页布局: 除…

工作需要,JAVAer自学python

人生苦短,我用Python。 是如何学习/自学 Python 的? 我学习python的方式其实很简单很暴力:网上直接搜视频教程; 我之前一直做java的,学习python其实也是一个机缘巧合:当时入职一个朋友刚好有python岗位&a…

初识Unity——基本模型、场景操作、世界坐标系和局部坐标系

目录 基本模型 创建基本模型 基本模型的复制 复杂模型 场景操作 聚焦 旋转 移动 场景视野 世界坐标系 基本介绍 原点 局部坐标系 基本模型 创建基本模型 基本模型的复制 创建基本模型之后,会在我们视野中心生成这个模型;当我们需要复…

SpringAOP简介及实现(包含切面、切点、连接点和通知)

目录 1.什么是AOP、SpringAOP? 2.AOP的组成 3.SpringAOP的实现 4.切点的表达式 1.什么是AOP、SpringAOP? 在学习SpringAOP之前,我们得先了解一下什么是AOP。AOP是一种面向切面编程的思想。那什么是切面呢?它其实是对某一类事情…

软件外包开发代码管理工具

软件代码规范是为了提高代码质量、可读性和可维护性而制定的一系列编程规则和约定。代码管理工具则是用于协助团队成员共享、跟踪和合并代码的工具。今天和大家分享这方面的知识,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&a…

定制底部footer bug:切换tab时position fixed会抖动

文章目录 bug描述position:fixed是啥?有啥用为什么切换tab的时候会抖动如何解决自定义一个InBody组件,将里面所有的元素放到body里面需要放到的底部的内容都放到这个组件里面 bug描述 在element admin里面定制了footer组件,每个页面也可还有…

离散数学_十章-图 ( 3 ):由旧图构造新图

📷10.3 由旧图构造新图 概念1. 子图2. 真子图3. 导出的子图 旧图构造新图的方法1. 删除或增加图中的边2. 边的收缩3. 删除顶点 有时解决问题只需要图的一部分。 比如我们现在只关心大型计算机网络中涉及济南,广州,深圳的计算机中心&#xff0…

学习c语言中的几道习题(小有难度)!

有兴趣的朋友可以看着题目自己做做,最后在和答案对比!相信能力会有所提升的。我现在只是刚刚开始学习c语言,如果有什么说的不对的地方,网路过的大佬,及时予以指正。多谢! 1、函数判断闰年 实现函数判断yea…

chatgpt赋能python:Python行太长如何处理?

Python行太长如何处理? 介绍 Python 是一门强大的编程语言,易于学习和使用。它也因其可读性和简洁性而受到广泛赞誉。然而,在实际编写时,往往遇到了行太长的情况。 当一行代码在编辑器中撑满了整个屏幕,或者末尾的字…

【Redis入门篇】| Redis的Java客户端

目录 一: Redis的Java客户端 1. Jedis快速入门 2. Jedis连接池 3. SpringDataRedis快速入门 4. RedisSerializer配置 5. StringRedisTemplate 图书推荐 一: Redis的Java客户端 在Redis官网中提供了各种语言的客户端,地址:…

chatgpt赋能python:Python阶乘算法——快速、高效的算法实现!

Python阶乘算法 —— 快速、高效的算法实现! Python作为一门高级编程语言,在众多领域都得到了广泛应用,尤其在算法领域更是拥有着举足轻重的地位。阶乘算法作为计算领域中的一种经典算法,也是Python中不可或缺的一部分。 什么是…

尚硅谷大数据hadoop教程_HDFS

P40 hdfs产生背景和定义 p41 优缺点 p42 组成 p43 文件块大小 p 44 45 shell命令 p46 api环境准备

单链表—C语言实现数据结构

本期带大家一起用C语言实现单链表🌈🌈🌈 文章目录 一、链表的概念🌎二、链表中数据元素的构成🌎 🌍三、链表的结构🌎 🌍 🌏四、 单链表的实现✅✅二、接口的实现✅✅1.单…

SAP-MM-采购申请-价值特性

采购申请审批在维护价值特性时要注意是抬头价值还是行价值,要确定选择哪个,配置时对应配置。 1、创建价值特性CT04 字段名称:CEBAN-GSWRT,和CEBAN-GFWRT 抬头总价值:CEBAN-GFWRT;如果选择的是抬头审批&am…

WPF界面设计

目录 1.设计一个优美的注册界面1.实现效果2.代码展示 2.简易登录按钮设计1.实现效果2.代码展示 3.设计一个优美的注册登录界面(连接数据库)1.实现效果2.代码展示 4.设计一个简单的在线教育系统界面1.实现效果2.代码展示 5. 设计一个Dashboard1.实现效果2…