查看原文
其他

“Hello, world!”,说出口没那么容易(续)

曹征 刘立 壁仞科技研究院 2023-02-18


摘要

文字转语音技术是现今重要的应用研究领域,它涉及语言学、声学、数字信号处理等多门科学技术,是一项复杂的系统性工程。人工智能的发展使得我们可以简化其中的很多步骤并取得更好的合成效果。我们这次将讨论利用人工智能进行语音合成中的几种流行的神经网络模型,分析它们的异同之处及发展趋势。


端到端的语音合成模型


上次谈到在数字时代我们用波形文件也就是在时间横轴上密集排列的数据点来记录声音,而纵轴坐标是每个时间点上的振动幅度也就是声音强度。现如今我们对于声音已经远远不是记录这么简单,在随处可见的场景中,我们和设备的交流已经可以通过声音完成,就像人与人之间的交流一样简单自然。如何让设备产生尽量自然的语音,人们历经了很多探索。传统的文本转语音(Text To Speech, TTS)方法结构复杂,通常要先基于文本通过复杂的算法产生多种声音特征,如基频,时长等,再将这些特征输入给一个声码器转换成最终的波形文件。而我们在这里想要介绍的基于神经网络的端到端TTS模型则大大简化了前一个步骤,它们可以直接从文本生成上次介绍过的梅尔频谱图(Mel spectrogram),再经过也由神经网络构成的声码器产生效果出色的语音。端到端TTS模型主要分为两类,分别是自回归(autoregressive)型和非自回归型。我们很容易想到通过自回归的方法建立端到端的TTS模型,因为我们需要通过模型产生的梅尔频谱和最后需要产生的波形文件一样也是一个基于时间序列的文件。由Google开发的Tacotron[1]及Tacotron v2[2]就是这样的模型,这里以Tacotron v2为例,其总体结构如下图所示。


图1 Tacotronv2的模型结构[2]


总体来说Tacotron v2是一个encoder-decoder结构的神经网络,encoder的输入当然为文本,网络需要对文本进行字符embedding编码,然后经过一些卷积和双向LSTM层输入给decoder。Decoder负责产生梅尔频谱,它具有典型的自回归结构。每一次循环中,它的输入为上一帧(frame)的梅尔频谱,该帧频谱在通过Pre-Net和经过包含位置编码的自注意力机制后的文本向量相连接后再进入LSTM层,之后将通过两个独立的linear projection head,其中一个head负责产生下一帧梅尔频谱,另一个head则负责产生一个叫做stop token的标记。产生的下一帧梅尔频谱自然要和上一帧的梅尔频谱做连接,这样逐次循环之后就能产生一定长度的梅尔频谱。可是这样的循环需要做多少次呢?训练的时候由于我们知道对应某段文本应当产生的梅尔频谱包含的帧数,这时候只要让decoder循环该帧数次即可,可是在推理的时候呢?刚才提到的由另一个linear projection head产生的stop token就是负责确定循环次数的。在梅尔频谱的长度未到所需时,我们希望这一stop token在经过sigmoid激活函数后的值更接近于0,而在梅尔频谱的长度已达所需时我们希望这一值更接近于1。这样在推理的时候就可以通过由该head产生的stop token逐次判断还是否需要产生下一帧的梅尔频谱。同样采用自回归结构的TTS模型还有Deep Voice3,Transformer TTS等。这些模型配合合适的声码器通常可以产生质量很高的语音,但它们也具有一些共同的缺点。首先受制于自回归网络本身的特点只能逐帧产生输出,因此它们做推理时的速度较慢。并且这样的逐帧循环的进行完全是自动的,在其中不容易对输出的语音进行更多如语速,韵律等方面的控制。另外这一类模型还容易产生吞音或重复等在自注意力模块中未正确对齐导致的问题。这时候我们会想到能否不使用这一自回归的网络机制?微软的FastSpeech[3]和FastSpeech2[4]就是这样的模型,这里以FastSpeech2为例,其网络结构如下图。


