VITS 语音合成完全端到端TTS的里程碑

article/2025/5/17 20:56:45

Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech(ICML 2021)

KAKAO公司与KAIST韩国科学院,近年在TTS领域佳作频出,目前最主流的HiFiGAN声码器也是其成果。

目录

概览:

突破点:

high level的优缺点总结:

VITS优点                            

缺点:

模型详解:

看懂需要的前置知识,推荐苏神的生成模型系列文章:

1. 变分推断(Variational Inference)

2. 随机时长预测模块​

3. 解码器模块​


概览:

提出一种TTS模型框架VITS,用到normalizing flow和对抗训练方法,提高合成语音自然度,其中论文结果上显示已经和GT相当。结合VAE和FLOW的前沿架构。

代码: https://github.com/jaywalnut310/vits

Demo地址: https://jaywalnut310.github.io/vits

论文地址:https://arxiv.org/abs/2106.0610


突破点:

  • 首个自然度超过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分

 

  


high level的优缺点总结:

VITS优点                      

  • 合成速度足够快

    • 三个主要网络结构均为可并行的非自回归结构保证了合成速度:
      • 和Fastspeech系统相同的transformer作为文本Encoder
      • 和Glow-TTS相同的Flow结构作为VAE的主体
      • 和HiFiGAN生成器相同的反卷积作为Decoder
  • 长文本稳定性好
    • 采用了Glow-TTS相同的单调对齐搜索算法(MAS), 保证生成对齐的稳定性
  • 语音多样性好
    • 在预测音素时长的模块中也引入Flow结构增加生成韵律的多样性


缺点:

  • 多样性,稳定性的trade off
  • 训练收敛速度慢
  • 全局信息学习能力较弱(韵律,风格略平淡)

                                

                                接近GT,但是单独做CMOS还是比GT要低的。


模型详解:

看懂需要的前置知识,推荐苏神的生成模型系列文章:

1. VAE系列文章,看到你自己觉得懂了:变分自编码器(一):原来是这么一回事 - 科学空间|Scientific Spaces

VAE变分自编码机详解——原理篇 - 知乎

2. Flow/Glow:

细水长flow之NICE:流模型的基本概念与实现 - 科学空间|Scientific Spaces

细水长flow之RealNVP与Glow:流模型的传承与升华 - 科学空间|Scientific Spaces

3. 上述两者的结合,也就是本篇论文主要部分:

细水长flow之f-VAEs:Glow与VAEs的联姻 - 科学空间|Scientific Spaces


了解一个模型就从它的Loss入手:

Loss:

三部分Loss对应三个主要模块:


1. 变分推断(Variational Inference)

优化目标:最大化条件下界(ELBO)


 

符号解释:
z 为线性谱经过后验编码器后得到的隐变量
y_hat 为 z 经过decoder后得到预测音频序列
x 为真实音频的Mel谱
c 为文本, d为音素时长duration,A为对齐矩阵
p(x|c) 和 p(x|z) 分别为目标 x 对 c 和 z 的最大似然


 

 重构Loss:

  • 预测音频 y_hat 提取的Mel谱和真实Mel谱的L1 Loss
  • Decoder为HiFiGAN声码器的generator生成器

 



2. 随机时长预测模块

  •  通过单调对齐搜索算法(MAS),  获得文本编码后预测的均值方差和隐变量 z 通过Flow后的正态分布的最优对齐矩阵。
  • 时长预测模块去学习这个对齐矩阵序列
  • Flow应用到此模块增加生成序列的多样性

3. 解码器模块

  •  Decoder即为HiFiGAN的生成器,两个Loss也对应原论文中相同的对抗Loss和特征鉴别器Loss, 想深入了解可以参考原论文。

总结与思考

整篇文章总体还是很优美,通过合理的应用vae-flow架构,得到了不错的效果。后续微软谭旭的natrual TTS工作也是很大程度借鉴了这篇文章,给出了更多的解释。 

