本次分享FastSpeech作者任意发表于NeurIPS 2021的另一篇语音合成论文《PortaSpeech: Portable and High-Quality Generative Text-to-Speech》。该论文提出了一个轻量级且高质量的语音合成模型PortaSpeech。

论文地址:

https://proceedings.neurips.cc/paper/2021/file/748d6b6ed8e13f857ceaa6cfbdca14b8-Paper.pdf

Demo地址:

https://portaspeech.github.io

0  Abstract

非自回归语音合成模型(NAR-TTS)可以为给定文本并行化的生成合成语音。VAE和标准化流模型(normalizing flow)是两种生成式非自回归语音合成模型的典型代表。但是它们都表现出一定的缺点:1、VAE模型即使在小参数量下也能很好的学习到语音的长时韵律特征,但是合成语音在音质和自然度方面表现欠佳。2、normalizing flow模型可以学习到语音的频谱细节,但是在模型参数量有限时学习能力也受到限制。为了在轻量级模型结构的基础上实现高表现力、高自然度的合成语音,我们提出了轻量级的高质量生成式语音合成模型:PortaSpeech。具体来说:1、为了同时建模语音韵律和频谱细节,提出了一个 lightweight VAE with an enhanced prior followed by a flow-based post-net with strong conditional inputs作为模型主要结构;2、为了进一步压缩模型参数,提出在post-net中的affine coupling layers中使用分组参数共享机制;3、为了减少文本-语音预对齐的依赖和提升语音表现力,提出了词级别、音素级别混合对齐策略的语言学编码器来显式提取词级别的语义信息。主观和客观实验结果证明PortaSpeech在语音音质和韵律建模方面都优于其他TTS模型,并且当模型参数量下降到6.7M时(相当于在FastSpeech2基础上进行4倍的模型压缩和3倍的运行内存压缩)也有稳定的表现。

1  Introduction

自回归语音合成模型合成效率低,频繁出现跳词、漏词等问题;非自回归语音合成模型(NAR-TTS)避免了上述问题,可以以并行的方式对语音参数进行预测。
当前语音合成的主要目标在于以下几点:
1、Fast:为了减少计算资源和在实时场景中进行应用部署,语音合成的解码速度要要越快越好;
2、Lightweight:为了将模型部署到移动端或边缘计算设备,模型参数量和运行内存占用要尽可能小;
3、High-quality:为了提升合成语音自然度,模型要充分学习自然语音中的频谱细节;
4、Expressive:为了生成富有表现力的合成语音,模型要学会准确的学习语音的基频和时长来建模语音的韵律;
5、Diverse:防止合成长语音时表现过于单调乏味,模型要学习如何为给定文本生成具有多样化韵律表现的合成语音。
为了实现上述目标,本文提出一个轻量级的高质量语音合成模型PortaSpeech,可以基于轻量级框架生成具有自然语音细节和丰富韵律表现力的mel-spectrograms。具体来说:
1、 通过前期实验分析(见原文Sec4.2),我们发现VAE可以学习长时语音韵律、而normalizing flow擅长学习频谱细节。基于此,我们采用VAE with an enhanced prior followed by a flow-based post-net作为PortraSpeech的主要结构。以上方法可以帮助PortaSpeech产生high-quality 和 expressive的合成语音。另外,通过从VAE和post-net的先验中采样隐变量,PortaSpeech可以生成diverse的合成语音。
2、另外通过实验发现,VAE在模型参数极少的情况下仍然可以很好的学习语音韵律。因此,PortaSpeech采用了一个轻量级的VAE结构。另外,在post-net中提出分组参数共享机制来压缩模型参数量。基于此,PortaSpeech可以实现lightweight和fast两个目标。
3、为了更好的建模语音韵律从而生成expressive的合成语音,提出了混合对齐的文本编码器,将单词级别的硬对齐与音素级别的软对齐结合起来。这样也可以减少音素级别时长预对齐的依赖。
在LJSpeech数据的实验表明,与其他参数量相当的SOTA TTS模型相比,PortaSpeech在语音音质和韵律表现都表现优异。对PortaSpeech进行模型压缩时,将PortaSpeech的模型参数量和运行内存大小压缩为FastSpeech2的4倍和3倍小时,模型表现并没有明显下降。
本文主要贡献如下:
1、分析了VAE和normalizing-flow的特点,并且将其二者结合用于生成具有丰富频谱细节和韵律表现的mel-spectrogram特征;
2、提出了基于混合对齐的文本编码器,改善合成语音的韵律表现,并且减少对音素时长预对齐的依赖;
3、使用轻量级VAE结构并且在post-net中采用分组参数共享策略,可以使PortaSpeech在小参数量和低运行内存的情况下生成高质量的合成语音。