图2 FastSpeech2[4]的模型结构
我们看到FastSpeech2接收的不是文本本身,而是文本的音素(phoneme),音素是语言中最小的声音单位,可以简单理解为文本对应的音标中的各元素,它是通过对文本逐一查询音素表得来的。输入文本的音素而非文本本身能使模型能更好地辨别实际有效的语音特征。与Tacotron中的字符embedding编码类似,FastSpeech2中首先也需要对输入的音素进行音素embedding编码,再叠加上位置编码输入给encoder转化为隐空间信息。Encoder主要包含自注意力层和一维卷积层,之后的decoder也有类似的结构,而在encoder和decoder中间有一层可变信息适配器(variance adaptor),它的作用是引入更多的语音变化信息,包括时长预测器,音高预测器和能量预测器。在训练的时候,模型接收真实的相应信息并且产生各类信息对应的损失函数,推理时则自己产生这些信息,与encoder来的音素编码隐空间信息结合后传递给decoder产生合适时长(梅尔频谱帧数)、音高和能量的梅尔频谱。这样FastSpeech2不再需要自回归的往复循环逐帧产生梅尔频谱,也可以通过改变可变信息适配器中的各模块直接调节输出的声音特质,给端到端的语音合成任务带来了更多的可调节能力。上述介绍的实现均是先产生梅尔谱,再驱动声码器产生声音。而图2中虚线框的部分FastSpeech 2S则跳过了梅尔谱,直接用中间变量驱动它的waveform decoder生成波形文件。当然在训练的时候为了较好地训练中间的可变信息适配器,FastSpeech2中的梅尔频谱decoder及其损失函数仍被保留,在推理的时候则被舍弃。如下表所示,相比于自回归TTS模型如Transformer TTS[5],FastSpeech系列模型的推理速度有了极大提升。


表1 FastSpeech系列模型训练和推理速度


神经网络声码器

前面介绍的端到端实现中输出梅尔谱要接入声码器合成语音。声码器也可以是预训练好的神经网络模型。比如,上次我们介绍过经典的自回归型声码器WaveNet [6]。它输出下一时刻的波形文件的数据点时需要之前已生成的所有点的信息,而模型实现预测的主体时通过因果卷积(causal convolution)。相比于梅尔频谱,我们需要通过声码器最终生成的波形文件具有在时间轴上更高的采样率如16 kHz,因而在这样的任务中采用自回归结构所能达到的推理速度很难满足实时产生语音的要求。这之后出现了许多更高效的自回归神经网络模型如FFTNet, WaveRNN等,但仍然是基于类似原理的改进。为了实现快速的推理,Nvidia设计的Waveglow[7]声码器不再采用自回归结构。作为一个基于流(flow-based)的生成模型,它并不直接将梅尔频谱转化为目标波形文件,而是从一个初始化分布(高斯分布)的数据转换成目标波形数据,梅尔频谱则作为转化过程中的一个调控限制。其模型结构如下图所示。


图3 Waveglow[7]的模型结构
Waveglow选择最大化生成的波形与原波形的对数似然函数,也就是最小化负的该数的来进行训练。它采用了基于流的神经网络设计方法,使得网络中的每个部分都是可逆的,这样的话利用'change of variables'方法,对于最终生成波形的对数似然可以直接转化成对于初始高斯分布的最大似然与网络中间过程的雅可比矩阵的对数之和。为了得到对于初始高斯分布的最大似然,实际上在网络训练的过程中网络的运行方向是与inference时相反的,即输入数据波形文件x产生高斯分布数据z。Waveglow相比之前的自回归模型在推理速度上有了很大提升,在GPU上可以达到500 kHz的速度,远超实时产生语音的需求,但Waveglow模型结构复杂,参数量十分庞大,给模型训练和推理都带来了很大的算力要求。而另一种基于GAN的神经网络声码器则更加实用,以Hifi-GAN[8]为例,我们知道GAN[9]网络由生成器和判别器构成,它的生成器如下图所示,是一个多层的反卷积结合多重ResBlock结构。反卷积用于吧梅尔频谱的帧数上采样至所需的波形文件采样数,同时将梅尔频谱的信道banks数量降至1,而多重平行分布的ResBlock结构则组成多感受野(multi field fusion, MRF)模块,这是一种残差结构,它交替使用带洞卷积(dilated convolution)和普通卷积增大感受野,起到和WaveNet中的叠加带洞卷积类似的效果。Hifi-GAN的判别器在此不再展开介绍。