目前生成模型包括新的Diffusion模型在常规数据集上都能做到不错的效果,更高难度的高表现力数据的还原将成为未来热点方向。但大概率突破仍然会产生在类似的生成模型架构上。


http://chatgpt.dhexx.cn/article/ZrKRGQeV.shtml

相关文章

webots使用以及第三方模型导入装配、运动学仿真教程

因为项目需要使用机器人的运动学仿真,因此需要的使用相应的机器人运动学仿真软件。在查阅了一些资料以后,决定使用webots作为仿真的基本软件。 但是webots的使用教程,国内基本没有。仅在博客园的内的有一个系列博客,介绍了webots…

ROS联合Webots扩展(二)通过语音控制机器人方案

通过语音控制机器人方案 注意: 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识此教程以webots_demo为基础 ubuntu版本:20.04 webots版本:2021a ros版本:noetic 0.前言 目前语音机器人已经非常…

Webots和ROS2使用说明(部分翻译)

参考链接 Reference: 文档:http://wiki.ros.org/webots_ros2源码:https://github.com/cyberbotics/webots_ros2 2021更新webotsros2 笔记系列: https://blog.csdn.net/ZhangRelay/article/details/112670542 目前,已…

Webots介绍

Webots介绍 1 介绍1.1 概述1.2 应用1.3 入门要求1.4 技术支持1.5 仿真步骤世界(webots定义)控制器超级控制器 1.6 平台能力三维建模能力物理引擎外设支持 2 软件使用启动webots用户界面文件菜单编辑菜单查看菜单模拟菜单构建菜单叠加菜单工具菜单帮助菜单…

三维地图Cesium加载天地图

1、首先去天地图官网申请key码&#xff0c;http://lbs.tianditu.gov.cn/server/MapService.html 2、下载Cesium静态资源包文件&#xff0c;如图 3、引入并加载 <div class"background" ><div id"cesiumContainer"></div></div>…

如何使用ArcGIS Pro制作三维地图

概述 随着设备性能提升和程序的升级&#xff0c;三维地图开始逐步登入主流地图&#xff0c;网上有很多使用ArcGIS制作三维地图的教程&#xff0c;这里给大家介绍一下使用ArcGIS Pro制作三维地图的方法&#xff0c;希望能对大家有所帮助。 数据来源 本教程所使用的数据是从水…

03 三维地图添加切片图层

在介绍了创建二维、三维地图之后,我们接下来介绍三维地图如何添加切片图层。地图添加切片图层的最终结果如下图所示,在此过程中默认实现了将业务图层居中显示的效果: 具体操作如下所示: 1 创建HTML基本架构,创建div和引入相关的文件,然后设置div的基本样式,如下: …

三维pcd地图转二维栅格地图

1.概述 在使用导航时&#xff0c;通常会根据二维栅格地图做路径规划&#xff0c;需要将三维点云地图转化成栅格地图。 本文采用滤波及投影的方法&#xff0c; 主要步骤包括 对输入点云进行直通滤波&#xff0c;获取限定高度范围的数据在进行半径滤波&#xff0c;去除部分孤立…

【python数据处理】替代Excel三维地图依据经纬度坐标的绘制热力地图的方式

替代Excel三维地图依据经纬度坐标的绘制热力地图的方式 背景pyecharts绘制 背景 由于某人访问了某地&#xff0c;即便是调整电脑中的区域为别的国家或者地区时候&#xff0c;excel三维地图选择时候依然会弹出很抱歉&#xff0c;三维地图当前不在你的国家/地区使用。这个“当前…

三维地图3D可视化应用案例