2  Background

VAE

一些工作将VAE应用到TTS,如BVAE-TTS。BVAE-TTS使用了一个双向解码的VAE来学习层次化的隐变量表示来提升语音表现力。基于层次结构和隐式建模,BVAE-TTS能够捕捉到真实语音韵律的动态性和变异性。然而,由于posterior collapse和BVAE-TTS中使用的重建损失项,其生成的mel-spectrogram模糊、过平滑,导致声音不自然。

Normalizing Flow

一些工作提出了基于Normalizing Flow的非自回归TTS模型。如Flow-TTS、Glow-TTS等。Flow-TTS使用Glow模型替换FastSpeech中的解码器,使用一个模块联合学习时长对齐和声学参数预测。Glow-TTS将Normalizing Flow和基于动态规划的单调对齐学习方法结合实现了fast、diverse和controllable的语音合成效果。这些方法基于Normalizing Flow技术可以学习到语音的频谱细节,但是,实验发现(见Sec4.2),基于flow模型的TTS方法通常依赖于大规模的参数量才能取得很好的效果,当模型参数量减小时效果将显著下降。

3  PortaSpeech


如图1a所示,PortaSpeech由一个linguistic encoder with mixture alignment、variational generator with enhanced prior和flow-based post-net with the grouped parameter sharing mechanism 组成。
首先,包含词边界信息的文本序列送入文本编码器来提取音素和单词级别的语言学特征来;其次,为了用轻量级模型建模语音的表现力,我们训练基于VAE的变分生成器,其学习目标为最大化相对于真实语音mel-spectrogram的变分下界(Evidence Lower Bound, ELBO),其先验分布采用小体积保持归一化流模型(small volume-preserving normalizing flow);最后,为了细化和增强生成的mel-spectrogram中的自然语音细节,我们通过最大化以语言学特征和变分生成器输出为条件输入的mel-spectrograms预测的似然概率来训练post-net。
在推理阶段,文本依次经过文本编码器、变分生成器器中的解码器和基于reversed flow的post-net转换为mel-spectrogram。

3.1  Linguistic Encoder with Mixture Alignment

为了对语言学特征的时长进行扩展以实现非自回归解码,之前的模型使用时长预测器预测每个音素的帧长,真实音素帧长(hard alignment,硬对齐)则由其他模型/工具提取、或者通过单调对齐学习联合训练。但是,硬对齐有一些问题:1、由于两个音素之间的一些边界自然是不确定的,对齐模型很难获得非常精确的音素级边界,这不可避免地会引入错误和噪声;2、此外,这些对齐误差和噪声会影响时长预测器的训练,从而影响推理过程中生成的语音的韵律表现力。
为了解决这些问题,提出混合对齐的文本编码器来学习音素级别的软对齐和单词级别的硬对齐。如图1b所示,文本编码器由音素编码器、单词编码器、时长预测器和一个单词-音素注意力模块构成。
假设给定包含单词边界的文本音素序列为“HH AE1 Z | N EH1 V ER0”。首先,将音素序列编码为音素隐状态Hp;然后,使用单词级别的平均池化操作将其转换为单词级别的隐状态送入单词编码器;之后,单词编码器将单词级别隐状态编码为新的单词级别隐状态并且基于单词级别的时长信息进行时长扩展,将其时长扩展为与目标mel-spectrogram长度相一致(扩展后的隐状态记为Hw);最后,为了添加细粒度的语言学信息,提出单词-音素注意力模块。其将Hw作为query,Hp作为key和value。另外,鉴于文本-语音的单调对齐特性,为了使得学习到的注意力尽可能趋向于对角线,在送入注意力模块之前,我们对Hw和Hp都添加了单词级别的相对位置编码。这样的混合对齐策略避免了音素级别硬对齐和时长预测的不确定性和噪音问题,同时保证了细粒度且趋向于对角线的软文本-语音对齐学习。

3.2  Variational Generator with Enhanced Prior

为了基于轻量级架构生成expressive和diverse的合成语音,如图1c所示,我们提出使用VAE作为mel-spectrogram的特征生成器,叫做variational generator。
然而,传统的VAE使用简单分布(如Gaussian distribution)作为先验,导致对后验的约束较强: 高斯先验优化使后验分布趋于均值,限制了多样性从而损害了生成能力。为了强化先验分布,我们提出了small volume-preserving normalizing flow,可以将简单分布通过一系列的K可逆映射转换为复杂分布。然后我们可以将复杂分布作为VAE的piror。

