文章目录
MultiSpeech
来源:Interspeech2020
单位:北大、微软
针对多说话人合成任务,基于Transormer TTS的改进。
Transformer TTS训练可以并行化,与基于RNN的方法相比更有效率。Transformer TTS在decode的时候是自回归的,即输出是一个时间步一个时间步给出的。(Fastspeech在这个基础上,通过加入Duration预测模块,使得模型在inference阶段,也可以实现并行,缩短了推断的预测时间。)但是Transformer TTS对encoder和decoder之间的对齐学习的不好,尤其是在多说话人场景(说话人在变化,声音带噪声)下。
主要的改进包括以下三个方面:
1、加入了Diagonal constraint in attention
在Loss中加了一项,表明encoder-decoder之间的attention符合对角线规律的程度。如图:
上图的对齐比下图的对齐学得好。定义量化指标r(the diagonal attention rate):
r
=
∑
t
=
1
T
∑
s
=
k
t
−
b
k
t
+
b
A
t
,
s
S
r=\frac{\sum_{t=1}^{T} \sum_{s=k t-b}^{k t+b} A_{t, s}}{S}
r=S∑t=1T∑s=kt−bkt+bAt,s
k
=
S
T
k=\frac{S}{T}
k=TS
S是mel谱的长度,T是text的长度,这里是用phone来建模的,因此就是这句话对应的phone序列的长度。分子表示在规定的对角线范围内的attetion得分之和,分母是所有Attention得分的和。将attention集中在对角线的程度,量化成loss(
L
D
C
L_{DC}
LDC),并乘上一个系数,加到原始的loss上:
L
D
C
=
−
r
L_{DC}=-r
LDC=−r
在预测时,也有同样遵循对角线规则,限定attention的范围。引入了一个滑窗,滑窗的范围是
[
−
1
,
4
]
[-1,4]
[−1,4], 即向前看1个phoneme,向后看4个phoneme(如果是0位置的phoneme,就不向前看了)。滑窗滑动的原则为:
C
s
=
⌊
∑
t
=
0
T
(
A
t
,
s
∗
t
)
⌋
C_{s}=\left\lfloor\sum_{t=0}^{T}\left(A_{t, s} * t\right)\right\rfloor
Cs=⌊t=0∑T(At,s∗t)⌋
如果
C
s
C_{s}
Cs连续三帧偏离index为0的t位置, 就向后滑动窗一次。(使用这种方法得到的对齐,作为fastspeech的teacher能够缓解fastspeech合成的语速过快的问题)
2、Postion information in Encoder
传统的Transformer TTS一般拿
x
+
p
x+p
x+p为encoder的输入,
x
x
x是phoneme/character的embedding,
p
p
p表示positional embedding,一般采用attention is all you need文章中的positiional embedding。对于每个位置,
p
p
p的值由正弦或者余弦函数刻画,取值范围在
[
−
1
,
1
]
[-1,1]
[−1,1]。
x
x
x的embedding是在整个端到端的过程中学习的,有的值大有的值小,对于不同scale的embedding,
p
p
p的影响各不相同,导致
p
p
p在
x
+
p
x+p
x+p的作用中或者偏大或者偏小。因此作者在x的embedding后,加入layernorm层,将x的embedding进行normalize。
L
N
(
x
)
=
γ
x
−
μ
σ
+
β
L N(x)=\gamma \frac{x-\mu}{\sigma}+\beta
LN(x)=γσx−μ+β
3、Pre-net Bottleneck in decoder
临近的帧的mel谱往往有很强的相似性,因此在自回归过程中,后一帧会直接copy前一帧的信息,而不是从文本端获取信息。一般会通过在decoder前加一个pre-net。其他的方法常用的pre-net维度有80-256-256-512,80-256-128,作者经实验发现,将80维mel先提升到256或者512,再减半到128或256, 仍然比80维大,并不一定能防止再多说话人场景下的复制和对齐学习问题。作者将pre-net的维度降到1/8,即80-32-32-256,dropout=0.5,发现可以有效地防止复制和更好地学习对齐。
整个系统的结构如图,改进部分用绿色标出。
实验效果,在VCTK和LibriTTS数据集上的MOS评测得分:(GT表示ground truth, 即真实音频)
分别对三个改进的方法进行Ablation Study:(DC表示diagonal condtrain, LN表示layernorm,PB表示pre-net bottleneck)
可以看出embedding后的layer norm对效果提升最为明显。