《FastPitch: Parallel Text-to-speech with Pitch Prediction》论文学习
? 摘要
? ? ? ?提出了基于FastSpeech的基于基频轮廓的全并行文本-语音模型FastPitch。该模型在推理过程中预测音调轮廓,并生成可进一步控制音调轮廓的语音。因此,快速音高可以改变说话人感知到的情绪状态,或强调某些词汇单位。我们发现,匀速提高或降低音高产生的语音类似于语音的自愿调制。对频率轮廓进行调节可以提高合成语音的质量,使其可以与最先进的技术相媲美。它没有引入开销,而且FastPitch保留了FastSpeech的有利的、完全并行的Transformer架构,具有类似于mels -scale谱图合成的速度,比实时快几个数量级。 ? ? ? ?
? 1 介绍
? ? ? ?神经文本到语音(TTS)系统的最新进展带来了自然发声、类人语音的实时合成。由于音频信号的高时间分辨率,主要的模型是自回归的和昂贵的计算。前馈模型能够比自回归模型更快地合成梅尔谱图。例如FastSpeech(《Fastspeech: Fast, robust and controllable text to speech》),它基于前馈Transformer(《BERT: Pre-training of deep bidirectional transformers for language understanding》),显式预测每个输入符号的持续时间,并并行推断整个谱图。前馈模型即使在输出帧与输入符号不完全对齐的条件下也能合成合理的声音。然而,这些模型仍然无法匹配自回归生成的质量,并在训练中提出了一些挑战(《Fastspeech: Fast, robust and controllable text to speech》,《AlignTTS: Efficient FeedForward Text-to-Speech System without Explicit Alignment》)。 ? ? ? ? ? ? ? ?文本到语音模型通常取决于语音的附加质量,如语言特征和基本频率(《Wavenet: A generative model for raw audio》,《Parallel wavenet: Fast high-fidelity speech synthesis》)。将神经网络引入TTS使这些品质的精确建模成为可能。特别是,在连接模型(《Using deep bidirectional recurrent neural networks for prosodic-target prediction in a unit-selection text-to-speech system》)和后来的全神经模型中,使用神经网络建模的基频已多次被证明可以提高合成语音的质量(《Neural tts voice conversion》,《High quality, lightweight and adaptable TTS using LPCNet》)。基于基本频率的浊音/浊音决定是增强模型歌唱能力的常见方法(《Mellotron: Multispeaker expressive voice synthesis by conditioning on rhythm, pitch and global style tokens》,《Adversarially trained end-to-end korean singing voice synthesis system》),或对其他说话人(《Neural tts voice conversion》)的适应性。 ? ? ? ? ? ? ? ?在本文中,我们提出了FastPitch,这是一个基于FastSpeech的前馈模型,它改进了FastSpeech,并通过对每个输入符号估计的基频(我们简单地称之为基音轮廓)的条件来匹配最先进的自回归TTS模型。我们表明,这种俯仰轮廓的显式建模解决了前馈Transformer的质量缺陷。这些缺陷很可能是由于单在文本输入中缺乏足够的语言信息,将相同音标单位的不同发音折叠而产生的。通过对基本频率的制约,我们为模型提供了更多的语言信息,并防止了这种崩溃。此外,对基频的调节提高了收敛性,并消除了FastSpeech中所使用的梅尔谱图目标的知识蒸馏的需要。 ? ? ? ? ? ? ? ?由于该模型学会了预测音调,因此在合成过程中获得了新的实际应用,如改变基频、增加重点、增加表现力以及对音调轮廓进行交互式编辑等。用FastPitch不断偏移F0值,可以产生听起来自然的低音和高音变化,从而保留了人的感知身份,并优于普通的音高转换算法。我们的结论是,该模型是表达和学习模仿声带的行动,这发生在自愿调音的声音。 ? ? ? ? ? ? ? ?结合WaveGlow(《Waveglow: A flow-based generative network for speech synthesis》), FastPitch能够使用PyTorch库函数,而不借助于内核级优化(《Deep voice 3: Scaling text-to-speech with convolutional sequence learning》),以超过30倍的速度合成梅尔光谱图。在Mean Opinion Score评估中,FastPitch得分高于我们对Tacotron2(《Natural TTS synthesis by conditioning wavenet on mel spectrogram predictions》)的实施。 ? ? ? ? ? ? ? ?我们想要注意的是,在我们的源代码和这篇描述FastPitch的文章之间发布了FastSpeech(《Fastspeech 2: Fast and high-quality end-to-end text to speech》)中同时开发的音高预测的想法。 ? ? ? ?
? 2 模型描述
? ? ? ?FastPitch的架构如图1所示。它基于FastSpeech,主要由两个FFT栈(《》)[5]组成。第一个作用于输入标记的解析,第二个作用于输出帧的解析。设
x
=
(
x
1
,
.
.
.
,
x
t
)
\mathbf{x}=(x_1,...,x_t)
x=(x1?,...,xt?)为输入词汇单位序列,
y
=
(
y
1
,
.
.
.
,
y
T
)
\mathbf{y}=(y_1,...,y_T)
y=(y1?,...,yT?)为目标梅尔尺度谱图帧序列。第一个FFT堆栈产生隐藏表示:
h
=
F
F
T
r
a
n
s
f
o
r
m
e
r
(
x
)
(1)
\mathbf{h}=FFTransformer(x) \tag{1}
h=FFTransformer(x)(1)? ? ? ?利用隐藏表示
h
\mathbf{h}
h,用一维CNN预测每个字符的持续时间和平均音高
d
^
=
D
u
r
a
t
i
o
n
P
r
e
d
i
c
t
i
o
n
(
h
)
p
^
=
P
i
t
c
h
P
r
e
d
i
c
t
o
r
(
h
)
(2)
\hat{d}=DurationPrediction(\mathbf{h}) \\ \hat{p}=PitchPredictor(\mathbf{h}) \tag{2}
d^=DurationPrediction(h)p^?=PitchPredictor(h)(2)? ? ? ?且
d
∈
N
t
\mathbf{d} \in \mathbb{N}^t
d∈Nt和
p
∈
R
t
\mathbf{p} \in \mathbb{R}^t
p∈Rt接下来,将音调投影到匹配隐藏表示的维数
h
∈
R
t
×
d
\mathbf{h} \in \mathbb{R}^{t \times d}
h∈Rt×d并添加到
h
\mathbf{h}
h中。得到的和
g
\mathbf{g}
g被离散地上采样并传递给输出FFT,输出FFT产生输出的梅尔谱图序列:
g
=
h
+
P
i
t
c
h
E
m
b
e
d
d
i
n
g
(
p
)
y
^
=
F
F
T
r
a
n
s
f
o
r
m
e
r
(
[
g
1
,
,
.
.
.
,
g
1
?
d
1
,
g
2
,
,
.
.
.
,
g
2
?
d
2
,
.
.
.
,
g
t
,
,
.
.
.
,
g
t
?
d
t
]
)
(3)
\mathbf{g}=\mathbf{h}+PitchEmbedding(\mathbf{p}) \\ \hat{y}=FFTransformer([\underbrace{g_1,,...,g_1}_{d_1},\underbrace{g_2,,...,g_2}_{d_2},...,\underbrace{g_t,,...,g_t}_{d_t}]) \tag{3}
g=h+PitchEmbedding(p)y^?=FFTransformer([d1?
g1?,,...,g1???,d2?
g2?,,...,g2???,...,dt?
gt?,,...,gt???])(3)? ? ? ?该模型优化了预测和ground-truth模式之间的均方误差(MSE):
L
=
∣
∣
y
^
?
y
∣
∣
2
2
+
α
∣
∣
p
^
?
p
∣
∣
2
2
+
Υ
∣
∣
d
^
?
d
∣
∣
2
2
(4)
\mathcal{L}=||\hat{\mathbf{y}}-\mathbf{y}||^2_2 + \alpha||\hat{\mathbf{p}}-\mathbf{p}||^2_2 + \Upsilon||\hat{\mathbf{d}}-\mathbf{d}||^2_2 \tag{4}
L=∣∣y^??y∣∣22?+α∣∣p^??p∣∣22?+Υ∣∣d^?d∣∣22?(4)? ? ? ?训练中使用ground-truth
p
\mathbf{p}
p和
d
\mathbf{d}
d。在推理过程中,使用预测
p
^
\hat{\mathbf{p}}
p^?和
d
^
\hat{\mathbf{d}}
d^进行推理。 ? ? ? ?
? ? 2.1 输入符号持续时间
? ? ? ?使用在LJSpeech-1.1上训练的Tacotron2模型估计输入符号的持续时间。让
A
∈
R
t
×
T
\mathbf{A} \in \mathbb{R}^{t \times T}
A∈Rt×T是最后的Tacotron2注意力矩阵。第i个输入符号的持续时间为(《Fastspeech: Fast, robust and controllable text to speech》):
d
i
=
∑
c
=
1
T
[
a
r
g
m
a
x
A
r
,
c
=
i
]
(5)
d_i = \sum^T_{c=1}[argmax \mathbf{A}_{r,c}=i] \tag{5}
di?=c=1∑T?[argmaxAr,c?=i](5)? ? ? ?因为Tacotron2有一个单一的注意矩阵,我们不需要在注意头之间进行选择,因为它将是一个多头Transformer模型所必需的。 ? ? ? ? ? ? ? ?FastPitch对校准质量是稳健的。我们观察到,不同的Tacotron2模型提取的持续时间趋于不同。例如,对于相同的输入话语,最长的持续时间大约被分配在相同的位置,但可能分配给不同的字符(图2.1)。令人惊讶的是,这些不同的对齐模型产生了FastPitch模型,它合成了质量相似的语音。我们发现,即使是恒定的持续时间,例如,每个输入字符五个输出帧,仍然能产生可理解的语音。 ? ? ? ?
? ? 2.2 输入符号的音高
? ? ? ?利用精确的自相关法(《Accurate short-term analysis of the fundamental frequency and the harmonicsto-noise ratio of a sampled sound》),通过声周期检测得到ground-truth音值。设a为加窗信号,用Hann窗计算。该算法找到归一化自相关函数
r
x
r_x
rx?的极大值数组:
r
a
(
τ
)
=
∫
0
T
?
τ
a
t
a
t
+
τ
d
t
∫
0
T
a
t
2
d
t
r
x
(
τ
)
=
r
a
(
τ
)
r
w
(
τ
)
(6)
r_a(\tau)=\frac {\int^{T-\tau}_0 a_ta_{t +\tau}dt} {\int^T_0 a^2_t dt} \tag{6} \\ r_x(\tau)=\frac {r_a(\tau)} {r_w(\tau)}
ra?(τ)=∫0T?at2?dt∫0T?τ?at?at+τ?dt?rx?(τ)=rw?(τ)ra?(τ)?(6)? ? ? ?其中
r
a
r_a
ra?为加窗信号的自相关,
r
w
r_w
rw?为Hann窗的自相关,其封闭形式为(《Accurate short-term analysis of the fundamental frequency and the harmonicsto-noise ratio of a sampled sound》)。这些最大值成为候选频率。未发音的候选在每个时间步骤都存在。然后,利用Viterbi算法计算通过候选数组的最低代价路径。该路径最小化了候选频率之间的转换:
T
r
a
n
s
i
t
i
o
n
C
o
s
t
(
F
1
,
F
2
)
=
{
0
if?
F
1
=
0
?and?
F
2
=
0
V
o
i
c
e
d
U
n
v
o
i
c
e
d
C
o
s
t
if?
F
1
=
0
?xor?
F
2
=
0
O
c
t
a
v
e
J
u
m
p
C
o
s
t
if?
F
1
≠
0
?and?
F
2
≠
0
(7)
TransitionCost(F_1, F_2)= \begin{cases} 0 & \text{if $F_1=0$ and $F_2=0$} \\ VoicedUnvoicedCost & \text{if $F_1=0$ xor $F_2=0$} \tag{7} \\ OctaveJumpCost & \text{if $F_1 \neq 0$ and $F_2 \neq 0$} \end{cases}
TransitionCost(F1?,F2?)=??????0VoicedUnvoicedCostOctaveJumpCost?if?F1?=0?and?F2?=0if?F1?=0?xor?F2?=0if?F1??=0?and?F2??=0?(7)? ? ? ?为了得到一个F0值每mel-scale声谱图框架,我们改变默认的窗口大小从0.01到0.0116秒,它对应于输入跨度为单个mel-scale声谱图框架,计算使用短时傅里叶变换(STFT)跳256和采样率大小22050Hz。 ? ? ? ? ? ? ? ?使用提取的持续时间d在每个输入符号上平均F0值(图3)。未发音值不在计算范围内。对于训练,将值标准化为均值为0,标准差为1。如果某个符号没有发音的F0估计,它的音调就会被设为0。 ? ? ? ?训练non-averaged F0值,也就是说,一个值每mel-spectrogram框架,介绍了工件和合成语言不一致,即使真实球场上的轮廓模型,即模型没能学会预测,也不连贯的合成。在合成歌声的模型中也观察到了类似的伪影和行为(《Adversarially trained end-to-end korean singing voice synthesis system》,《Mellotron: Multispeaker expressive voice synthesis by conditioning on rhythm, pitch and global style tokens》)。 ? ? ? ? ? ? ? ?在(《Neural tts voice conversion》)之后,我们尝试为每个符号平均三个音高值,希望能捕捉到每个符号的开始、中间和结束音高。每个输入字符有三个基音值的语音质量不存在每个输出帧有一个基音值引入的伪影。然而,在盲测中,它被判定为每个输入字符只有一个音调值(章节3.2)。 ? ? ? ?
? 3 实验
? ? ? ?FastPitch的源代码和合成样本可以在网上找到。我们用一个预先训练过的WaveGlow声码器(《Waveglow: A flow-based generative network for speech synthesis》)合成波形用于所有模型的评估。 ? ? ? ?
? ? 3.1 设置
? ? ? ?该模型是在公开可用的LJSpeech 1.1数据集(《The LJ Speech Dataset》)[8]上训练的,LJSpeech 1.1包含大约24小时在22050Hz下记录的单个说话人的语音。我们使用语音识别模型对LJ034-0138和LJ031-0175样本进行了检查,手工纠正了这些错误的转录。 ? ? ? ? ? ? ? ?不同的作者倾向于使用LJSpeech1.1的自定义训练/开发/测试分割。我们谨慎地使用同样的分裂,这是用来训练WaveGlow。忽略这个细节,特别是在使用现成的WaveGlow检查点时,很容易在评估期间泄漏训练数据并夸大结果。利用1024个样本的窗长和256个样本的跳数,利用短时傅里叶变换计算了80个波段的mel-scale谱图。 ? ? ? ? ? ? ? ?模型的参数主要遵循FastSpeech(《Fastspeech: Fast, robust and controllable text to speech》)。网络中的嵌入向量和隐藏向量的维数为d=384。FFTransformer输入输出模块各有6层,单个64维注意头。FFTransformer层的每个前馈块由一个核大小为3的一维卷积和384/1536输入/输出通道、ReLU激活、第二个核大小为3的一维卷积和1536/384输入/输出滤波器、Dropout和layerNorm组成。 ? ? ? ? ? ? ? ?持续时间预测器和音调预测器具有相同的卷积结构。它们由一个核大小为3和384/256通道的1-D卷积和一个256/256通道的第2个1-D卷积组成,每个1-D卷积之后是ReLU、LayerNorm和Dropout层。最后一层是线性的,并将每个256通道向量投影到单个标量中。我们在每个Dropout层中使用Dropout率为0.1,包括注意力头上的Dropout。 ? ? ? ? ? ? ? ?所描述的模型是根据人物进行训练的。我们尝试了音素和(《Representation Mixing for TTS Synthesis》)字同时训练的混合方法。单词级和句子级的混合都给合成语音带来了令人不快的伪音。标准的输入清洗已经被应用:数字和常见的缩写已经被启发式地扩展(20 →twenty, dr.→doctor)。这些句子已被转换为小写ASCII字符。 ? ? ? ? ? ? ? ?FastPitch已经在8个NVIDIA V100 GPU上使用自动混合精度(《Mixed precision training》)进行训练,尽管类似的结果可以通过更长的、完全精确的训练实现。2小时后开始训练,全程训练5.5小时。我们使用LAMB优化器(《Large batch optimization for deep learning: Training bert in 76 minutes》),学习率为0.1,
β
1
=
0.9
\beta_1=0.9
β1?=0.9,
β
2
=
0.98
\beta_2=0.98
β2?=0.98和
?
=
1
e
?
9
\epsilon=1e-9
?=1e?9。与ADAM相比,它使训练在更高的学习率下保持稳定。学习率在1000步的预热期增加,然后根据Transformer计划(《Attention is all you need》)衰减。我们采用
1
e
?
6
1e-6
1e?6的权值衰减,并使用256个批量进行训练,每个GPU分成32个样本。 ? ? ? ?
? ? 3.2 评价
? ? ? 3.2.1 MOS 得分
? ? ? ?我们将FastPitch模型与Tacotron2进行了比较(表1)。样本在Amazon Turk上使用众包音频质量评估工具包(《Fast and easy crowdsourced perceptual audio evaluation》)进行评分。我们已经从LJSpeech-1.1的开发子集的前30个示例中生成了语音。每个模型至少收集了250个分数,总共有60个独特的Turkers参与了这项研究。为了获得资格,Turkers被要求通过听力测试。 ? ? ? ?
? ? ? 3.2.2 区间比较判断
? ? ? ?生成模型在超参数调整方面存在困难。生成样本的质量是高度主观的,进行大规模的研究既费时又费钱。虽然开发人员掌握了输出质量的主要差异,但微小的调整是具有挑战性的。为了有效地对更多的模型进行评分,并避免在同一个人对样本进行长时间评分时出现评分漂移,我们研究了比较样本对的方法。两两比较允许构建一个全球排名,假设技能评级是传递(《Large-Scale Speaker Ranking from Crowdsourced Pairwise Listener Ratings》)。这种方法最著名的例子是在国际象棋、体育和在线游戏中为人类玩家建立大规模排名。 ? ? ? ? ? ? ? ?我们进行了一项内部研究,其中超过50名参与者随机选择对样本打分,尽管比随机存在的(《Efficient ranking from pairwise comparisons》)更有效的选择策略。我们使用Glicko-2评级系统来基于这些分数建立一个排名。它在生成模型(《Skill rating for generative models》)的自动评分的背景下是已知的。每个参与者平均得分20对。我们给出了评分模型的相关子集的评分(图4):FastPitch有1、2和4个注意头,6和10个Transformer层,pitch以每个输入标志的三个值的分辨率预测。该方法允许我们评估一些超参数对合成语音的主观质量的影响。此外,我们发现它对有效的模型开发至关重要,即使有少数评估者。在开发过程中不断变化的排名有助于跟踪多个超参数设置。 ? ? ? ?
? ? 3.3 评价
? ? ? ?在推理过程中,可以修改基音轮廓,以控制生成语音的某些感知质量。例如,它可以用来增加或减少F0,强调,或增加音高的方差。在伴随本文发表的音频样本中,我们证明了在单个话语的平均值附近增加、减少或反转频率的影响。我们鼓励读者去听。 ? ? ? ? ? ? ? ?图5显示了将频率移动50Hz的示例。与简单的频域移动相比,FastPitch保留了说话人的感知身份,并模拟了在声音自愿调制过程中声带的动作。 ? ? ? ? ? ? ? ?图6展示了我们使用FastPitch修改音高的进一步例子。这些都是通过将简单的、预定义的转换应用于预测的音高
p
^
\hat{p}
p^?而生成的。FastPitch表现出广泛的表现力,当以Transformer音高矢量为条件时,对输出的梅尔光谱图做出了重要的改变。 ? ? ? ? ? ? ? ?在单一的NVIDIA V100 GPU上,FastPitch可以轻松实现实时因子超过30倍的完整合成,从文本到音频,当结合WaveGlow声码器时,这仍然是瓶颈。由于每个输入符号的一个音高值很容易被人类解释,FastPitch适用于实时编辑合成样本等应用。图6中显示的音调轮廓显示了这种编辑的简单界面,可以手动调整音调值。 ? ? ? ?
? ? ? 3.3.1 多个说话人
? ? ? ?FastPitch很容易扩展到多个说话人。我们在LJSpeech-1.1数据集上训练了一个模型,另外的内部训练数据来自两个女性发言人:Sally(8330个样本,总时间为13.6h)和Helen(18995个样本,总时间为17.3h)。我们通过在输入标志x中添加全局嵌入的说话人来对说话人进行条件设置。为了进行比较,我们选择了多说话人Tacotron2和FlowTron(《Flowtron: an autoregressive flow-based generative network for text-to-speech synthesis》)。后者是一个基于流的自回归模型。所有模型都在相同的数据上进行训练,多说话人Tacotron2被用于提取FastPitch的训练对齐。结果汇总于表2。 ? ? ? ?
? ? 3.4 讨论
? ? ? ?Transformer体系结构在相对低带宽领域(如语言建模或翻译)的成功,部分来自于记忆和组合训练数据的小片段的能力,甚至比其他体系结构更重要。FFTransformer的输出预测是并行和独立进行的,这使得模型更倾向于对平均发音进行建模,而不是专注于事先选择的特定发音方式。 ? ? ? ? ? ? ? ?我们在FastSpeech中观察到这种行为,即依赖于记忆样本之间的插值,以及不同发音方式之间的塌陷。基于聚合音高的条件设置似乎解决了这些问题中的大部分,使模型输出更加连贯,并将注意力集中在单个发音上。据报道,FastSpeech通过对预先训练的Transformer-TTS模型(《Neural speech synthesis with transformer network》)进行mel谱图目标的知识蒸馏,提高了质量。我们推测,Transformer-TTS模型学习的某些短语的发音策化模式是并行FastSpeech更容易的训练目标,在某些情况下可以防止崩溃到平均发音。 ? ? ? ?
? 4 相关工作
? ? ? ?文本到语音的主要范式是两阶段合成:首先从文本生成梅尔级谱图,然后使用声码器模型生成实际声波(《Deep voice 3: Scaling text-to-speech with convolutional sequence learning》,《Natural TTS synthesis by conditioning wavenet on mel spectrogram predictions》,《Neural speech synthesis with transformer network》)。为了加快合成速度,人们探索了并行模型。除了在本工作中研究的Transformer模型(《Fastspeech: Fast, robust and controllable text to speech》),卷积GAN-TTS(《High fidelity speech synthesis with adversarial networks》)能够以最先进的质量合成原始音频波形。它取决于语言和音高特征。 ? ? ? ? ? ? ? ?并行化现有模型的工作包括与FastSpeech类似的持续时间预测,应用于Tacotron或Glow-TTS(《Glow-TTS: A Generative Flow for Text-to-Speech via Monotonic Alignment Search》)生成流模型。持续时间的显式建模重新点燃了人们对自动对齐的兴趣,以减轻使用强制对齐的模型的自我引导。这些方法通常使用与HMM推理和训练相关的动态规划算法。Glow-TTS与维特比路径对齐,FastSpeech用前向向后算法(《AlignTTS: Efficient FeedForward Text-to-Speech System without Explicit Alignment》)的变体进行了改进。 ? ? ? ? ? ? ? ?最后,我们将详细介绍音高的显式神经建模以及神经TTS语音转换模型(《Neural tts voice conversion》),该模型与IBM Research的其他模型相似(《Using deep bidirectional recurrent neural networks for prosodic-target prediction in a unit-selection text-to-speech system》,《High quality, lightweight and adaptable TTS using LPCNet》)。基于LSTM的变分自动编码器生成网络对韵律进行建模,在训练前使用单独的工具计算音调。韵律信息被编码在四个值的向量中:日志持续时间、开始日志间距、结束日志间距和日志能量。每个音素有三个韵律向量,对应于提供对齐的辅助模型的HMM状态。除了韵律向量,稀疏文本特征被用作输入。 ? ? ? ?
? 5 结论
? ? ? ?我们提出了FastPitch,一个基于FastSpeech的并行文本到语音模型,能够快速合成高保真的梅尔尺度谱图,并且对韵律有高度的控制。该模型演示了韵律信息的条件作用如何在前馈模型中显著提高合成语音的收敛性和质量,使其独立输出的语音更连贯,并导致最先进的结果。我们的音高调节方法比文献中已知的许多方法更简单。它没有引入开销,并为交互式调整韵律的实际应用程序打开了可能性,因为该模型速度快、表达能力强,并具有多说话人场景的潜力。 ? ? ? ?
|