当前位置: 首页 > news >正文

【深度学习】【语音TTS】vits 论文,Variational Inference Text-to-Speech(1)

代码:https://github.com/jaywalnut310/vits
论文:https://arxiv.org/abs/2106.06103

文章目录

    • 摘要
    • 1. 引言
    • 2. 方法
      • 2.1. 变分推理
        • 2.1.1. 概述
        • 2.1.2. 重构损失
        • 2.1.3. KL散度
      • 2.2. 对齐估计
        • 2.2.1. 单调对齐搜索
        • 2.2.2. 从文本预测时长
      • 2.3. 对抗训练
      • 2.4. 最终损失
      • 2.5. 模型架构
        • 2.5.1. 后验编码器
        • 2.5.2. 先验编码器
        • 2.5.3. 解码器
        • 2.5.4. 判别器
        • 2.5.5. 随机时长预测器
    • 3. 实验
      • 3.1. 数据集
      • 3.2. 预处理
      • 3.3. 训练
      • 3.4. 比较实验设置
    • 4. 结果
      • 4.1. 语音合成质量
      • 4.2. 多说话人文本到语音的泛化能力
      • 4.3. 语音变化
      • 4.4. 合成速度
    • 5. 相关工作
      • 5.1. 端到端文本到语音
      • 5.2. 变分自编码器
      • 5.3. 非自回归文本到语音中的时长预测
    • 6. 结论

摘要

最近提出了几种支持单阶段训练和并行采样的端到端文本到语音(TTS)模型,但其样本质量不如两阶段TTS系统。在这项工作中,我们提出了一种并行端到端TTS方法,其生成的音频比当前的两阶段模型更自然。我们的方法采用了变分推理,并结合了正规化流和对抗训练过程,提高了生成模型的表达能力。我们还提出了一个随机时长预测器,用于从输入文本中合成具有不同节奏的语音。通过对潜在变量的不确定性建模和随机时长预测器,我们的方法能够表达文本输入可以以多种方式、不同音高和节奏发音的自然一对多关系。在LJ Speech(单一说话人数据集)上的主观人类评估(平均意见得分,MOS)显示,我们的方法优于当前最好的公开TTS系统,并且达到了与真实音频相当的MOS。

1. 引言

文本到语音(TTS)系统通过若干组件从给定文本合成原始语音波形。随着深度神经网络的快速发展,TTS系统流水线已简化为两个阶段的生成建模,除了文本预处理如文本规范化和音素化。第一阶段是从预处理的文本生成中间语音表示,如mel-spectrogram(Shen et al., 2018)或语言特征(Oord et al., 2016),第二阶段是生成以中间表示为条件的原始波形(Oord et al., 2016;Kalchbrenner et al., 2018)。每个两阶段流水线的模型是独立开发的。

基于神经网络的自回归TTS系统已经展示了合成逼

相关文章:

【深度学习】【语音TTS】vits 论文,Variational Inference Text-to-Speech(1)

代码:https://github.com/jaywalnut310/vits 论文:https://arxiv.org/abs/2106.06103 文章目录 摘要1. 引言2. 方法2.1. 变分推理2.1.1. 概述2.1.2. 重构损失2.1.3. KL散度2.2. 对齐估计2.2.1. 单调对齐搜索2.2.2. 从文本预测时长2.3. 对抗训练2.4. 最终损失2.5. 模型架构2.5…...

javascript中 window 相关知识点以及代码演示

一.了解window 在JavaScript中,window对象是浏览器的全局对象,它不仅代表了浏览器窗口,同时也充当了ECMAScript中的Global对象的角色。因此,深入了解和掌握window对象的属性和方法对于JavaScript开发者来说至关重要。 以下内容将…...

企业社会责任(CSR)国际标准有哪些?

以下是一些常见的企业社会责任(CSR)国际标准和相关体系等: 原则性、指南性标准 ISO 26000《社会责任指南》 :将社会责任归纳为7个核心方面,即公司治理、人权、劳工、环境、公平运营实践、消费者问题以及对社会发展作贡…...

The C programming language (second edition,KR) exercise(CHAPTER 7)

E x c e r c i s e 7 − 1 Excercise\quad 7-1 Excercise7−1: #include <stdio.h> #include <string.h> #include <ctype.h>enum type {LOWER, UPPER };int main(int argc, char *argv[]) {int c, mode = -1;if (stricmp(*argv, "lower.exe") =…...

面向服务架构(SOA)介绍

在汽车电子电气架构还处于分布式时代时&#xff0c;汽车软件的开发方式主要是采用嵌入式软件进行开发&#xff0c;而随着汽车智能化程度的加深&#xff0c;更加复杂且多样的功能需求让汽车软件在复杂度上再上一层。在整车的自动驾驶方面&#xff0c;由于未来高阶自动驾驶能力的…...

关于使用Next遇到的一些新特性

用next之后发现&#xff0c;这是作为全栈比较好用的框架 API 1、app Router 这是目前next官方以及未来推荐的新技术方向 若使用api路由用来管理后端api接口 &#xff08;1&#xff09;此时在app文件夹下创建 api名称目录&#xff08;如 getApiKey&#xff09; &#xff08;…...

Python 爬虫入门(七):requests 库的使用「详细介绍」

Python 爬虫入门&#xff08;七&#xff09;&#xff1a;requests 库的使用「详细介绍」 前言1. 初识 requests1.1 安装 requests 库1.2 发送 GET 请求1.3 发送 POST 请求 2. HTTP 请求详解2.1 请求方法2.2 请求头2.3 请求参数 3. 处理响应3.1 响应内容3.2 响应状态码3.3 响应头…...