3.3  Flow-based Post-Net标

为了生成高质量high-quality的mel-spectrogram特征,normalizing flow被广泛使用取得不错的效果。简单的loss-based(L1或MSE损失)和VAE-based方法常常产生不清晰、模糊的输出,而flow-based方法可以克服过平滑问题,生成更加真实的输出。
为了建模真实语音中的频谱细节,如图1d所示,我们提出flow-based post-net with strong condition inputs来细化variational generator的输出。post-net主要采用Glow结构,条件输入依赖于variational generator的输出和文本编码器的输出。
训练阶段,post-net将mel-spectrogram转换为隐式先验分布latent prior distribution (isotropic multivariate Gaussian),使用变量的变化计算数据的精确对数似然。推理阶段,我们从latent prior distribution中采样隐变量,然后输入到post-net生成高质量的mel-spectrogram特征。图片

然而,flow-based模型一般具有很大的模型体积。post-net以文本和韵律信息作为条件输入,更多的关注mel-spectrogram特征的细节建模,而忽略模型体积的考虑。为了进一步在保持模型建模能力的同时缩小模型体积,如图2所示,我们针对affine coupling layer提出分组参数共享策略。不同的flow steps可以共享相同的模型参数。

3.4  Training and Inference

训练阶段,PortaSpeech的损失函数项包括:
1、时长预测损失:真实单词级别对数时长与预测值的MSE
2、variational generator重构损失:variational generator预测的mel-spectrogram与真实值的MSE
3、variational generator的KL散度
4、post-net对数似然的负数
推理阶段,1、文本编码器首先读取文本序列,预测单词级别的时长信息,之后对隐状态进行时长扩展得到最终的文本编码器输出隐状态HL;2、从enhanced piror中采样隐变量,variational generator中的decoder以文本编码器输出隐状态为条件输入输出mel-spectrogram(Mc);3、post-net以HL和Mc为条件输入将采样的隐变量转换为精细的mel-spectrogram(Mf);4、预训练的声码器将mel-spectrogram转换为语音波形。

4  Experiments

4.1  Experimental Setup

Datasets

使用LJSPeech进行实验,保持与FastSpeech2一致的数据划分。

Model Configuration

文本编码器与Glow-TTS类似,包含多个具有相对位置编码的feed-forward Transformer blocks。variational generator中的编码器和解码器由2D卷积网络构成。post-net采用Glow结构。PortaSpeech模型包含两种配置PortaSpeech (normal) 和 PortaSpeech (small)。更多细节见Appendix B。

Training and Evaluation

使用HiFi-GAN生成语音。采用MOS和CMOS实验评价语音音质。我们从韵律(基频、能量和时长自然度)和音质(清晰度、高频细节和音色重建)两个方面对MOS和CMOS进行分析,并根据韵律和音质的MOS/CMOS对MOS-P/CMOS-P 和MOS-Q/CMOS-Q进行评分。

4.2  Preliminary Analyses on VAE and Flow

在图像生成任务中,VAE擅长捕捉整体图像结构信息(低频部分),而忽略细微的纹理/细节(高频部分)。类似地,在mel-spectrogram中,低频部分对应于谐波的形状,而谐波决定了语音的音高和韵律。由此我们可以直观的推断出VAE擅长于对韵律的建模,而不擅长对语音细节的建模。而基于flow的模型可以以非常大的模型尺寸和巨大的计算复杂度为代价生成高质量的图像。因此可以推断出,基于flow的模型可以在模型尺寸较大的情况下很好地模拟语音中的细节。
为了验证我们的猜想,同时研究TTS任务中VAE和flow模型的特点,我们在不同模型大小下比较一些基于VAE和flow的非自回归TTS模型在音质和韵律方面的表现。模型大小分别为:1、big:大于40M参数;2、middle: 10M参数左右;3、small:5M参数左右。具体模型结构见Appendix A.4。实验结果如表1所示。

实验结果可以看出:
1、降低模型容量时,基于flow的TTS模型在语音韵律方面下降明显;相反,从MOS-P结果可以看出,VAE模型的韵律表现只发生了略微的下降。
这一现象启发我们采用基于VAE的声学参数解码器(variational generator)作为轻量级TTS模型的一部分。
2、从MOS-Q可以看出,与基于flow的TTS模型相比,基于VAE的TTS模型表现出更差的语音音质。这启发我们采用基于flow的post-net来弥补VAE模型的不足,从而细化VAE输出的mel-spectrogram特征。

