本次分享ICML 2021会议中一篇语音合成的佳作《Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech》(Authors: Jaehyeon Kim, Jungil Kong, Juhee Son) 。当时号称实现完全端到端建模,合成自然度绝世无双、堪比Ground Truth。

论文地址:
https://arxiv.org/abs/2106.06103
Demo地址:
https://jaywalnut310.github.io/vits-demo/index.html
代码仓库:
https://github.com/jaywalnut310/vits

0 Abstract

一些基于单阶段训练和并行解码的端到端语音合成模型取得了不错的效果,但是它们的语音质量与两阶段训练的语音合成模型相比还有一定差距。本文提出了一个完全并行化的语音合成模型,与两阶段模型相比可以生成更加自然的合成语音。模型采用基于标准化流模型 (normalizing flows) 的变分推理 (variational inference) 策略和对抗学习策略来提升生成模型的表现力。我们还提出随机时长预测模块来提升合成语音的韵律多样性。凭借变分推理隐变量和随机时长预测模块的不确定性建模,我们的模型可以很好的处理语音合成中的一对多问题,从而可以为给定文本生成具有多种多样基频和韵律表现的合成语音。在LJSpeech数据上的主观MOS实验结果表明,我们的模型优于目前所有的公开TTS模型,并且MOS分数与Ground Truth相当。

1 Introduction

随着神经网络的发展,不考虑前端文本处理的情况下,语音合成 (text-to-Speech, TTS) 的主要建模过程被简化为两个主要阶段。第一阶段:将前端文本处理得到的规范文本序列转换为中间特征表示,如mel-spectrograms声学特征或语言学特征表示。第二阶段:将中间特征表示重构为语音波形。
自回归语音合成模型可以合成高质量的语音,但是自回归的序列生成方式限制了模型的并行处理能力。因此,非自回归模型应运而生。
针对第一阶段,非自回归语音合成模型需要先使用预训练的自回归 (教师) 语音合成模型提出“文本-声学参数”的注意力对齐关系,来指导非自回归模型训练时的时长对齐学习。最近,一些基于似然 (likelihood) 的方法通过最大化目标声学参数的似然概率来学习时长对齐,从而消除了对之前预训练自回归模型的依赖。
针对第二阶段,一些方法采用基于多判别器的生成对抗网络进行语音波形的重建。其中,不同的判别器用来对不同尺度 (scale) 或不同周期 (period)的声学参数进行建模。
尽管并行化的TTS系统蓬勃发展,但两阶段模型仍然存在一些问题。1.由于第二阶段需要依赖于第一阶段的输出进行训练,因此序列化或微调的训练方式仍然必不可少;2. 可学习的特征表示有助于提升TTS的表现,但是两阶段模型中第一阶段和第二阶段的衔接依赖于预先定义好的中间特征表示,模型表现仍然有进一步提升的空间。
一些工作对基于可学习特征表示的TTS方法进行了研究,例如:FastSpeech2、EATS等模型中:使用音频片段取代之前的完整语音波形作为学习波形重建的学习目标、提出mel-spectrogram decoder来辅助文本特征表示的学习、设计新的spectrogram loss来解决生成语音和原始语音的长度不匹配问题。但是它们的语音合成整体质量与两阶段模型相比仍有一些差距。
本文提出了一个合成质量优于两阶段模型的完全并行化TTS方法。1. 为了实现直接有效的端到端训练,我们基于变分自编码器,使用隐变量作为中间特征表示将两阶段模型融合为单阶段模型;2.为了提升合成语音波形的表现力,提出基于标准化流模型的条件先验分布和对抗学习策略进行语音波形的重建;3. 为了更好的解决语音合成中的一对多问题 (即:TTS模型可以为给定文本合成具有多种多样基频和时长信息的合成语音) ,提出随机时长预测器为给定文本预测多样化的韵律信息。凭借隐变量和随机时长预测的不确定性优势,我们的模型可以更好的学习到文本表示体现不出来的语音韵律变化。
我们的方法与一些公开的高质量语音合成系统Glow-TTS、HiFi-GAN相比,在语音自然度方便表现更好,并且具有更快的解码效率。

2 Method

本节首先介绍提出的方法:1.条件VAE,2.基于条件推理的对齐估计,3.对抗训练。之后介绍模型的整体结构。我们将模型命名为VITS (Variational Inference with adversarial learning for end-to-end Text-to-Speech),图1a 和图1b分别展示了VITS的训练和推理过程。

2.1 Variational Inference

Overview

VITS可以看作是一个以最大化边缘对数似然估计 (marginal log-likelihood) 的变分下界 (Evidence Lower Bound, ELBO) 为学习目标的条件VAE。

其损失函数可以看作是重构损失和KL散度的和。

