深度学习语音合成

深度学习语音合成用深度神经网络(DNN)从文本(TTS)或频谱(声码器)生成人工语音。DNN使用大量录制语音进行训练,若是TTS系统,则要使用相关标签和/或输入文本。

有些基于DNN的语音合成器已经接近人声的自然度。

表述
给定输入文本或语言单位序列Y,目标语音X可如下求得

X=\arg\max P(X|Y, \theta)

其中\theta是模型参数。

一般来说输入文本会先传给声学特征生成器,声学特征再传给神经声码器。对前者,损失函数通常是L1或L2损失,它们施加了约束条件:输出必须遵循高斯分布或拉普拉斯分布。在实际应用中,由于人声频率约在300到4000 Hz之间,因此损失函数会对这一范围有更多惩罚:

loss=\alpha \text{loss}_{\text{human}} + (1 - \alpha) \text{loss}_{\text{other}}

其中\text{loss}_{\text{human}}是人声频段的损耗,\alpha是0.5附近的标量。声学特征通常是梅尔刻度的时频谱,捕捉了语音信号的时域关系,因此足够输出智能输出。用于语音识别的梅尔倒频谱特征信息太少,不适合用于语音合成。

简史
2016年9月,DeepMind推出了基于原始音频波形的深度生成模型WaveNet,证明基于深度学习的模型能对原始波形进行建模,并从时频谱梅尔时频谱等声学特征生成语音。WaveNet最初被认为计算成本高、速度慢,无法用于当时的消费类产品,但一年后,DeepMind推出了“并行WaveNet”,生成速度比原模型快一千倍。

半监督学习
目前,自监督学习因能更好利用无标注数据而备受关注。研究表明,在自监督损失的帮助下,对配对数据的需求会减少。

零样本语者调适
零样本语者调适很有前景,因为一个模型就能生成具有各种风格和特征的语音。2018年6月,谷歌提出使用预训练语者验证模型作为语者编码器,提取语者嵌入。然后,语者编码器成为神经TTS模型的一部分,可以确定输出语音的风格和特征。这表明,只用一个模型就能生成多种风格的语音。

神经声码器
在基于深度学习的语音合成中,神经声码器在根据声学特征生成高质量语音方面发挥重要作用。2016年提出的WaveNet模型在语音质量方面表现出色。Wavenet将波形\mathbf{x}=\{x_1,...,x_T\}的联合概率因子化为为条件概率的乘积,如下所示

p_{\theta}(\mathbf{x})=\prod_{t=1}^{T}p(x_t|x_1,...,x_{t-1})

其中\theta是模型参数,包括许多扩张卷积层。因此,每个音频样本x_t都以之前所有时间步的样本为条件。然而,WaveNet的自回归性质使得推理过程非常缓慢。为解决这个问题,提出了并行WaveNet,是一种基于逆自回归流的模型,通过知识蒸馏和预先训练好的教师WaveNet模型一起训练出来。由于这种模型在推理时不是自回归的,因此推理速度比实时推理更快。同时,Nvidia提出了基于流的WaveGlow模型,生成语音的速度也比实时模型快。不过,并行WaveNet虽然推理速度快,但也有需要预训练WaveNet模型的局限性,因此在计算设备有限的情况下,WaveGlow需要数周时间才能收敛。并行WaveGAN解决了这一问题,通过多分辨率频谱损失和GAN策略学习生成语音。

参考文献

评论 (0)

  • 还没有评论,来抢沙发吧。