4.3  Performance

我们在4种指标上(包括语音质量、解码效率、模型大小和运行内存)将PortaSpeech模型与其他8种模型(包括GT、GT(Mel+HiFi-GAN)、Tacotron2、Transformer TTS、FastSpeech、FastSpeech2、Glow-TTS和BVAE-TTS)做比较,从表2的实验结果我们发现:
1、语音质量方面,PortalSpeech(normal) 在语音音质和韵律方面都明显优于其他TTS模型。当降低模型大小时,音质和韵律仅仅略微下降,这表现出本文模型的优越性。
2、模型大小和运行内存方面,PortalSpeech(small) 具有最小的模型尺寸和最低的运行内存。与FastSpeech2相比,PortalSpeech(small) 分别在模型大小和运行内存上分别实现了4倍和3倍的压缩比。
3、解码效率方面,与Tacotron2和Transformer TTS相比,PortalSpeech(small)表现出5.5倍和45.9倍的加速,并且与其他非自回归模型的解码实时率相当。

我们在多说话人数据集中的实验也得出相似的结论(见Appendix C)。另外,在单说话人和多说话人数据进行的稳健性实验(见Appendix D)发现,PortaSpeech模型与其他SOTA的非自回归TTS模型相比实现了基本一致的稳健性效果。

4.4  Visualizations

图3对以上系统生成的mel-spectrogram进行了可视化。可以发现,PortaSpeech系统可以在两个相邻的谐波、清音帧和高频部分之间的频率成分中生成具有丰富细节的mel-spectrogram,从而产生自然的合成语音。图片
Appendix F展示了PortaSpeech模型产生的多样化mel-spectrogram。
总体来说,我们的PortaSpeech模型已经实现了Sec1中提到的5个语音合成目标(即:fast, lightweight, high-quality, expressive 和 diverse)。

4.5  Ablation Studies

进行消融实验来验证enhanced piror、post-net和mixture alignment的有效性。Appendix G对分组参数共享机制的有效性进行了分析。图片
为了验证enhanced normalizing flow-based prior的有效性,我们将我们的模型与基于simple Gaussian prior的VAE做比较。表3第二行结果可以看出:如果去掉enhanced piror,CMOS-P分数下降,表明enhanced piror可以提升语音韵律表现。与simple Gaussian prior相比,enhanced piror增对VAE先验分布形状的假设和限制较弱。
为了验证flow-based post-net的有效性和必要性,我们比较了PortaSpeech,去掉post-net的PortaSpeech(-PN),使用convolutional post-net的PortaSpeech(-PN+Conv)。实验结果如表3的第3行和第4行所示。第3行可以看到,当去掉post-net后,CMOS-Q分数显著下降,表明post-net可以很好的改善语音音质。第4行可以看到,我们的flow-based post-net显著优于convolutional post-net。
为了验证混合对齐(mixture alignment)策略的有效性,我们将混合对齐模块替换为FastSpeech中的音素硬对齐模块。实验结果如表3的第5行所示,可以看到混合对齐机制的CMOS-P和CMOS-Q分数都优于音素硬对齐机制。这些结果表明:1、混合对齐可以实现更精确的时长提取和预测,从而提升语音韵律。2、混合对齐也可以提升语音音质,因为软对齐机制有利于端到端模型的训练优化。

我们针对包含混合对齐和不包含混合对齐的PortaSpeech(small)模型计算测试集在单词级别和句子级别的平均时长误差,实验结果如表4所示,可以看到包含混合对齐策略的文本编码器可以实现更精确的时长预测,也验证了混合对齐的有效性。
我们在Appendix C对文本编码器学习到的注意力对齐进行可视化,可以看到PortaSpeech可以学习到合理的、接近对角线趋势的注意力对齐。

5  Conclusion

本文提出一个轻量级的高质量语音合成模型PortaSpeech。PortaSpeech使用一个具有增强先验的变分生成器和一个带有分组参数共享机制的基于flow的post-net作为主要的模型架构。我们也提出了全新的带有混合对齐的文本编码器来提升语音韵律表现,同时减少对音素硬对齐的依赖。实验结果表明PortaSpeech模型在语音音质和韵律方面优于其他TTS模型,并且在模型参数量减少时合成语音质量不会明显下降。一系列的消融实验也验证了各个模块的性能。未来工作中,我们将在多说话人和多语言场景中验证模型的有效性。也将在其他任务如语音转换、端到端text-waveform中挖掘其潜力。