2017年,google提出Tacotron模型,该模型包括声学模型和声码器两部分,从文本直接生成音频波形。其中,声学模型部分采取encoder-attention-decoder框架,以RNN作为主要网络结构。此后,在Tacotron的基础上,产生了Tacotron2,DurIAN,Non-Attentive Tacotron,Parallel Tacotron1/2等变体。本文对Tacotron系列的声学模型进行介绍。
Tacotron
1. 提出背景
Tacotron是一种端到端的TTS生成模型。与传统统计参数TTS系统相比,端到端系统有如下优势(这里端到端指输入字符embedding输出线性频谱):
a. 减轻了对特征工程的需求
b. 可在模型的开始就对某些条件进行控制,而不仅局限于个别组件中。因此更容易对音频的各种属性进行丰富的调节,例如说话人、语言、情感等高级特征,迁移到新数据上也更容易。
c. 模型的鲁棒性更强。与之相比,多阶段模型可能出现不同组件之间误差的叠加。
根据以上特点,端到端模型更适于在现实世界中的大量丰富、富有表现力、常带有噪声的数据上训练。
2. 模型结构
Tacotron的backbone是带有attention的seq2seq结构,输入文本,声学模型输出线性频谱,经过基于Griffin-Lim重构算法的声码器合成波形。其模型结构如图一所示。
图一 Tacotron模型结构
图二 CBHG结构
● encoder
1. 输入文本经过nn.embeding映射为词向量
2. prenet (三层DNN+Relu+Dropout,增加非线性,帮助收敛,提高泛化性)
3. CBHG结构(降低过拟合,减少合成错误)
a. conv1d
沿句子长度做一维卷积,用K种大小不同的卷积核做K次,卷积核大小从1到K,步长为1,结果堆叠在一起,然后做最大池化,再过两层一维卷积。
b. highway
把上一步的输出加pre-net的输出(即非线性后的词向量)经过highway。highway结构为:共四层,每一层有两个DNN,采用的激活函数分别为Relu和Sihmoid。将二者输出分别设为out1和out2,输入设为in,out=out1∗out2+in*(1−out2)
c. 双向RNN
● decoder
1. decoder input 经过prenet
2. AttentionRNN
prenet的输出先经过RNN单元,获得query。将encoder output映射到key/value,做attention获得context vector。context vector和RNN输出拼接,作为decoder RNN的输入
3. DecoderRNN
两个GRU堆叠,且带有残差连接
每个解码步预测多个、不重叠的帧,能降低模型规模、和训练时间。且因为相邻帧有关联性,每个字符对应多个帧,能够加快收敛速度。
● post process
1. CBHG post-net
从mel频谱生成linear scale 频谱
后处理网络能看到整个解码的序列,而不像seq2seq那样,只能从左至右的运行。后处理网络可以通过反向传播来修正每一帧的错误。
2. Griffin-Lim vocoder生成语音
3. 性能对比
MOS分优于参数合成系统。在Griffin-Lim声码器带有伪影的情况下,这代表一个很有希望的结果。
Tacotron 2
1. 提出背景
1. Griffin-Lim作为声码器,与wave net相比产生的音频具有特征伪影和更低的音频质量。本文继承Tacotron结构,用wavenet作为声码器,产生与真实人声自然度相当的语音。
2. 同期的Deepvioce3模型,生成语音的自然度不如本文模型。Char2wav用传统的声码器特征作为中间量,结构也与本文模型不同。
2. 模型结构
图二 Tacotron2模型结构
● encoder
1. 输入文本编码为词向量
2. 三个conv1d层,卷积核5*1
3. 双向LSTM
● decoder
1. decoder input经过prenet(两层DNN)
2. prenet输出与上一时刻的context vector拼接,经过两层LSTM
3. LSTM的输出作为query,与encoder输出映射到的key/value做location sentivitive attention,获得context vector
4. context vector和LSTM输出拼接,并行经过两个线性变换,预测mel频谱帧和stop token
● post process
1. 5层cov1d,卷积核5*1
2. wavenet声码器
3. 对Tacotron的改进
1. 结构简化:在声学模型中用RNN取代了CBHG,后处理中用CNN取代了CBHG
2. 采用wavenet作为声码器
4. 性能对比
1. 与tacotron相比,MOS分明显提升
2. 与真实语音MOS份对比,略低于真实语音,因偶尔有发音错误
3. 韵律方面仍有提升空间
4. 在域外数据上测评,优于wavenet,但有时出现发音困难,如对人名。这一结果指出了端到端系统面临的挑战:训练数据需包含预期应用的数据
DurIAN
1. 提出背景
1. end2end TTS 模型的鲁棒性较差,合成域外文本时原文本中的词可能会被重复或跳过。本文观察发现,这种不稳定是由于end2end attention机制引起的。
2. 本文提出的DurIAN模型,结合了传统参数模型和end2end模型,兼顾自然度和鲁棒性。用一个对齐模型代替attention。
2. 模型结构
图三 DurIAN模型结构
● encoder:
1. 输入音素+韵律边界序列
2. pre-net(2DNN)
3. CBHG
4. skip state 去除韵律边界位置对应的隐藏层向量
5. 通过force alignment获得每个音素的持续长度,由一个单独的持续时长预测预测音素的持续时长。根据持续时长对隐藏层向量进行状态扩展,同时对音素内的帧进行相对位置编码。
(引入style code向量进行风格控制,其方向代表属性,幅值代表强度,在skip encoder的输出和持续长度预测模块中进行拼接)
● decoder:
1. decoder input 输入prenet,输出和扩展过的encoder output拼接
2. Decoder RNN
(当单步预测多帧时,将encoder output的对齐部分进行attention,获得context vector,在每个时间步和prenet 的输出拼接)
● post net
3. 对Tacotron的改进
1. 通过引入持续时间预测,对encoder output进行扩展,以此实现encoder和decoder 的匹配。取代了Tacotron中的attention机制,获得更好的鲁棒性。
4. 性能对比
1. 自然度:在male和famale两个数据集上进行MOS分评测,与Tacotron2结果相近。说明Tacotron2的自然度是其他组件的结果。
2. 鲁棒性: 针对Tacotron2中易出现的跳词和重复两种情况进行评测,发现DurIAN的鲁棒性更好。
3. 多通道WaveRNN vocoder 速度更块
4. 生成了不同兴奋程度的语音
Non-attentive Tacotron
1. 提出背景
1. 基于attention机制的自回归TTS模型存在鲁棒性的问题。自回归网络需要在每一帧预测是否停止,单帧的故障可能导致早停等严重问题。且attention没有硬约束来避免重复、跳过、长停顿或模糊。这些问题较罕见,在小测试集中往往表现不出来,但实际场景下一旦出现就影响严重。
2. 一些现有的提高鲁棒性方法,如在decoder中减小曝光偏置、添加正则化使前向后向注意力一致、设计不同attention机制等,并不能从根本上解决问题。
3. 本文采用Tacotron2的框架,将attention用鲁棒性更好的持续时间预测模块和Gaussian上采样模块代替,提出Non-Attentive Tacotron结构
2. 模型结构
图四 Non-attentive模型结构
● encoder:
1. 音素序列(词边界带有silence token,序列结束token)输入,embedding编码
2. 3层conv
3. 双向LITM
4. 输出的音素embedding和说话人embedding拼接
5. Gaussian上采样,每个token先预测一个持续时间和范围参数 (标签中有持续时间,通过标签,显式对齐)
a. 持续时间预测:encoder output通过2层BiLSTM,一个投影层
b. 范围预测:encoder output和持续时间预测的输出拼接,通过2层BiLSTM,一个投影层
将待上采样的encoder output和持续时间向量、范围向量进行高斯运算,得到采样后的序列。高斯运算为:对由持续时间值确定的第i个token 的中心,放置一个标准差为范围向量的高斯分布。然后对每一帧,根据该帧处的高斯分布加权求和。论文中证明了这种上采样方式比直接复制扩展所生成语音具有更好的自然度。
6. 对上采样后的结果拼接正弦位置编码
● decoder:
1. decoder input 输入prenet(2层DNN),输出和当前上采样过的encoder output拼接
2. 2层 LSTM,输出和上采样过的encoder output拼接,然后映射到mel频谱维度
● post net:
1. 带有残差链接的5层conv
3. 无监督训练
对于训练所需的持续时间标签,通过一个外部带有词典的基于HMM aligner得到,但有时存在训练不准确的问题。替代方案是使用无监督和半监督训练,用细粒度VAE建模输入token和目标mel频谱的对齐。但实验对比这种方式会影响生成语音的自然度和模型鲁棒性。
4. 对Tacotron2 的改进
1. 通过上采样对encoder output进行扩展,以此实现encoder和decoder 的匹配。取代了Tacotron2中的attention机制,获得更好的鲁棒性。
5. 性能对比
1. 自然度:使用Gaussian upsampling的自然度和Tacotron 2 (GMMA)相近,优于vanilla upsampling。
2. 语速控制:能够细粒度调节语速(0.8× – 1.25×)到每个单词或音素
3. 鲁棒性:
定义了两个指标。
a. 未对齐持续时间比(UDR):过度生成如长停顿、重复、结束后未停止等
b. ASR单词删除率(WDR):生成不足
两个指标均优于Tacotron2,尤其是UDR,Tacotron2过度生成的问题较严重。
4. 将decoder部分换成与FastSpeech相同的非自回归结构,MOS分变差