图4 Hifi-GAN[8]的模型结构
相比于Waveglow,由于Hifi-GAN的模型轻量(规模最大的Hifi-GAN v1的参数量也仅为Waveglow的七分之一左右),其在推理速度上又有了进一步提升,在音质相当或更好的前提下,其在GPU上可达到约4,000~20,000 kHz,而在CPU上也有约30~300 kHz,在边缘设备上也具有很高的实用性。可以预见的是,通过神经网络的方法进行语言合成,除了在直观的声音效果,合成速度上有要求,未来在更加丰富和深入的使用场景中还会对语音合成效果的调整能力,甚至是智能调整如语速,音调,停顿,情感等语音特征的能力提出越来越高的要求,面对这些新的挑战,更多具有创新思路的模型还会不断诞生。

 

小结

由神经网络给出的端到端的文字转语音模型相比于之前的传统模型要简练的多,人们不再需要大量语音领域内的知识,合成的语音效果也比传统方法更加优秀。以上通过一些典型的TTS模型我们可以看到,由于声音的天然时序性,我们容易想到通过自回归结构构建所需的神经网络,无论是端到端从文本产生梅尔频谱的声音特征生成网络还是跟随其后的声码器都是如此。这样结构的神经网络确实能产生效果出众的语音,但受制于自回归运算的时序特性,网络的推理速度受到影响。而更新的利用从文本纯前向型输出的网络也可以达到可以比拟升至超过自回归结构的神经网络产生语音的效果,并且推理速度大大提高,使得利用神经网络进行端到端语音合成变的更加实用,也利于赋予神经网络对输出语音各种特质的调节能力,更加符合当前越发复杂的应用场景的要求。


参考文献

[1] Austin Derrow-Pinion, Jennifer She, David Wong, et al. ETA Predictionwith Graph Neural Networks in Google Maps. 2021

[1] Y. Wang, R. Skerry-Ryan, D. Stanton, Y. Wu, et al., “Tacotron: Towards end-to-end speech synthesis,” in Proc. Interspeech, Aug. 2017, pp. 4006–4010.

[2] Jonathan Shen, et al., “Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions”, arXiv: 1712.05884

[3] Yi Ren, et al., “FastSpeech: fast, robust and controllable text to speech,” in NeuIPS 2019 Article No. 285, Pages 3171–3180

[4] Yi Ren, et al., “FastSpeech 2: Fast and High-Quality End-to-End Text to Speech”, arXiv: 2006.04558

[5] Naihan Li, et al., “Neural Speech Synthesis with Transformer Network”, in NeuIPS 2019 Article No. 285, Pages 3171–3180

[6] A. van den Oord, S. Dieleman, H. Zen, et al., “WaveNet: A generative model for raw audio,” CoRR, vol. abs/1609.03499, 2016.

[7] R. Prenger, R. Valle, and B. Catanzaro, “WaveGlow: A flowbased generative network for speech synthesis,” in Proc. ICASSP, Brighton, 2019.

[8] Jungil Kong, Jaehyeon Kim, Jaekyoung Bae, “HiFi-GAN: Generative Adversarial Networks for Efficient and High Fidelity Speech Synthesis”, arXiv: 2010.05646

[9] Ian J. Goodfellow, et al., “Generative Adversarial Networks”, in NeuIPS 2014, volumn 2, Pages 2672–2680



 往期推荐

1、“Hello, world!”,说出口没那么容易

2、由简入繁探究机器视觉中的数据增强(上)

3、Kubric:高效地合成视觉数据集



关于壁仞科技研究院


壁仞科技研究院作为壁仞科技的前沿研究部门,旨在研究新型智能计算系统的关键技术,重点关注新型架构,先进编译技术和设计方法学,并将逐渐拓展研究方向,探索未来智能系统的各种可能。壁仞科技研究院秉持开放的原则,将积极投入各类产学研合作并参与开源社区的建设,为相关领域的技术进步做出自己的贡献。

扫码关注我们


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存