除了生成图像,Stable Diffusion玩音乐也不在话下。
你听说过 Stable Diffusion 吧?它是一个从文本生成图像的开源人工智能模型,可以生成「骑马的宇航员」。
现在,Stable Diffusion 模型经过调试可以生成声谱图了,如下动图中的放克低音与爵士萨克斯独奏。
更神奇的是,这个声谱图可以转换成音频片段。
这就是今天要介绍的 Riffusion 模型,它是由 Seth Forsgren 和 Hayk Martiros 出于个人爱好而创建一个 app 项目,通过 Stable Diffusion 实现实时音乐生成。
项目地址:https://github.com/riffusion/riffusion-app
具体而言,1.5 版本的 Stable Diffusion 模型对与文本配对的声谱图进行了微调。音频处理发生在模型的下游。
声谱图
音频声谱图以可视的形式将声音片段的频率内容表现出来,其中 x 轴表示时间,y 轴表示频率。每个像素的颜色显示了音频在给定频率和时间上的振幅。
我们可以使用短时傅里叶变换(STFT)从音频中计算声谱图,ios买球app哪个好,它将音频近似为不同幅度和相位的正弦波组合。
STFT 是可逆的,因此可以从声谱图中重建原始音频。然而,Riffusion 模型得到的声谱图只包含正弦波的振幅,而不包含相位,这是因为相位是混乱的,很难学习。相反在重建音频片段时,我们使用 Griffin-Lim 算法来近似相位。
声谱图中的频率区间使用 Mel 尺度,这是一个音高知觉尺度,由听众判断彼此之间的距离是否相等。
下图是一个解释为声谱图并转换为音频的手绘图像。回放可以直观地了解它们是如何运作的。请注意听下半部分两条曲线的音高,以及顶部四条垂直线如何发出类似于 hi-hat 音的节拍。
我们使用了 Torchaudio,好处在于它有优秀的模块可以在 GPU 上高效地进行音频处理。
图像到图像
使用 diffusion 模型不仅可以将创作条件设置为文本 prompt,还可以设置为其他图像。这对于修正声音的同时保留你喜欢的原始片段的结构非常有用。用户可以使用去噪强度参数控制与原始片段的偏离程度,天天中彩票几点可以买球,并向新的 prompt 方向倾斜。
例如,下图为放克萨克斯管的即兴重复片段,然后修改一下,把钢琴音量调高。
放克低音和爵士萨克斯独奏。
放克钢琴曲。
下例将摇滚独奏改编为民谣小提琴。
摇滚电吉他独奏
原声民间小提琴独奏。
循环和插值
生成短片段固然很有趣,但无限的 AI 生成片段才是我们真正想要的。
假设放入一个 prompt 并生成 100 个具有不同 seed 的片段。我们无法将结果片段连接起来,因为它们有不同的音调、节奏和强拍。
因此,我们的策略是选择一个初始图像,并通过使用不同的 seed 和 prompt 运行图像到图像的生成,并生成该初始图像的变体。这将保留片段的关键属性。为了使它们可循环,我们还创建了具有精确测量数值的初始图像。
然而,即使使用这种方法,片段之间的过渡仍然很突兀。对于具有相同整体结构的同一 prompt 的多种解释,仍然可以在它们的氛围和旋律主题上呈现很大不同。
为了解决这个问题,我们在模型潜在空间中的 prompt 和 seed 之间平滑地进行插值。在 diffusion 模型中,潜在空间是一个特征向量,它嵌入了模型可以生成的整个可能空间。彼此相似的项目在潜在空间中是接近的,并且潜在空间的每个数值都解码为可行的输出。