Reconstruction loss

重构损失Lrecon通过在mel-spectrogram层面进行约束来提高生成语音的感知质量。
训练过程中,先将隐变量z通过解码器decoder生成语音波形,之后从语音波形中提取出mel-spectrogram特征,与原始真实语音的mel-spectrogram计算L1损失。

重构损失只在训练过程中计算,模型推理阶段并不计算。另外,在对隐变量z解码时,仅使用隐变量序列的一部分作为解码器的输入来提升模型的训练效率。

KL-divergence

先验编码器 (prior encoder) 的条件输入c由音素序列ctext和音素与隐变量之间的对齐信息A组成。为了使后验编码器学习到高分辨率的声学信息,我们使用线性谱xlin(linear-scale spectrogram) 作为后验编码器的输入。
KL散度的计算方式如下:

被分解的正态分布被用来参数化我们的先验和后验编码器。

增加先验分布的表现力/多样性有助于生成更加真实的样本,因此,我们将标准化流应用到正态先验分布中,可以将一个简单分布的可逆变换到一个更复杂的分布。也就是说,在经过上采样的编码器输出之后,加入一系列可逆变换:

其中,输入c就是上采样的编码器输出。

2.2 Alignment Estimation

Monotonic alignment search

为了计算输入文本和目标语音之间的对齐关系A,我们使用与Glow-TTS相似的单调对齐搜索 (Monotonic Alignment Search, MAS) 技术来通过最大化被标准化流参数化的似然概率来计算对齐关系。

与Glow-TTS不同的是,我们重新定义了MAS的计算方法通过最大化变分下界 (Evidence Lower Bound, ELBO) 来寻找对齐路径。将Glow-TTS中的计算过程简化为通过最大化隐变量z的对数似然概率来计算对齐路径。

Duration prediction from text

传统的时长估计可以通过对估计对齐A的每一行所有列求和来计算每个音素的持续时间,但是这样无法表现出韵律节奏变化多样性。
为了反映真实的语音韵律多样性,我们设计了随机时长预测器 (stochastic duration predictor)。它是基于流模型的生成模型,以最大化似然估计的方式进行训练。但是直接应用最大化似然估计有两个问题:1.音素时长是一个离散的整数,需要使用连续标准流模型进行去量化操作;2.音素时长是一个标量,难以实现高维变换。为了解决这两个问题,我们使用变分去量化 (variational dequantization) 和变分数据规整(variational data augmentation) 策略。
引入与时长序列相同时间分辨率和维度的随机变量u和v,利用近似后验分布采样这两个变量,训练目标为音素时长对数似然的变分下界:

时长预测的损失函数Ldur是变分下界的负值。在训练时断开随机时长预测器的梯度反传,阻止该部分的梯度影响到其它模块。音素时长通过随机时长预测器的可逆变换从随机噪音中采样得到,之后转换为整数值。

2.3 Adversarial Training

引入判别器实现对抗训练,其中,判别器用来判断模型输出是解码器输出还是真实波形。对抗训练包括两种损失形式,第一种是用于对抗训练的最小二乘损失函数(least-squares loss function);第二种是特别施加于生成器的特征匹配损失(feature-matching loss):

特征匹配损失可以看作是重建损失,用于约束判别器中间层的输出。

2.4 Final Loss

VITS可以看作是VAE和GAN的联合训练,因此总体损失为:

2.5 Model Architecture

模型整体结构包括:1.后验编码器(posterior encoder), 2.先验编码器(prior encoder),3.解码器,4.解码器,5.随机时长预测器。其中后验编码器和判别器仅用于模型训练阶段,模型推理阶段不使用。

Posterior encoder

在训练时后验编码器以线性谱为输入,输出隐变量z。推理阶段隐变量z则由流模型产生。VITS的后验编码器采用WaveGlow和Glow-TTS中的非因果WaveNet残差模块。应用于多人模型时,可以将说话人向量添加到残差模块。

Prior encoder

先验编码器包括文本编码器和提升先验分布多样性的标准化流。文本编码器为基于相对位置编码的transformer编码器。将线性层添加到文本编码器的最后一层用来生成构建先验分布的均值和方差。标准化流模块包含若干WaveNet的残差块。应用于多人模型时,可以向标准化流的残差模块添加说话人向量。

Decoder

解码器的结构与HiFi-GAN V1的生成器结构相同,应用于多人模型时,将说话人向量线性变换后与隐变量z拼接在一起。

Discriminator

判别器的结构与HiFI-GAN中的多周期判别器结构相同。

Stochastic duration predictor

随机时长预测器以文本音素表示的隐状态htext为条件输入,估计音素的时长分布。应用于多人模型时,将说话人向量线性变换后与隐状态htext拼接在一起。

3 Experiments

