SC-GlowTTS: 一种高效的零样本多说话者文本到语音模型
摘要
在本文中,我们提出了 SC-GlowTTS:一种高效的零样本多说话者文本到语音模型,可提高训练期间未见过的说话者的相似性。 我们提出了一种说话人条件架构,该架构探索了一种在零样本场景中工作的基于流的解码器。 作为文本编码器,我们探索了基于空洞残差卷积的编码器、基于门控卷积的编码器和基于transformer的编码器。 此外,我们已经表明,为训练数据集上的 TTS 模型预测的频谱图调整基于 GAN 的声码器可以显着提高新说话者的相似性和语音质量。 我们的模型仅使用 11 个说话者进行收敛,在与新说话者的相似性以及高语音质量方面达到了最先进的结果。
Introduction
近年来,由于深度学习的巨大进步,文本到语音 (TTS) 系统受到了很多关注,这使得虚拟助手等语音应用程序得以普及。大多数 TTS 系统是根据单个说话者的声音量身定制的,但目前有兴趣为新说话者合成语音,这在训练期间没有看到,仅使用几秒钟的语音样本。这种方法被称为零样本多说话人 TTS (ZS-TTS)。
ZS-TTS 最初是通过扩展 Deep-Voice 3 提出的。此外,一些学者使用广义端到端损失 (GE2E) 使用从经过训练的说话人编码器提取的外部嵌入探索了 Tacotron 2,从而产生了一个可以生成语音的模型,类似于目标说话人。同样,一些学者使用不同的说话人嵌入方法探索了 Tacotron 2。作者表明,与 X-vector嵌入相比,LDE 嵌入提高了相似性,并为新说话者合成了更自然的语音。 某作者还表明,训练性别相关模型可以提高未见过说话者的相似性。
在这种情况下,一个主要问题是训练期间观察到的和未观察到的说话者之间的相似性差距。为了缩小这种差距,Attentron 提出了一种细粒度编码器,它具有从各种参考样本中提取详细样式的注意力机制和粗粒度编码器。由于使用了多个参考样本而不是一个,他们对看不见的说话者获得了更好的相似性。
尽管最近有结果,但零样本多说话人TTS 仍然是一个悬而未决的问题,特别是关于可见和不可见说话人的质量差异。此外,当前的方法严重依赖 Tacotron 2,而使用基于流的方法有可能改善结果。在这种情况下,FlowTron允许操纵语音的多个方面,例如音调、语气、语速、节奏和口音。此外, 提出 GlowTTS 达到与 Tacotron 2 相似的质量,但速度提高了 15.7 倍,同时允许语音速度操纵。
在本文中,我们提出了一种新方法,Speaker Conditional GlowTTS (SC-GlowTTS),用于对未见过的说话者进行零样本学习。我们的模型依赖 GlowTTS 作为将输入字符转换为频谱图的部分。 SC-GlowTTS 使用基于 Angular Prototype loss 的外部说话人编码器来学习说话人嵌入向量,并调整 HiFi-GAN 声码器以将输出频谱图转换为波形。我们的贡献如下:
- 一种新颖的零样本多说话人 TTS 方法,仅在训练集中 11 名说话人的情况下即可获得最先进的结果;
- 在零样本多说话人 TTS 设置中实现高质量和比实时语音合成更快的架构;
- 为训练数据集上的 TTS 模型预测的频谱图调整基于 GAN 的声码器,以显着提高新说话者的相似度和语音质量。
我们每个实验的音频样本都可以在演示网站上找到。 此外,为了重现性,Coqui TTS 提供了实现,并且所有实验的checkpoints都可以在 Github 存储库中找到。
说话人相关的GlowTTS模型
Speaker Conditional Glow-TTS (SC-GlowTTS) 建立在 GlowTTS 的基础上,但包括几个新颖的修改。除了 GlowTTS 的基于Transformer的编码器网络之外,我们还探索了残差扩张卷积网络 (Residual dilated convolutional network) 和门控卷积网络 (gated convolutional network);据我们所知,在这种情况下首次使用。我们的卷积残差编码器基于speedyspeech,但是我们使用 Mish 而不是 ReLU 激活函数。另一方面,我们的门控卷积网络由 9 个卷积块组成,每个块包括一个 dropout 层、一个 1D 卷积和一个层归一化。我们在所有卷积层中使用内核大小 5、扩张率 1 和 192 个通道。基于流的解码器使用与 GlowTTS 模型相同的架构和配置。然而,为了将其转换为零样本 TTS 模型,我们在所有 12 个解码器块的仿射耦合层中包含了说话人嵌入。我们还使用 FastSpeech 的持续时间预测器网络来预测字符持续时间。为了捕捉不同说话者的不同语音特征,我们在持续时间预测器的输入中添加了说话者嵌入。最后,HiFi-GAN 用作声码器。
SC-GlowTTS 模型在推理过程中如图 1 所示,其中 (\(+\)) 表示串联。 在训练期间,该模型使用单调对齐搜索 (MAS),其中解码器的目标是调节梅尔谱图和嵌入在 \(P_Z\) 先验分布中的输入说话人。 MAS 的目的是将 \(P_Z\) 先验分布与编码器的输出对齐。 在推理过程中,不使用 MAS,而是由文本编码器和持续时间预测器网络预测 \(P_Z\) 先验分布和对齐。 最后,潜在变量 \(Z\) 从先验分布 \(P_Z\) 中采样。 使用反向解码器和说话人嵌入,并行合成梅尔谱图,通过基于流的解码器转换潜在变量 \(Z\)。
为简洁起见,我们将带有变压器、残差卷积和基于门控卷积的编码器的 SC-GlowTTS 模型分别命名为 SC-GlowTTS-Trans、SC-GlowTTS-Res 和 SC-GlowTTS-Gated 模型。
SC-GlowTTS 在少量说话人下的性能
为了模拟只有少数说话者的场景,我们通过选择 VCTK 数据集训练集的子集来反映我们的测试集。 这个新的训练集由 11 说话人(每个人约400句)组成,7F/4M。 我们为每个口音选择了 1 个代表,除了“新西兰”口音只有一个说话者并且在我们的测试集中,所以我们添加了一个“美国”说话者,选择的说话者是 229、249、293、313 、301、374、304、316、251、297 和 323。从这个新的训练集中,我们选择了随机样本用作验证集。 作为测试集,我们使用 3.3 节中定义的相同的测试集。
我们使用 SC-GlowTTS-Trans 模型并使用 LJSpeech 数据集对其进行 290k 步训练。在单说话人数据集中进行这种预训练是为了在更大的词汇表中准备模型的编码器。我们对新训练集中的 SC-GlowTTS-Trans 模型进行了微调,其中只有 11 个说话者进行了 70k 步,并且使用验证集,我们选择了最佳检查点作为第 66k 步。此外,使用在 LibriTTS 数据集中训练 75k 步的 HiFi-GAN 模型,我们使用相同的技术调整其他 95k 步。这个新实验的结果是 SECS 为 0.7707,MOS 为 3.71 ± 0.07,Sim-MOS 为 3.93 ± 0.08。这些结果与 Tacotron 2 实现的 0.7791、MOS 3.74 和 Sim-MOS 3.951 ± 0.07 的 SECS 兼容,后者使用了更大的 98 个说话人组。因此,我们的 SC-GlowTTS-Trans 模型与一个小 9.8 倍的数据集收敛,性能与 Tacotron 2 相当。我们认为这是向前迈出的重要一步,尤其是对于低资源语言中的 ZS-TTS。
Zero-shot Voice Conversion
与原始 GlowTTS 模型一样,我们不向模型编码器提供任何有关说话人身份的信息,因此编码器预测的分布被迫独立于说话人身份。 因此,与 GlowTTS 一样,SC-GlowTTS 可以仅使用模型的解码器来转换语音。 然而,在我们的工作中,我们使用外部扬声器嵌入来调节 SC-GlowTTS。 通过执行零样本语音转换,它使我们的模型能够模拟训练中未见过的说话者的语音。 演示页面上提供了零样本语音转换的示例。
结论和未来工作
在这项工作中,我们提出了一种新方法 SC-GlowTTS,实现了最先进的 ZS-TTS 结果。 我们为 SC-GlowTTS 模型探索了三种不同的编码器,并表明基于transformer的编码器为训练中未见过的说话者提供了最佳的相似性。 我们的 SC-GlowTTS 模型优于 Tacotron 2。此外,当与外部扬声器编码器结合使用时,SC-GlowTTS 模型可以在训练集中仅 11 个扬声器的情况下执行 ZS-TTS。 最后,我们发现对训练和验证集中的 TTS 模型预测的频谱图中 HiFi-GAN 声码器的调整可以显着提高未见过说话者的合成语音(MOS)的相似度和质量。 在训练中。 作为未来的工作,继的工作之后,我们打算将 SC-GlowTTS 扩展为一种少量的方法。