近日,来自印度理工学院坎普尔分校、INRS-EMT、加拿大高等研究院(CIFAR)的研究者在 arXiv 上发布了一篇 workshop track 论文,介绍他们在端到端语音合成上的研究成果 Char2Wav。据介绍,该模型可以直接根据文本生成高质量的音频。目前,该研究团队已经将相关的研究代码开源并且公布了合成的样本示例。
GitHub 开源地址:http://github.com/sotelo/parrot
合成语音样本地址:http://josesotelo.com/speechsynthesis
摘要
我们提出一种端到端的用于语音合成的模型 Char2Wav,其有两个组成部分:一个读取器(reader)和一个神经声码器(nerual vocoder)。该读取器是一个带有注意(attention)的编码器-解码器模型。其中编码器是一个以文本或音素作为输入的双向循环神经网络(RNN),而解码器则是一个带有注意的循环神经网络,其会产出声码器声学特征(vocoder acoustic features)。神经声码器是指 SampleRNN 的一种条件式的扩展,其可以根据中间表征(intermediate representations)生成原始的声波样本。与用于语音合成的传统模型不同,Char2Wav 可以学习直接根据文本生成音频。
1 引言
语音合成的主要任务包括将文本映射为音频信号。语音合成有两个主要目标:可理解性(intelligibility)和自然感(naturalness)。可理解性是指合成音频的清晰度,特别是听话人能够在多大程度上提取出原信息。自然感则描述了无法被可理解性直接获取的信息,比如听的整体容易程度、全局的风格一致性、地域或语言层面的微妙差异等等。
传统的语音合成方法是将这个任务分成两个阶段来完成的。第一个阶段被称为前端(frontend)是将文本转换为语言特征,这些特征通常包括音素、音节、词、短语和句子层面的特征(Zen, 2006; Zen et al., 2013; van den Oord et al., 2016)。第二个阶段被称为后端(backend),以前端所生成的语言特征为输入来生成对应的声音。WaveNet(van den Oord et al., 2016)就是一种可实现高质量的「神经后端(neural backend)」的方法。要更加详细地了解传统的语音合成模型,我们推荐参阅 Taylor (2009)。
定义好的语言特征通常需要耗费大量时间,而且不同的语言也各有不同。在本论文中,我们将前端和后端整合到了一起,可以通过端到端的方式学习整个过程。这个流程消除了对专业语言学知识的需求,这就移除了在为新语言创建合成器时所面临的一个主要瓶颈。我们使用了一个强大的模型来从数据中学习这种信息。
2 相关研究
基于注意(attention)的模型之前已经在机器翻译(Cho et al., 2014; Bahdanau et al., 2015)、语音识别(Chorowski et al., 2015; Chan et al., 2016)和计算机视觉(Xu et al. 2015)等领域得到了应用。我们的工作受到了 Alex Graves (Graves, 2013; 2015) 的工作很大的影响。在一个客座讲座中,Graves 展示了一个使用了一种注意机制的语音合成模型,这是他之前在手写生成方面的研究成果的延伸。不幸的是,这个语音方面的延伸没有被发表出来,所以我们不能将我们的方法和他的成果进行直接的比较。但是,他的结果给了我们关键的启发,我们也希望我们的成果能有助于端到端语音合成的进一步发展。
3 模型描述
3.1 读取器
我们采用了 Chorowski et al. (2015) 的符号。一个基于注意的循环序列生成器(ARSG/attention-based recurrent sequence generator)是指一种基于一个输入序列 X 生成一个序列 Y= (y1, . . . , yT ) 的循环神经网络。X 被一个编码器预处理输出一个序列 h = (h1, . . . , hL)。在本研究中,输出 Y 是一个声学特征的序列,而 X 则是文本或要被生成的音素序列。此外,该编码器是一个双向循环网络。
图 1:Char2Wav:一种端到端的语音合成模型
在第 i 步,ARSG 重点关注 h 并生成 yi:
其中 si-1 是该生成器循环神经网络的第 i-1 个状态,而
是注意权重(attention weight)或对齐(alignment)。
在这项成果中,我们使用了由 Graves (2013) 开发的基于位置的注意机制(location-based attention mechanism)。我们有
而给定一个调节序列 h 的长度 L,我们有:
其中 κi、βi 和 ρi 分别表示该窗口的位置、宽度和重要程度。
3.2 神经声码器
使用声码器进行语音合成受到特定声码器重建质量的限制。为了获得高质量的输出,我们使用一个学习到的参数神经模块(parametric neural module)替代了该声码器。为了该目标,我们使用 SampleRNN(Mehri et al., 2016)作为增强的函数逼近器(function approximator)。SampleRNN 最近被提出用于在音频信号这样的序列数据中建模极其长期的依存关系。SampleRNN 中的层级结构被设计来捕捉不同时间尺度中序列的动态。这对捕捉远距音频时间步骤(例如,语音信号中的词层面关系)之间的长距关联以及近距音频时间步骤的动态都是有必要的。
我们使用同一模型的条件式版本学习把来自声码器特征序列映射到相应的音频样本。每个声码器的特征帧(feature frame)被加了进来用作相应状态的最好的额外输入。这使得该模块能使用过去的音频样本和声码器特征帧来生成当前的音频样本。
4. 训练细节
首先,我们分别预训练读取器和神经声码器然后使用标准的 WORLD 声码器特征(Morise et al., 2016; Wu et al., 2016)作为读取器的目标和神经声码器的输入。最终,我们端到端的微调整个模型。代码已经在网上公开。
5 结果
此次我们并未提供对结果的综合的定量分析。相反,我们提供了来自模型 2 的样本。在图 2 中,我们演示了模型生成的样本以及相应的文本对齐。
图 2:以上样本分别来自以 a) 英语音素、b) 英语文本和 c) 西班牙语文本为条件的模型。a) 和 b) 的模型是在 VCTK 数据集(Yamagishi, 2012)上进行训练的,而 c) 模型是在 DIMEX-100 数据集(Pineda et al., 2010)上训练的
致谢与参考文献(略)