迁移学习-从讲话者确认到多讲话者TTS合成
摘要
我们描述了一种基于神经网络的TTS(text to speech)合成系统,该系统能够以不同讲话者的声音(包括未出现在训练中的)生成讲话音频。我们的系统包含三个独立训练的组件。(1):speaker encoder 网络,基于speaker确认任务而训练,使用一个独立的带有噪音且没有文字(语音对应的文本)的数据集,该数据集来自数千个讲话者。从目标speaker的几秒钟的语音生成一个固定维度的嵌入向量。(2):一个基于Tacotron2的序列到序列合成网络,该网络以讲话者的嵌入向量为条件从文本生成梅尔频谱(mel spectrogram)。(3):一个基于WaveNet的自回归的vocoder网络,该网络将梅尔频谱图转化成时域波形样本。我们证实,该模型可以将从区别训练的speaker encoder中学习到的speaker变量(应该是指音色)知识转移到多speaker TTS任务中。并且可以由未训练过的讲话者合成一段自然的语音。我们确认了基于大规模且多样的speaker集合来训练speaker encoder以求获得最好的普遍表现的重要性。最后,我们展示了随机抽样的speaker 嵌入样本可以用来去合成一段与训练集完全不同的声音,这表明模型已经学习到了高质量的speaker表示。
1 介绍
本工作的目标是构建一个TTS系统,该系统可以以一种数据高效的方式来从多个speaker生成自然的语音。我们特别地解决了零次学习(zoro-shot learning),即从目标speaker的数秒未转录的参考音频去以该声音来生成一段语音,而不需要更新任何模型参数。这样的系统可以应用于无障碍应用,例如帮助因失去声音而不能提供很多训练样本的人回复自然交流的能力。该系统同样可以应用于以下,例如跨语言转换声音以进行恒自然的语音到语音的翻译。或在低资源设置(移动设备等算力低的设备)的情况下从文本生成真实的语音。然而,这项技术潜在的误用也同样值得引起重视。例如未经同意而冒充他人声音。为了解决与附录1等原则相一致的安全性问题,我们验证了由该模型生成的声音可以很容易地与真实声音区分开。
生成自然语音要求在大量的高质量的语音-文本对上进行训练,而且为了支持很多speaker通常会使用每个speaker数十分钟地训练数据。记录很多speaker大量高质量的数据是不现实的。我们的方法是将speaker建模和语音合成解耦。独立的训练一个speaker区分嵌入网络来捕捉speaker的特征空间。然后以第一个网络学习到的表示为条件,在一个小的数据集上训练一个高质量的TTS模型。解耦这两个网络使得他们可以在独立的数据上进行训练,着减少了需要获取的多讲话者的找质量训练数据。我们在speaker确认任务上训练speaker嵌入网络去确定两种不同的话是否是由同一个speaker说出来的。与接下来的TTS模型相比,该网络是在包含来自大量speaker的混响和背景噪声的未转录的语音上进行训练的。
我们证实speaker编码和合成网络可以在不平衡不相交的speaker集合上进行训练并且仍可以获得很好的推广效果。我们在1200个speaker上训练合成网络,并表明在一个更大的1800speaker的集合上训练编码器可以提高适应质量,并进一步通过从嵌入先验中采样来完全实现新的speaker语音合成。
人们对TTS模型端对端的训练产生了极大的兴趣,这些模型是直接由文本-语音对中训练出来的,不依赖于手工制作的中间表征。Tacotron2使用WaveNet作文vocoder来反转由一个带有注意力的编码解码器架构生成的频谱图。结合Tacotron的亲和性和WaveNet的音频质量来获得接近人类语音的自然性。它支支持单个speaker。
Gibiansky等人引入了Tacotron的一种多speaker变体,未每个训练的speaker学习低维度的speaker嵌入。Deep voice3提出了一个全卷积的编码解码器架构,该架构可扩展到可支持来自LibriSpeech的2400个speaker。
这些系统学习固定的speaker嵌入数据集,因此只支持合成训练时用到的声音。作为对比,VoiceLoop提出了一个基于固定大仙内存缓冲的全新架构,它可以从未经训练的声音中生成语音。获得一个好的结果需要一个新的speaker的数十分钟的语音记录和文字记录。
最新的扩展对说话人的语音匮乏性的适应,即只需要每个speaker的数秒钟语音(不含文字记录)就可以用其声音生成一段语音。扩展了DeepVoice3,将类似于[18]的说话人适应方法,其中模型参数,包括speaker嵌入,在小部分适应性数据上进行微调,与speaker编码方法进行比较,该编码方法使用使用神经网络直接从频谱预测speaker嵌入。后一种方法的数据效率明显更高,使用少量的自适应数据,甚至一到两个发音就可以获得更高的自然度。由于不需要书包此的反向传播迭代,他的计算效率也明显增高。
Nachmani等人同样扩展了VoiceLoop,使用一个目标speaker编码网络去预测一个speaker嵌入。该网络和合成网络一起训练,使用一个对比的triplet loss来确保来自同一speaker的发音而预测出的嵌入比从不同speaker计算出的嵌入要更近。另外,使用一个循环一致性损失函数(cycle-consistency loss)来确保合成的语音编码到相似的嵌入,就像适用的语音一样。(意思就是说,原始语音和和合成语音所编码的嵌入是相似的)
一个相似的,未使用triplet loss进行训练的声谱编码器,被证实可以将目标音色转移到合成的语音上。在本论文中我们证实了训练一个相似的用来区分不同speaker的编码器,从而试=实现speaker特征的可靠迁移。我们的工作最类似于[2,10]中的speaker编码器模型,除了我们使用一个独立训练的网络,在一个来自数万speaker未转录的大型数据集上进行speaker验证任务,使用了最先进的广义端到端损失。[10]在他们的模型中加入了类似的speaker辨别表示,但是所有的组件是同时训练的。作为对比,我们从一个预先训练的speaker验证模型中探索迁移学习。
Doddipatla等人使用一个相似的迁移学新配置,一个由与训练的speaker分类器计算出来的speaker嵌入被用来调节TTS系统。在本论文中,我们使用了一种不依赖中间语言特征的端到端的合成网络,以及一个本质上不同的speaker嵌入网络,它不局限于封闭的speaker集合。除此之外,我们分析了质量(生成的语音)是怎样随着训练集中speaker的数量而变化的。并且发现zero-shot迁移需要在数千个speaker上进行训练,比[7]中用到的多得多。