3.1 Datasets

使用LJSpeech来比较VITS与其他公开模型的效果。使用VCTK来验证VITS是否可以学习和表达多样化的语音特征。

3.2 Preprocessing

提取语音波形的linear spectrograms作为后验编码器的输入。从linear spectrogram中提取mel-scale spectrogram来计算重建损失Lrecon。使用文本的国际音标 (International Phonetic Alphabet,IPA) 作为先验编码器的输入。

3.3 Training

训练时仅使用语音片段进行训练,也就是所谓的加窗生成器训练 (windowed generator training)来提升训练效率。

3.4 Experimental Setup for Comparison

我们选择一些公开的最优模型进行比较。对于第一阶段模型,选择基于自回归的Tacotron2和基于流模型的非自回归Glow-TTS系统。对于第二阶段模型,选择HiFi-GAN。由于序列化训练的两阶段TTS模型理论上可以合成质量更好的语音,因此选择使用第一阶段输出的mel-spectrogram继续微调的HiFi-GAN模型也作为baseline。对于VITS,我们将随机时长预测器的输入噪声的标准差设置为0.8,将尺度因子乘以先验分布的标准差设置为0.667。

4 Results

4.1 Speech synthesis quality

主观MOS实验结果如表1所示。VITS超越其他所有模型实现了与真实语音相当的MOS分数。使用与Glow-TTS相似的确定性时长预测器的VITS(DDP)模型排名第二。这表明:
  • 随机时长预测器与确定性时长预测器相比,可以生成更加真实的音素时长;
  • 本文的端到端训练方式与其他TTS模型相比更加有效。

我们进行消融实验来验证标准化流模型和linear-scale spectrogram的有效性。表2可以看到:
  • 第三行去除了先验编码器中的标准化流,也就是编码器后面没了标准化流增加表达能力,MOS会降低1.52,合成效果下降明显;
  • 第四行后验编码器的输入由线性谱改为梅尔频谱,MOS会降低0.19,说明高分辨率的信息能够提升VITS的表现。

4.2 Generalization to multi-speaker TTS

本节比较多说话人的语音合成效果。对于VITS,使用2.5节的方法添加说话人向量;对于Tacotron2,将说话人向量与编码器输出拼接在一起;对于Glow-TTS,也将说话人向量作为全局条件输入。实验结果如表3所示。
图片
可以看到,VITS的MOS分数优于其他所有系统。表明我们的模型可以以端到端的形式学习到变化丰富的语音特点。

4.3 Speech variation

本节评估随机时长预测器能否产生多样化的语音时长。图2a展示了给定同一文本时,Tacotron 2、VITS和Glow-TTS合成100句话的时长统计。可以看到VITS和Tacotron 2的时长分布比较类似,Glow-TTS是确定性时长,所以只有一个点。图2b展示了多说话人合成情况下的时长分布,可以看到VITS可以学习到说话人相关的时长分布。

图3展示了为给定文本合成10句话的F0曲线。在图3d中,由不同说话人身份生成的五个样本表明,我们的模型表达了不同说话人身份的语音时长和音高。需要注意的是,Glow-TTS可以通过增加先验分布的标准差来增加音高的多样性,但相反,它会降低合成质量。

4.4 Synthesis speed

本节对合成速度进行测试。将VITS与并行化的两阶段模型Glow-TTS + HiFi-GAN做比较。实验结果如表4所示,VITS不需要生成预定义的声学特征,因此在解码效率和合成速度上都有明显提升。

5 Conclusion

本文提出全新的并行化端到端TTS模型,VITTS。提出了随机时长预测模块来生成具有多样性韵律变化的语音。VITS不需要中间声学特征表示便可直接为文本生成高自然度的合成语音。实验结果表明我们的模型优于两阶段TTS建模方法,并且与真人发音效果相当。我们期望本文的方案可以服务于其他两阶段的语音生成任务,在简化模型训练流程的同时提升语音生成的表现。虽然我们的方法将两阶段TTS模型融合为单阶段,但是在文本处理方面仍然存在问题。研究基于自监督的文本表示方法对于简化文本处理环节仍有待探索。
附:
想了解VAE和流模型的更多知识,请阅读以下链接:
1. 变分自编码器(一):原来是这么一回事
https://spaces.ac.cn/archives/5253
2. VAE变分自编码机详解——原理篇
https://zhuanlan.zhihu.com/p/108262170?from_voters_page=true
3. 细水长flow之NICE:流模型的基本概念与实现
https://spaces.ac.cn/archives/5776
4. 细水长flow之RealNVP与Glow:流模型的传承与升华
https://spaces.ac.cn/archives/5807
5. 细水长flow之f-VAEs:Glow与VAEs的联姻
https://spaces.ac.cn/archives/5977