两端约束的最优控制问题及其数值解法

问题的基本形式 设 n n n维系统状态房产 x ˙ ( t ) f [ x ( t ) , u ( t ) , t ] \dot{x}(t)f[x(t),u(t),t] x˙(t)f[x(t),u(t),t]&#xff0c;控制向量 u ( t ) ∈ Ω u(t)\in\Omega u(t)∈Ω是分段连续函数&#xff0c; Ω ∈ R m \Omega\in R^m Ω∈Rm是有界闭集&#xf…...

电磁仿真--基本操作-CST-(6)-导线周围磁场

目录 1. 简介 2. 过程 2.1 新建工程 2.2 选择求解器 2.3 设置单位 2.4 设置频率 2.5 绘制导线 2.6 Background 2.7 边界条件 2.8 设置激励源 2.9 查看结果 3. 其他设置 3.1 网格类型 3.2 集总网络元件 3.3 阻抗和导纳矩阵 3.4 自适应网格细化 3.4 提升计算效率…...

用Java手写jvm之模拟方法调用指令invokexxx和方法返回指令xreturn

写在前面 源码 。 本文一起看下方法调用相关的指令invokexxx以及方法返回&#xff08;栈帧弹出线程栈&#xff09;相关的指令xReturn 。 1&#xff1a;正文 因为invokexxx指令和普通的指令不同&#xff0c;会创建一个新的栈帧&#xff0c;并压倒操作数栈中&#xff0c;所以我…...

自定义枚举类型检查

/*** 工单状态&#xff0c;使用字典&#xff1a;order_item_state*/ CheckEnum(nullAble true, enumType OrderItemStateEnum.class) private String workState; 注解类 package com.gdyunst.core.tool.validation;import javax.validation.Constraint; import javax.valid…...

探索四川财谷通抖音小店:安全与信赖的购物新体验

在数字经济蓬勃发展的今天&#xff0c;抖音平台凭借其庞大的用户基础和强大的内容生态&#xff0c;逐渐成为了电商领域的一股不可忽视的力量。其中&#xff0c;四川财谷通抖音小店作为这一浪潮中的佼佼者&#xff0c;不仅以其丰富的商品种类和独特的品牌魅力吸引了众多消费者的…...

systemd-manage系统服务图形化管理工具使用教程

1. systemd-manage介绍 systemd-manage是一个开源的基于systemd服务管理的图形化工具&#xff0c;使用qt图形库进行开发&#xff0c;可以提供服务管理&#xff0c;用户会话&#xff0c;配置文件修改&#xff0c;日志查询&#xff0c;性能分析&#xff0c;进程管理等功能。图形…...

移除元素(LeetCode)

题目 给你一个数组 和一个值 &#xff0c;你需要 原地 移除所有数值等于 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 解…...

代码随想录27期|Python|Day38|509斐波那契|738.爬楼梯|746.746. 使用最小花费爬楼梯

贴一下动态规划的步骤&#xff08;5步&#xff09;&#xff0c;就像是之前递归一样&#xff0c;需要每次落实到位。 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 ​​​​​509. 斐波那契 注意到n的范…...

windows docker容器部署前端项目

一、介绍 Docker 是一个开源的平台&#xff0c;旨在简化应用程序的开发、部署和运行。它通过使用容器&#xff08;containers&#xff09;来实现这一点。容器是一种轻量级、可移植的虚拟化方式&#xff0c;可以在不同的环境中一致地运行软件。 Docker 的主要作用和优点包括&a…...

科普文:微服务之全文检索ElasticSearch 集群的搭建

一、集群有什么用 1.1 群集的含义与产生 群集&#xff08;或称为集群&#xff09;是由多台主机构成&#xff0c;但对外&#xff0c;只表现为一个整体&#xff0c;只提供一个访问入口&#xff08;域名或IP&#xff09;&#xff0c;相当于一台大型计算机。互联网应用中&#xf…...

QtObject是干什么的?

QtObject 是 Qt Quick 中的一个基类&#xff0c;用于创建非视觉对象。这意味着 QtObject 不渲染任何视觉内容&#xff0c;它主要用于定义数据和逻辑&#xff0c;而不是用户界面元素。你可以把 QtObject 看作是 QML 中的一个基础组件&#xff0c;用于创建和管理不需要显示的对象…...

锐捷RCNA | 远程登录与路由技术

锐捷RCNA | 远程登录与路由技术 一、远程登录配置1. Telnet远程登录介绍2. 案例1--设置远程登录密码实现远程登录3. 案例2--定义不同用户账户实现远程用户权限隔离4. SSH远程登录介绍5. 案例--通过SSH功能远程管理设备 二、路由技术1. 直连路由的数据通信2. 间接路由的数据通信…...

实现Vue-tiny-diff算法

前言 前面我们实现了基本的数据更新到视图渲染的逻辑,但是这种方式(innerHTML)是极其低效的, 因此,我们相应引入 dom 和 diff 算法, 数据到视图的过程变为: state -> vdom -> dom vNode 层 所谓 vNode, 就是一个表示 dom 结构的轻量对象 {tag, props, children; }为…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

Qt Quick Controls模块功能及架构

Qt Quick Controls是Qt Quick的一个附加模块&#xff0c;提供了一套用于构建完整用户界面的UI控件。在Qt 6.0中&#xff0c;这个模块经历了重大重构和改进。 一、主要功能和特点 1. 架构重构 完全重写了底层架构&#xff0c;与Qt Quick更紧密集成 移除了对Qt Widgets的依赖&…...