【阅读论文】Tacotron2,结合wavenet通过mel频谱实现自然语音合成

Tacotron2是由Google Brain 2017年提出来的一个语音合成框架。
自然语音合成框架包括两个部分,分别为前段和后端:
前段,词嵌入->mel频谱,tacotron2
后端,mel频谱->语音,wavenet,waveglow
Tacotron2:一个完整神经网络语音合成方法。模型主要由三部分组成:
声谱预测网络:一个引入注意力机制(attention)的基于循环的Seq2seq的特征预测网络,用于从输入的字符序列预测梅尔频谱的帧序列。
声码器(vocoder):一个WaveNet的修订版,用预测的梅尔频谱帧序列来生成时域波形样本。
中间连接层:使用低层次的声学表征-梅尔频率声谱图来衔接系统的两个部分。
链接地址
论文地址

0,摘要
本文介绍Tacotron2,一种神经网络结构直接从文本合成语音的系统。这种系统包括一个递归的seq2seq的特征映射网络,将字符嵌入(词嵌入)映射到梅尔频谱模型上。然后用改进的WaveNet网络模型作为声码器合成这些光谱图的时域波形。我们的模型取得了一个4.53的均值意见的分(MOS),而专业录音演讲的意见得分为4.58。为验证我们的设计选择,我们当下取消系统关键部分的研究,并评估使用梅尔谱图的影响作为WaveNet模型作为调节输入的影响,,而不是语音学,持续时间和F0特征。我们也进一步证实,使用这种紧凑的声学中间表示可以显著减小WaveNet网络的结构。

1,引入
    近几十年的调查研究,从文本生成自然地语音(TTS)仍然是一项具有挑战的工作。在这段时间里,不同阶段的技术占据了主导地位。将预先记录的小单元拼接在一起的方法是目前最先进的技术。统计参数语音合成,通过声码器能够直接生成平滑的语音信号,并且解决了连接合成存在的边界残音的问题。但是,这些合成的声音通常听起来低沉而不自然,无法与人类语言相比。
    Tacotron,一种基于seq2seq结构的模型,根据字符序列生成级联的音谱。通过一个单独训练的神经网络代替这些语言的声学特征信息,简化了传统的语音合成模型。对输出的结构进行语音编码,Tacotron使用Griffin-Lim算法进行相位估计,然后进行逆短时傅里叶变换。正如作者所指出的,这是未来神经学的一个占位符声码器方法,因为Griffin-Lim产生了特征部件,且比WaveNet等方法的音频质量更低。
    本文,我们综合以上方法的有点合成语音,介绍了一个完整通用的神经网络方法:seq2seq的Tacotron模型产生梅尔频谱和一个修改过的WaveNet声码器。直接训练归一化的字符序列和相应的语音波形,我们的模型会学会合成自然发生的语言,这些语音很难与真实的人类语言区分开来。
    DeepVoice3采用同样的方法。但是,与我们的系统相比,它的自然性还没有被证明可以与人类的语言相媲美。字到声音(Char2Wav)描述另一种类似的方法,使用使用神经声码器实现端到端的TTS。但是,他们使用不同的中间表示(传统的声码器特性)以及其模型架构有很大的不同。

2,模型框架
    我们提出的系统由两部分组成,如图1所示。1),由带有注意力的循环的seq2seq特征预测网络,根据输入字序列预测梅尔频谱帧;2),修改过的WaveNet网络,根据预测的梅尔频谱帧产生时域波形。

2.1 中间特征表示
    本节中,我们选择一个低级(低频)的声学特征:梅尔频谱,连接两部分。采用一种容易从时域波形计算的方法表示特征,并分别训练两个组件。这种方法表示波形特征比较平滑,因为在每一帧中相位是不变的,采用平方误差损失特别容易训练。
    梅尔频谱是一个与线性频率有关的声谱图,采用短时傅里叶变换(STFT)。使用STFT的频率轴进行非线性变换,其灵感来源于人类听觉系统的测量响应,并得出较少维度的频率特征。使用这种听觉频率特征在处理低频上强调细节,因为低频对语音的清晰度至关重要。然而在高频细节上容易受到摩擦和其他突发性的噪声的影响,通常不需要高度建模保真。因为这些特性,梅尔频谱被用作近几十年语音识别的基础特征。
    然而,线性频谱丢失了相位信息(因此是有损耗的),但是像Griffin-Lim这样的算法能够估计丢失的这些信息,这使得时域转换能够通过反傅里叶变换实现。梅尔频谱丢弃了很多信息,产生了一个具有挑战性的反问题。但是,与WaveNet中使用的语言和声特征相比,梅尔频谱是一种更简单、低水平的音频信号表示方法。因此,类似的基于梅尔频谱的WaveNet网络应该可以直接生成音频数据,本质上为一个神经声码器。事实上,我们将要证明,使用改进的WaveNet网络可以从梅尔频谱产生高质量的音频。

