原论文地址:https://arxiv.org/abs/1712.05884
摘要
这篇论文描述了Tacotron 2, 一个直接从文本合成语音的神经网络架构。系统由两部分构成,一个循环seq2seq结构的特征预测网络,把字符向量映射到梅尔声谱图,后接一个WaveNet模型的修订版,把梅尔声谱图合成为时域波形。我们的模型得到了4.53的平均意见得分(MOS),而专业录制语音的MOS得分是4.58。为了验证模型设计,我们对系统的关键组件作了剥离实验研究,并且评估了使用梅尔频谱替代语言学、音长和F0特征作为WaveNet输入带来的影响。我们进一步展示了使用紧凑的声学中间表征可以显著地简化WaveNet架构。
索引词: Tacotron 2, WaveNet, text-to-speech
1. 介绍
从文本生成自然语音(语音合成,TTS)研究了几十年[1]仍然是一项有挑战的任务。这一领域的主导技术随着时代的发展不断更迭。单元挑选和拼接式合成方法,是一项把预先录制的语音波形的小片段缝合在一起的技术[2, 3],过去很多年中一直代表了最高水平。统计参数语音合成方法[4, 5, 6, 7],是直接生成语音特征的平滑轨迹,然后交由声码器来合成语音,这种方法解决了拼接合成方法中出现的边界人工痕迹的很多问题。然而由这些方法构造的系统生成的语音与人类语音相比,经常模糊不清并且不自然。
WaveNet [8]是时域波形的生成式模型,它生成的语音的保真度开始可以与真人语音媲美,该模型已经应用到一些完整的语音合成系统中 [9, 10, 11]。然而WaveNet的输入数据(语言学特征,预测的对数基频(F0),以及音素时长)却需要大量的领域专门知识才能生成,需要一个详尽的文本分析系统,还要一个健壮的语音字典(发音指南)。
Tacotron [12]是一个从字符序列生成幅度谱图的seq2seq架构 [13],它仅用输入数据训练出一个单一的神经网络,用于替换语言学和声学特征的生成模块,从而简化了传统语音合成的流水线。为了最终合成出幅度谱图,Tacotron使用Griffin-Lim [14] 算法估计相位,然后施加一个短时傅里叶逆变换。作者们指出,相比WaveNet中使用的方法,Griffin-Lim算法会产生特有的人工痕迹并且合成的语音保真度较低,所以这只是一个临时方法,将来要替换成神经声码器。
在这篇论文中,我们描绘一个统一的完整的神经网络语音合成方法,它集前述两种方法之长:一个seq2seq的Tacotron风格的模型 [12] 用来生成梅尔声谱图,后接一个WaveNet声码器 [10, 15] 的修订版。该系统允许直接使用字符序列和语音波形数据进行端到端的训练学习语音合成,它合成的语音的自然度接近了真人语音。
Deep Voice 3 [11]描述了一个类似的方法,然而,不同于我们的系统,它的语音保真度还不能与人类语音匹敌。Char2Wav [16]提出了另外一个类似的方法,也使用神经声码器进行端到端的TTS学习,但它使用与我们不同的中间特征表达(传统的声码器特征),并且他们的模型架构与我们迥然不同。
2. 模型架构
我们提出的系统由两部分组成,如Fig.1所示:
(1)一个引入注意力机制(attention)的基于循环seq2seq的特征预测网络,用于从输入的字符序列预测梅尔频谱的帧序列;
(2)一个WaveNet网络的修订版,用于基于预测的梅尔频谱帧序列来学习产生时域波形样本。
Tacotron 2 系统架构
2.1. 中间特征表达
在这项研究中,我们使用低层次的声学表征-梅尔频率声谱图-来衔接系统的两个部分。梅尔声谱图通过对时域波形进行计算很容易得到,使用这样一个表征,为我们独立训练两部分组件提供了可能。梅尔频谱比波形样本更平滑,并且由于其每一帧都是对相位不变的,所以更容易用均方误差损失(MSE)进行训练。
梅尔频率声谱图与线性频率声谱图-即短时傅里叶变换的振幅-是相关的。从对人类听觉系统的响应测试中得到启发,梅尔频谱是对短时傅里叶变换的频率轴施加一个非线性变换,用较少的维度对频率范围进行压缩变换得到的。这个与听觉系统类似的频率刻度方法,会强调语音的低频细节,低频细节对语音的可理解度非常关键,同时淡化高频细节,而高频部分通常被磨擦声和其他爆裂噪声所主导,因此基本上在高保真处理中不需要对高频部分进行建模。正是由于具有这样的属性,基于梅尔刻度的特征表达在过去几十年一直广泛应用于语音识别中。
线性声谱图抛弃了相位信息(因此是有损的),而像Griffin-Lim [14] 这样的算法可以对抛弃的相位信息进行估计,用一个短时傅里叶逆变换就可以把线性声谱图转换成时域波形。梅尔声谱图抛弃的信息更多,因此对逆向波形合成任务提出了挑战。但是,对比WaveNet中使用的语言学和声学特征,梅尔声谱图更简单,是音频信号的更低层次的声学表征,因此使用类似WaveNet的模型构造神经声码器时,在梅尔声谱图上训练语音合成应该更直截了当。我们将会展示用WaveNet架构的修订版从梅尔声谱图可以生成高质量的音频。
2.2. 声谱图预测网络
在Tactron中,使用50毫秒帧长,12.5毫秒帧移,汉宁窗截取,然后施加短时傅里叶变换(STFT)得出线性频谱。然后使用频率范围在125赫兹到7.6K赫兹之间的80通道的梅尔滤波器组对STFT的线性频率进行过滤,后接对数函数进行范围压缩,从而把STFT幅度转换到梅尔刻度上。在进行对数压缩前,滤波器组的输出振幅被稳定到最小0.01以便限制其在对数域中的动态取值范围。
声谱图预测网络中,包含一个编码器和一个引入注意力(attention)机制的解码器。编码器把字符序列转换成一个隐层表征,继而解码器接受这个隐层表征用以预测声谱图。输入字符被编码成512维的字符向量,然后穿过一个3层卷积,每层卷积包含512个5 x 1的卷积核,即每个卷积核横跨5个字符,后接批标准化(batch normalization)[18]和ReLU激活函数。像Tacotron中一样,卷积层会对输入字符序列的大跨度上下文(例如N-grams)进行建模。最后一个卷积层的输出被传递给一个双向[19] LSTM [20]层用以生成编码特征,这个LSTM包含512个单元(每个方向256个单元)。
构建一个注意力网络(attention network)用以消费编码器的输出结果,编码器的每次输出,注意力网络都将编码序列归纳为一个定长上下文向量。我们使用[21]中的位置敏感注意力机制,该机制对加法注意力机制[22]进行了扩展,使得可以使用之前解码处理的累积注意力权重作为追加特征,因此使得模型在沿着输入序列向前移动的时候保持前后一致,减少了子序列重复或者遗漏等解码处理中潜在的失败。位置特征用32个长度为31的1维卷积核卷积得出,然后把输入序列和位置特征投影到128维隐层表征后,计算出注意力概率。
解码器是一个自回归的循环神经网络,它从经过编码的输入序列预测输出声谱图,一次预测一帧。上一步预测出的频谱帧首先被传入一个每层由256个隐藏ReLU单元组成的双层全连接的“pre-net”,我们发现作为一个信息瓶颈层(bottleneck),pre-net对于学习注意力是必要的。pre-net的输出和注意力上下文向量拼接在一起,传给一个两层堆叠的由1024个单元组成的单向LSTM。LSTM的输出再次和注意力上下文向量拼接在一起,然后经过一个线性变换投影来预测目标频谱帧。最后,目标频谱帧经过一个5层卷积的“post-net”来预测一个残差叠加到卷积前的频谱帧上,用以改善频谱重构的整个过程。post-net的每层由512个5 × 1卷积核和一个批标准化处理组成,除了最后一层卷积,每层的批标准化处理都后接一个tanh激活函数。
我们在post-net前后对均方误差进行最小化以辅助收敛,我们还实验了用混合密度网络[23, 24]对输出结果的分布进行对数似然损失最小化,以期待可以避免输出频谱是一个直流常量,但是结果发现这样做使得训练更困难,也没能得到更好的合成样本。
并行于频谱帧的预测,解码器LSTM的输出与注意力上下文向量拼接在一起,投影成一个标量后传递给sigmoid激活函数,来预测输出序列是否已经完成的概率。预测了这一“停止标志”,在推断时允许模型动态的决策什么时候结束频谱生成,而不是在固定时间内一直运行。
网络中的卷积层使用概率为0.5的dropout [25]进行正则化处理,LSTM层使用概率为0.1的zoneout [26]进行正则化处理。为了在推断时给输出结果带来些变化,概率为0.5的dropout只施加在自回归解码器的pre-net上。
与Tacotron对比,我们的模型使用更简洁的构造模块,在编码器和解码器中不使用Tacotron中的“CBHG”堆叠结构和GRU循环层,转而使用普通的LSTM和卷积层。我们没有在解码器的输出中使用“缩小因子(reduction factor)”,即每个解码步骤只输出一个单独的频谱帧。
2.3. WaveNet 声码器
我们使用[8]中WaveNet架构的一个修正版,把梅儿频谱特征表达逆变换为时域波形样本。在WaveNet的原架构中,有30个扩大卷积层,分3个循环进行,也就是说第k(k = 0 : : 29)层的扩张率等于2的p次方,p等于k (mod 10)。
然而没有像WaveNet那样使用softmax层预测离散片段,我们借鉴了PixelCNN++ [27]和最近WaveNet的改进版[28],使用10元混合逻辑分布(10-component MoL)来生成频率为24k赫兹的16位深的语音样本。为了计算混合逻辑分布,WaveNet的堆叠输出传给ReLU激活函数,再连接一个线性投影层来为每一个混元预测参数(均值,对数刻度,混合权重)。损失函数使用标定真实数据的负对数似然函数计算而得。
原始的WaveNet使用5毫秒帧率下的语言特征,音素时长,以及对数基频(F0)。我们在实验中注意到在5毫秒帧率过于紧密,导致预测频谱数据帧时有显著的发音问题,因此我们修改了WaveNet架构,在转置卷积网络中通过使用2层上采样把帧率改成了12.5毫秒。
3. 实验 & 结果
3.1. 构建训练
我们的训练过程包括,首先单独训练特征预测网络,然后基于特征预测网络的输出,来训练修改版的WaveNet。
我们在单个GPU上,使用最大似然训练规程来训练特征预测网络(在解码器端不是传入预测结果而是传入正确的结果,这种方法也被称为teacher-forcing),指定batch size为64,使用Adam优化器并设定参数β1 = 0:9; β2 = 0:999; epsilon = 10−6,学习率初始值10-3并在50000次迭代后指数下降到10-5,使用权重为10-6的L2正则化。
然后把特征预测网络输出的预测结果与标定数据对齐,我们使用经过对齐处理的预测结果,来训练修改过的WaveNet,也就是说这些预测数据是在teacher-forcing模式下产生的,所以每一个频谱帧数据恰好与一个波形样本对齐。训练过程中,使用Adam优化器并指定参数β1 = 0:9; β2 = 0:999; epsilon= 1e-8,学习率固定为10-4,把batch size为128的批训练分布在32颗GPU上执行并同步更新,这有助于使用最近的更新来平衡整个模型的权重。所以我们在更新网络参数时采用衰减率为0.9999的指数加权平均 – 这个处理用在推断中(请参照[29])。为了加速收敛,我们用127.5的缩放因子来放大目标波形,这使得混合逻辑层的初始输出更接近最终分布。
我们在内部美式英语数据集上训练所有的模型,这个数据集包含24.6小时的一位专业女性播音员的语音数据。数据集中的所有文本都被拼写出来了,比如”16”被写成”sixteen”,即所有的模型都是在经过预标准化处理过的数据上训练的。
3.2. 评估
在推断阶段生成语音的时候,是没有标定数据的,所以与训练阶段的teacher-forcing做法不同,我们在解码处理中直接传入上一步的预测结果。
我们从测试数据集中随机选择了100个文本作为评估数据集,用这个评估数据集生成的语音发送给类似Amazon Mechanical Turk这样的打分服务团队,进行主观平均意见评分(MOS),每个评估数据至少有8个人打分,分值从1分到5分,打分间隔为0.5。每个模型的评估都是相互独立实施的,因此分配给评分人打分时,两个不同模型的输出结果不会被直接比较。
注意虽然评估数据集中的评估样本实例不包含在训练数据集中,但是两个数据集中仍然有一些重复的模式和相同的词语,与用随机词语生成的数据集相比,这可能会导致得到一个较高的MOS得分。但是这样做我们可以很容易与标定真实数据进行比较。因为所有参与比较的系统都在同一数据集上进行训练,所以互相比较仍然是有意义的。
表1展示了我们的方法和其他方法的对比结果。为了更好的隔离使用梅尔声谱图作为特征所带来的影响,我们使用类似上文介绍的方法对WaveNet架构进行了修改,并用语言学特征训练WaveNet模型,并对其结果进行了比较。我们还比较了使用线性声谱图和Griffin-Lim合成语音的原始Tacotron模型,以及Google内部已经投入生产系统的拼接式[30]和参数式基线系统。我们发现,本次提出的系统显著优于所有其他TTS系统,其结果可以与标定真实语音相媲美。
我们还对我们系统的合成结果和标定真实语音进行了细致的对比评估,评分者被要求给出一个 -3(合成结果比标定真实语音差很多)到3(合成结果比标定真实语音好很多)之间的分数。整体平均分−0:270 ± 0:155说明评分者在很小的程度上更喜欢标定真实语音,但这个程度在统计学上是显著的。细致的剖析请参考图2。评分者的点评表明偶尔的发音错误是更喜欢标定语音的主要原因。
在附件E[11]中,我们手工分析了在这100个句子的测试数据集中,系统的出错模式。用这些句子合成的语音中,无单词重复,6次发音错误,1次跳词,23次韵律不自然,例如重音放在了错误的音节或者单词上,或者不自然的音调。最终我们的模型达到了4.354的MOS分数。这些结果表明,系统能够可靠的关注到全体输入,但在韵律建模上还有改善空间。
最后,我们对使用37个新闻头条合成的语音进行了评估,以测试系统在领域外数据上的泛化能力。在这个评估中,我们的模型得到了4:148±0:124的MOS分数,而使用语言学特征训练的WaveNet得到了4:137 ± 0:128。对两个系统生成的语音进行细致的对比评估也表明二者不分伯仲 – 对我们系统的偏好在统计学上是非显著的0:142±0:338。查验评分者的点评也表明我们提出的神经系统模型生成的语音更自然,更接近人类。这个结果指出了端到端的神经方法所面临的一个挑战:模型训练需要在覆盖目标领域的数据上进行。
3.3. 剥离研究
3.3.1. 预测特征 vs 标定真实数据
然而我们模型的两部分组件是独立训练的,WaveNet组件要依赖于前一个组件的特征预测结果才能进行训练,一个可替代的方法是,使用从标定真实数据抽出的梅尔声谱图来训练WaveNet,这样就允许与特征预测网络隔离开来进行训练。我们在表2展示了这种方法的可能性。
正如[10]中指出的,WaveNet比Griffin-Lim算法生成的语音质量高很多。但是使用线性声谱图或者梅尔声谱图却没有太大区别。这样一来,梅尔声谱图由于是一个更紧凑的表达所以使用它更好。在将来研究如何在梅尔频率通道数和语音质量(MOS)之间取得妥协将是一件有意思的工作。
正如所料,当训练和推断使用的特征类型一致时性能最好,然而当用标定事实数据的梅尔声谱图训练而使用预测特征进行推断时,比两者互换后的得分更糟糕。这可能是由于基于标定数据训练出的模型,进行推断时预测特征中包含的固有噪声不能被处理。可以通过数据增强减小对调前后的得分差别。
3.3.2. 线性声谱图
为了与梅尔声谱图的效果做对比,我们训练特征预测网络使其预测线性频率声谱图,这样就可以用Griffin-Lim算法对声谱图进行逆变换。
正如[10]中指出的,WaveNet比Griffin-Lim算法生成的语音质量高很多。但是使用线性声谱图或者梅尔声谱图却没有太大区别。这样一来,梅尔声谱图由于是一个更紧凑的表达所以使用它更好。在将来研究如何在梅尔频率通道数和语音质量(MOS)之间取得妥协将是一件有意思的工作。
3.3.3. 后处理网络
由于预测特征帧在被解码前不能被使用,我们在解码后使用了一个卷积后处理网络把过去帧和未来帧都包含进来以改善未来帧的预测。然而,因为WaveNet已经包含了卷积层,可能会质疑使用WaveNet声码器的话,后处理网络是否还有必要。为了回答这个问题,我们比较了使用和不使用后处理网络的结果,不使用后处理的MOS评分只得到了4:429 ± 0:071,而使用后处理的MOS评分是4:526 ± 0:066,所以从经验上看后处理网络仍然是网络设计的一个重要组成部分。
3.3.4. 简化WaveNet
WaveNet最典型的特征是它使用了扩大卷积,感受野随卷积的层数指数级增长。我们提出一个假说:由于相比语言学特征,梅尔声谱图是声波的更贴切的表达,并且也获取了帧序列中的长期依赖信息,更小感受野的更浅的网络或许也可以圆满的解决问题。我们使用不同的感受野大小和卷积层数来评价WaveNet,以验证我们提出的假说。
如表4所示,我们发现,与30层卷积,256毫秒感受野的基线模型相比,卷积层减少到12层,感受野10.5毫秒时,模型仍然能生成高质量语音。这个结果确认了[9]中的观察:对于语音质量来说一个大的感受野并不是必须的。然而,我们推测正是因为选择了梅尔声谱图所以才允许了这个复杂度的降低。
另一个角度看,如果我们去除所有的扩大卷积,感受野就会比基线模型小2个数量级,尽管堆栈还是同样深,但语音质量会大幅度下降。这表明模型需要足够的时间轴上下文才能生成高质量语音。
4. 结论
这篇论文对Tacotron2进行了详细描述,它是一个整合了两个组件的系统,一个是用来预测梅尔声谱图的带有注意力机制的seq2seq循环网络,另一个是WaveNet声码器的修订版本。该系统合成的语音在韵律上达到了Tacotron同等水平,同时语音质量达到了WaveNet水平。该系统可以通过数据直接训练,不需要依赖复杂的特征工程,达到了当前最佳语音质量,与人类语音的品质很接近。
来源:CSDN
作者:Jackson王
链接:https://blog.csdn.net/wy19961103/article/details/103459990