对话式人工智能/自然语言处理

用蒸馏法加速文本到语音的扩散模型

 

每年,作为课程的一部分,波兰华沙大学的学生都会在 NVIDIA 华沙办事处工程师的监督下,就深度学习和加速计算中的挑战性问题开展工作。我们展示了三位理学硕士学生——Alicja Ziarko、Paweł Pawlik 和 Michał 的TorToiSe,一个多阶段、基于扩散的文本到语音(TTS)模型。

Alicja、Paweł 和 Michał 首先了解了语音合成和扩散模型的最新进展。他们选择了 combination,这是 无分类器引导渐进式蒸馏 的一部分,在计算机视觉中表现良好,并将其应用于语音合成。在不降低语音质量的情况下,他们将扩散延迟降低了 5 倍。小型感知语音测试证实了这一结果。值得注意的是,这种方法不需要从原始模型开始进行昂贵的训练。

为什么要加快基于扩散的 TTS?

自从WaveNet 在 2016 年出现以来,神经网络已经成为语音合成的主要模型。在一些简单的应用中,例如基于人工智能的语音助手的语音合成,合成的语音几乎无法与人类的语音区分。这种语音合成的速度可以比实时快几个数量级,例如使用NVIDIA NeMo AI 工具包

然而,基于几秒钟的录音(几次拍摄)来实现高表现力或模仿声音仍然被认为是具有挑战性的。

去噪扩散概率模型 (DDPMs)作为一种生成技术出现,它能够基于输入文本生成高质量和高表现力的图像。DDPM 可以很容易地应用于 TTS,因为基于频率的声谱图可以像图像一样进行处理,从而图形化地表示语音信号。

例如,在 TorToiSe 中,这是一个基于引导扩散的 TTS 模型,通过组合两个扩散模型的结果来生成谱图(图 1)。迭代扩散过程涉及数百个步骤来实现高质量的输出,与最先进的 TTS 方法相比,延迟显著增加,这严重限制了其应用。

在图 1 中,无条件扩散模型迭代地细化初始噪声,直到获得高质量的谱图。第二扩散模型进一步以语言模型产生的文本嵌入为条件。

Diagram shows a speech spectrogram generated by combining the results of two diffusion models. After numerous iterations, the expected speech spectrogram is obtained.
图 1。基于扩散的 TTS 神经网络 TorToiSe 的体系结构

加速扩散的方法

现有的基于扩散的 TTS 中的延迟减少技术可以分为无训练和基于训练的方法。

无训练方法不涉及通过反转扩散过程来训练用于生成图像的网络。相反,他们只专注于优化多步骤扩散过程。扩散过程可以看作是解决ODE/SDE方程,因此优化它的一种方法是创建一个更好的解算器DDPMDDIMDPM,这降低了扩散步骤的数量。并行采样方法,例如基于Picard iterationsNormalizing Flows,可以将扩散过程并行化,以受益于 GPU 上的并行计算。

基于训练的方法主要优化扩散过程中使用的网络。网络可以被剪枝量化稀疏化,然后进行微调以提高精度。或者,可以手动或自动更改其神经结构,使用NAS 知识提取技术从教师网络中提取学生网络,以减少扩散过程中的步骤数量。

基于扩散的 TTS 中的蒸馏

Alicja、Paweł 和 Michał 决定使用基于有前景的结果在计算机视觉中的方法,并且它在推断时能够将扩散模型的延迟减少 5 倍。他们成功地将渐进蒸馏应用于预训练的 TorToiSe 模型的扩散部分,克服了无法访问原始训练数据等问题。

他们的方法包括两个知识提炼阶段:

  • 模拟引导扩散模型输出
  • 培训另一个学生模型

在第一个知识提取阶段(图 2),对学生模型进行训练,以在每个扩散步骤模拟引导扩散模型的输出。该阶段通过将两个扩散模型组合为一个模型,将延迟减少一半。

为了解决无法访问原始训练数据的问题,将语言模型中的文本嵌入传递到原始教师模型中,以生成用于提取的合成数据。合成数据的使用也使蒸馏过程更加高效,因为在每个蒸馏步骤都不必调用整个 TTS 引导扩散管道。

Diagram shows a two-step distillation pipeline. First, the student model is trained (distilled) to mimic the output of the guided diffusion model at each diffusion step. In the second phase, the newly trained student model serves as a teacher to another student model, with a reduced number of steps, using progressive distillation.
图 2:基于引导扩散的 TTS 模型的精馏

在第二个渐进升华阶段(图 3),新训练的学生模型充当教师来训练另一个学生模型。在这种技术中,学生模型被训练为模仿教师模型,同时将扩散步骤的数量减少两倍。这个过程重复多次,以进一步减少步骤数量,而每次都有一名新学生担任下一轮蒸馏的老师。

七次迭代的渐进蒸馏将推理步骤的数量减少了 7^2 次,从训练模型的 4000 个步骤减少到 31 个步骤。与引导扩散模型相比,这种减少导致了 5 倍的加速,不包括文本嵌入计算成本。

Diagram shows two steps of progressive distillation. In each step, the number of steps required to transform the Gaussian noise to the output speech spectrogram is reduced by a factor of two, from 4 to 2, and then 2 to 1.
图 3。渐进蒸馏的两次迭代示例

感知成对语音测试表明,提取的模型(在第二阶段之后)与基于引导提取的 TTS 模型产生的语音质量相匹配。

例如,收听表 1 中由基于渐进蒸馏的 TTS 模型生成的音频样本。样本与来自基于引导扩散的 TTS 模型的音频样本的质量相匹配。如果我们简单地将蒸馏步骤的数量减少到 31,而不是使用渐进蒸馏,则生成的语音的质量会显著恶化。





发言者
基于引导扩散的 TTS 模型
(2×80 扩散步骤)
渐进蒸馏后基于扩散的 TTS
(31 个扩散步骤)
基于引导扩散的 TTS 模型
(初始减少到 31 个扩散步骤)
女的
1
Audio Audio Audio
女性 2 Audio Audio Audio
女性 3 Audio Audio Audio
男 1 Audio Audio Audio
表 1:与两个基线模型相比,基于扩散的 TTS 生成的音频样本

结论

与学术界合作,帮助年轻学生塑造他们在科学和工程领域的未来,是 NVIDIA 的核心价值观之一。Alicja、Paweł和 Michał;的成功项目体现了 NVIDIA 驻波兰华沙办事处与当地大学的合作关系。

学生们设法解决了加快预先训练的、基于扩散的文本到语音(TTS)模型的挑战性问题。他们在基于扩散的 TTS 的复杂领域设计并实现了一个基于知识蒸馏的解决方案,实现了扩散过程的 5 倍加速。最值得注意的是,他们基于合成数据生成的独特解决方案适用于预训练的 TTS 模型,而无需访问原始训练数据。

我们鼓励您探索 NVIDIA Academic Programs 并尝试使用 NVIDIA NeMo Framework 来为生成人工智能的新时代创建完整的会话人工智能(TTS、ASR 或 NLP/LLM)解决方案。

 

Tags