2.2 声谱预测网路
    Tacotron,梅尔频谱是使用50毫秒每帧通过短时傅里叶变换,12.5毫秒的间隔和一个汉宁窗函数组成。原始的WaveNet采用5毫秒的间隔作为条件输入的概率,但是在响应时间上的增加会产生更过的发音问题。
    我们采用80频道的梅尔滤波器组从12.5Hz跨越到7.6kHz,将STFT特征变换到梅尔频谱,然后是对数(log)动态范围压缩。在对数压缩之前,为了在对数范围内限制动态范围,滤波器组的输出大小被剪裁到最小值0.01。
    这个网路由编码器和带有注意力的解码器组成。编码器将字符序列转换为隐藏特征,解码器用它来预测梅尔声谱图。输入的字符采用512维度的词嵌入表示,并通过3个的卷积层,每层包含512个滤波器,形状为5x1。其中,每个滤波器跨度为5个字符,然后进行批归一化和ReLU激活函数。与Tacotron一样,这些卷积层在输入字符序列中对更长的上下文信息进行建模(如,N -grams)。最后的一个卷积层的输出接着一个包含512个单元(每个方向各256各)的双向的LSTM层,生成编码器的特征。
    网络的注意力使用编码器的输出,将整个编码序列总结为每个解码器输出步骤的固定长度上下文向量。我们使用这些局部感兴趣的注意力。它扩展了注意力机制,使用以前解码器时间步骤的累积注意力权重作为附加功能。这注意力模型通过输入始终如一地向前传播,在解码器重复或忽略某些子序列的情况下,降低潜在的故障模式。注意力的概率在预测输入后使用,采用128维度的隐藏状态表示局部特征。局部特征后接长度为31的32个一维度的卷积层计算。
    解码器是一个递归神经网络,从编码的输入序列输入每帧,预测梅尔频谱。根据之前的时间序列,首先通过一个pre-net网络,其中包含两个全连接层,256个隐藏的ReLU单元。我们发现pre-net作为一个信息瓶颈,对学习注意力至关重要。pre-net输出和注意力上下文向量,连接并通过包含1024个单元的2层单项的LSTM层。通过线性变换将LSTM输出和注意上下文向量串联起来,预测目标声谱图帧。最后,将预测的梅尔频谱通过5层卷积的post-net,它能加入预测信息预测残差,提升整体重建能力。每个post-net层由512个滤波器组成,包括5x1的批归一化,最后一层之外的所有层上采用tanh激活。
    为了提升收敛速度,我们将post-net网络前后采用均方误差(MSE)作为损失函数。我们也使用对数似然损失函数对输出分布进行建模一种混合密度网络,避免假设一段时间内方差不变。但是却发现这样很难训练,并没有产生更好的声音样本。
    与声谱帧预测同时进行,解码器LSTM输出和注意力上下文串联起来并投影到一个标量,并通过一个sigmoid激活来预测输出序列的概率。stop token在推理(测试)阶段使用,允许模型模型动态确定何时终止生成,而不是总是在固定的时间内生成。具体来说,在第一帧的生成完成时,概率超过阈值0.5。(持续输出帧)。
    采用dropout为0.5的概率对网络中的卷积层进行正则化(归一化),采用zoneout为0.1概率对LSTM层进行正则化。为了引入在推理时的输出变化,采用概率为0.5的dropout对pre-net的自回归解码器。
    与原始的Tacotron(Tacotron 1)相比,我们(本文)使用更加简单的方法构建块,在编码器和解码器中使用普通的LSTM和卷积层,而不是“CBHG”栈和GRU循环层。我们也不采用“衰减因子”,即解码器每步对应梅尔频谱的每帧。

2.3 wavenet声码器
    我们将wavenet网络结构做出改进,将梅尔频谱特征图表示转化为时域波形样本。在原始的结构中,包含20个膨胀卷积层,分为3个膨胀循环,即第k层的膨胀参数(k=0…39)为2的指数幂(k mod 10)。声谱图采用12.5ms的帧跳,只需要向上2次采样层在条件堆栈中使用,而不是3层。不采用softmax层预测,我们采用PixelCNN++、Parallel WaveNet和一个10组混合逻辑分布(MoL)来生成16位样本在24kHz。为了计算混合的逻辑分布,WaveNet栈输出是通过ReLU激活,然后进行线性投影混合组件的参数(平均值,对数尺度,混合权重)。损失计算为真实样本的负对数似然。

3,训练和结果

3.1 训练
    我们的训练阶段包括,首先训练特征预测网络,然后根据第一个网路训练输出训练改进的WaveNet网络。为了训练特征预测网络,我们采用标准最大似然训练方式(在解码器端得到正确的输出,而不是预测的输出)在一个GPU,批次为64。我们采用adam优化器,b1=0.9,b2=0.999,误差=10e-6,学习率=1e-3,衰减指数到10e-5,迭代次数为50k。还是采用L2正则,权值为10e-6。
    然后,我们在ground truth-aligned预测的特征预测网络训练修改的wavenet。预测网络采用teacher-foring方式,其中每个预测帧条件是编码的输入序列和对应的前一帧的ground truth声谱。这样确保每个帧序列与目标波形样本完全一致。
    我们采用批次为128在32个GPU上异步更新,adam优化器,b1=0.9,b2=0.999,误差=10e-8,学习率=1e-4。在最近的更新中平均模型有助于提高质量。因此,我们保持了网络参数的指数加权移动平均超过更新步骤,衰减为0.9999-此方法用于推断。为了加快收敛速度,我们将波形目标缩放到127.5倍,使逻辑层的混合初始输出更加接近最终的分布。
我们采用一个内部的US英文数据集[12],包含24.6个小时,从一个单一的专业女性演讲者。所有的数据集中的所有文本都是拼出来的。例如,“16”被写成“sixteen”,即我们的模型都是在规范化文本上训练的。

3.2 结果
    在推理模式下生成语音时,真实的目标是不知道。因此,在解码过程中输入前一步的预测输出,而不是用于训练的教师强制配置。

发布了192 篇原创文章 · 获赞 18 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/luolinll1212/article/details/104038351