Skip to main content

Dance Diffusion 简介

扩散模型在图像中随处可见,但在音频生成方面并未得到真正重视。感谢 Harmonai,这种情况正在发生改变。
Created on January 3|Last edited on January 6
本报告是作者Angelica Pan所写的"A Gentle Introduction to Dance Diffusion"的翻译



什么是 Dance Diffusion?

Dance Diffusion 是由 Harmonai创建的音频生成机器学习模型系列,Harmonai 是一个社区组织,其使命是为制作人和音乐家开发开源生成音频工具,同时也是Stability AI的一部分。
Stability AI 是一家 AI 初创公司,开发了由流行文本转图像生成器Stable Diffusion软件。
你可以使用预先训练好的 Dance Diffusion 模型(或训练自己的 Dance Diffusion 模型)生成特定风格的随机音频样本,或重新生成一个给定的音频样本,或在两个不同的音频样本之间进行插值。
Dance Diffusion 模型,顾名思义,是一种扩散模型。

什么是扩散模型?

扩散模型是一种机器学习模型,通过学习如何“破坏”(称为“前向扩散”或“噪音”)和“恢复”(称为“反向扩散”或“去噪”)模型所训练的数据来产生新数据。
在训练过程中,该模型在恢复先前所破坏数据方面的表现越来越好。
英伟达这篇技术博文阐述了前向和反向过程。该模型迭代向某些数据(如猫图像)中添加噪声,直至该数据变为纯噪声,然后迭代去除噪声,直至图像恢复到原始形式。

如果要求模型恢复随机噪声,会发生什么?
结果表明,当你将随机噪声传递给一个训练有素的扩散模型时,反向扩散过程会将所输入的噪声去掉,将其转化为与它所学到数据类型相同的事物,以便进行重新创建。换句话说,这就是扩散模型生成新数据的方式!
由于 Dance Diffusion 模型是在音频上进行训练的,因此可以学习生成音频。
在这里可以听到一些完全由 Dance Diffusion 模型创建的钢琴音乐样本

audio
steps
model
sample_rate
sample_size
1
2
3
4

Dance Diffusion 通过什么进行训练?

目前有 6 个公开可用的 Dance Diffusion 模型,每个模型均在不同的音频文件数据集上进行训练:
  • glitch-440k:通过 glitch.cool提供的片段进行训练
  • jmann-small-190k:通过 Jonathan Mann每日一曲”项目中的一小部分片段子集进行训练
  • jmam-large-580k:通过 Jonathan Mann每日一曲”项目中的大量片段子集进行训练
  • maestro-150k:通过MAESTRO数据集中的一个钢琴片段子集进行训练
  • unlocked-250k:通过已解锁录音数据集片段进行训练
  • honk-140k:通过 xeno-canto 中的《加拿大鹅》[Canadian Goose]录音进行训练
由于扩散模型进行训练并因此学习如何恢复的数据会影响其随后生成的数据类型,例如,maestro-150k 模型创建的音频样本听起来总像是钢琴音乐,而非吉他或小号音乐。
Dance Diffusion 的创造者Zach Evans发布了一个Google Colab 笔记本,用于开放测试访问上述 Dance Diffusion 模型列表。Evans 还编写了一个 Colab 笔记本,你可以在自己的数据集上微调 或自定义 Dance Diffusion 模型,以便更好控制所生成的音频片段。
如果你想尝试自己使用或微调 Dance Diffusion 模型,请查看 Reddit 用户的u/Stapler_Enthusiast详细Dance Diffusion 教程
最后,如果你想使用 Harmonai 的现有模型创建自己的音乐样本,我们在下面为你准备了一个 Colab 链接!


Iterate on AI agents and models faster. Try Weights & Biases today.
Maybe<File<(table)>>