1、如何搭建离线地图开发环境 2、下载离线地图数据(金字塔瓦片数据&#xff09; 3、下载离线地图地形数据库&#xff08;实现地表高低起伏&#xff09; 4、添加离线地图数据到本地服务器 &#xff08;含3D&#xff09; 5、离线地图二次开发接口&#xff08;离线地图API&#…

BlenderGIS生成三维地图白模

目录 简介安装配置处理选点建模后记 简介 BlenderBlenderGISOpenTopography 可以实现地图选点并获取对应三维白模 安装 安装 blender&#xff08;版本不要太新&#xff0c;我用的是 3.0&#xff09;&#xff1a;https://www.blender.org/download/ 获取 blender-gis&#xf…

很抱歉,三维地图当前不能在你的国家/地区使用 Excel绘制三维地图问题解决

手动反爬虫&#xff1a;原博地址 https://blog.csdn.net/lys_828/article/details/123585838 知识梳理不易&#xff0c;请尊重劳动成果&#xff0c;文章仅发布在CSDN网站上&#xff0c;在其他网站看到该博文均属于未经作者授权的恶意爬取信息问题 之前在利用Excel进行三维地图…

MATLAB绘制三维地图

1、meshgrid&#xff1a;生成格点矩阵&#xff0c;类似于给定坐标空间 [x,y]meshgrid(1:10); 2、interp插值法 插值法又称“内插法”&#xff0c;是利用函数f (x)在某区间中已知的若干点的函数值&#xff0c;作出适当的特定函数&#xff0c;在区间的其他点上用这特定函数的值作…

说说基于BS架构的三维地图引擎如arcgis以及三维引擎cesium等在数字孪生三维可视化项目中踩过的那些坑

不知从何年何月BS架构的系统在PC端领域占据了大半壁江山&#xff0c;众多的软件公司为了迎合客户&#xff0c;在项目中纷纷采用BS架构&#xff0c;也因此导致培养了一大批相应的程序员技术人才。 然而&#xff0c;在移动端、手机领域&#xff0c;却又出现另一番景象&#…

ESMap三维地图开发流程

易景地图&#xff08;ESMap&#xff09;是一款三维地图在线开发平台&#xff0c;常被用来做智慧城市数据可视化的在线快速开发&#xff0c;广泛应用于室内外定位导航和数字孪生技术场景。下面就简单介绍一下ESMap三维地图的开发流程&#xff1a; 一、场景搭建 进入官网&#…

html加载三维地图,Cesium加载三维地形及WMS地图,并实现动态控制显示

写在前面: 本次工程主要实现的是cesium基础三维地形加载、视角控制、经纬度显示;重点是实现cesium加载wms图层,并对wms图层进行参数更新,实现动态控制,进一步实现时间地图的展示目的。为时间地图可视化提供了三维显示的思路。中间进行参数控制的时候,需要销毁provider,目…

实景三维数据也可以免费下载

之前分享过不少影像&#xff0c;矢量、DEM…数据下载方法。 随着实景三维的火热&#xff0c;一些实景三维数据可以免费下载吗&#xff1f; 有&#xff01;但可下载的真的不多… 今天我们就来看看怎么才能下载到免费的实景三维数据。 全国地理信息资源目录服务系统 https://…

ArcScene:构建三维地图

主要介绍一下使用ArcScene来制作三维地图&#xff0c;下面是主要的步骤 1.打开ArcGIS下面的ArcScene&#xff0c;将研究区域的DEM和矢量边界数据添加进来&#xff1a; 2.右键DEM&#xff0c;点击属性->基本高度&#xff0c;选择“在自定义表面上浮动”&#xff0c;该路径选…

【Echarts】三维地图叠加柱状图

代码如下所示&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta http-equiv"Content-Type" content"text/html; charsetGBK" /><title>echarts 地图</title><script src"https://cdn.sta…

三维地图可视化应用教程

1、如何搭建离线地图开发环境 2、下载离线地图数据(金字塔瓦片数据&#xff09; 3、下载离线地图地形数据库&#xff08;实现地表高低起伏&#xff09; 4、添加离线地图数据到本地服务器 &#xff08;含3D&#xff09; 5、离线地图二次开发接口&#xff08;离线地图API&#…