文章目录
本文提出了Jointly Trained Duration Informed Transformer(JDI-T),一种不需要显式的对齐训练duration predictor的方法。即将autoregressive transformer加入联合训练,产生phoneme的对齐,而不是预先训练一个用于产生duration的模型。
主要的contribution有:
- 提出了新的训练架构,即feed-forward Transformer(encoder端)与duration predictor与自回归的Transformer(decoder端)联合训练。应用自回归的transformer同时产生的对齐(即不是预先训练的模型产生的对齐)训练duration predictor ,简化了训练流程;
- 应用一个辅助的loss以及forward attention机制,纠正attention对齐会带来的问题(即有时不满足单调性,会发生重复或者skip的情况),这使得在训练的早期attention提取的phoneme duration就比较可信了。
- 与常用的TTS模型对比(tacotron2\transformer\fastspeech)
1. 模型描述
1.1. Feed-Forward Transformer
Feed-Forward Transformer如下图左边所示,包括phoneme embedding, an encoder pre-net, scaled positional encodings, multiple Feed-Forward Transformer(FFT) blocks, a length regulator and a linear layer for phoneme sequence to mel-spectrogram transformation.
FFT block的结构如下图所示,(与fastspeech中的FFT结构不同的是layer norm在前)
length regulator以下的FFT的作用像是一个encoder,encoder的output既会送给autoagressive tansformer, 也会送给duration predictor. length regulator 负责扩展 phoneme sequence(短)到 mel-spec sequence(长),length regulator以上的FFT负责将扩展后的latant representations映射成mel spec,与真实的mel spec求解
l
1
l_1
l1 loss。
1.2. Autoregressive Transformer
包括左侧的length regulator以下的encoder(共享),decoder prenet 以及decoder和用于预测Mel spec的线性层,其中decoder的结构如图所示,也是layer norm在前,注意用到attention的部分一个是mask MHA, 一个是单头的attention(文中说是单头的、单层的attention已经足够有效了)。
Autoregressive Transformer提供了phoneme duration,具体方法是根据decoder 与 encoder之间的attention, 得到每个phoneme 的duration。即第i帧对所有字符求注意力得分,第j个字符得分最高,即认为第i帧对齐到了第j个字符,每个字符对齐到的帧数,即该字符的duration。这个duration会用于训练时的length regulator,也会用于训练duration predictor。
1.3. Duration Predictor
由两层带有relu、layer norm及dropout的1D卷积组成,最后还有一层linear层,输出对数域的duration。这部分是接在encoder的输出后的,因此这部分也共享encoder。这部分训练的duration target由autoregressive transformer通过attention提出。训练过程中将这部分梯度截断,只用于训练Duration Predictor的两层卷积及线性层,而没有传回encoder。
2. 辅助loss和Attention机制
2.1. CTCloss
前面的工作(Maximizing Mutual Information for Tacotron)中,指出加入识别的loss能够帮助tacotron减少合成错误,本文中也加入了识别的loss, ctc loss,帮助自回归的transformer在训练中学到稳定的对齐,这也是能够联合训练的先决条件。
2.2. Forward attention with Guided attention loss
在Attention中加入如图的单调性限制:
并加入了衡量attention集中在对角线的程度的Guided attetion loss, 总的loss可以写为:
L
=
∥
y
−
y
′
∥
+
∥
y
−
y
′
′
∥
+
∥
d
−
d
′
∥
2
+
CTCLoss
+
GALoss
\begin{aligned} \mathrm{L}=&\left\|\mathbf{y}-\mathbf{y}^{\prime}\right\|+\left\|\mathbf{y}-\mathbf{y}^{\prime \prime}\right\|+\left\|\mathbf{d}-\mathbf{d}^{\prime}\right\|_{2} \\ &+\text { CTCLoss }+\text { GALoss } \end{aligned}
L=∥y−y′∥+∥y−y′′∥+∥d−d′∥2+ CTCLoss + GALoss
其中
y
y
y表示mel谱的ground truth,
y
′
\mathbf{y}^{\prime}
y′和
y
′
′
\mathbf{y}^{\prime \prime}
y′′分别表示autogressive Transformer和feed forward transformer的输出,
d
d
d表示autogressive Transformer基于attention机制提出的phoneme duration,
d
′
d^\prime
d′表示duration predictor预测的phoneme duration。