一文带你全面了解Meta的开源人工智能音乐模型—MusicGen

本文将同你一起探索Meta公司研制的新的开源人工智能音乐模型MusicGen,尤其是分析此模型中一些往往被忽视但实际却代表显著进步方面的内容。

音乐AI产品如何提升每个人的音乐制作水平的图像(通过与ChatGPT和DALL-E-3的对话生成的图像)

简要回顾AI人工智能音乐模型历史

2023年2月,谷歌公司凭借其生成式人工智能音乐模型MusicLM在业界掀起了轩然大波。在这一点上,有两件事变得清晰起来:

  1. 2023年将是基于人工智能的音乐生成的突破性一年
  2. 一个新的模型很快就会让MusicLM黯然失色

许多人预计,就模型参数和训练数据而言,下一个突破性模型的规模将是MusicLM的十倍。当然,它还将提出同样的道德问题,包括限制访问源代码和使用受版权保护的训练材料等。

不过,时至今天,我们知道只有部分是真的。

Meta公司的MusicGen模型于2023年6月发布,这个模型带来了一些巨大的改进,包括以下几个方面:

  1. 更高质量的音乐输出(24kHz→ 32kHz)
  2. 更自然的发声乐器
  3. 以任何旋律为条件生成的选项(我已经写了一篇关于这一点的博客文章:https://medium.com/towards-data-science/how-metas-ai-generates-music-based-on-a-reference-melody-de34acd783)

……同时使用更少的训练数据,开源代码和模型权重,并且只使用商业许可的训练材料等。

六个月后,炒作已经慢慢平息。然而,Meta公司的研究团队FAIR继续发表有关论文并更新相应代码,以便逐步改进MusicGen模型。

模型研究进展

自MusicGen模型发布以来,Meta公司在两个关键方面对MusicGen进行了升级:

  1. 使用多波段扩散实现更高质量的生成
  2. 立体声生成带来更生动的输出

虽然这听起来像是两个小的改进,但却存在很大的不同。你自己听听吧!以下是使用原始MusicGen模型(3.3B参数)生成的10秒作品:

来自MusicGen官方演示页面生成的曲目

使用的提示内容是:

“earthy tones, environmentally conscious, ukulele-infused, harmonic, breezy, easygoing, organic instrumentation, gentle grooves.”

对应的中文含义大致是:“乡土色调,环境气氛,融入尤克莱利琴,和谐、轻快、随和的音调,有机乐器、节奏柔和。”

接下来,下面给出的是MusicGen模型在六个月后根据上面相同提示生成的输出示例:

MusicGen模型生成了作者用MusicGen 3.3B立体声创建的曲目

MusicGen模型生成了作者用MusicGen 3.3B立体声创建的曲目

如果你是通过智能手机扬声器收听,差异可能不会很明显。在其他设备上,你应该能够听到整体声音更加清晰自然,立体声使作品更加生动和令人兴奋。

在这篇博客文章中,我想展示MusicGen模型在上述这些方面的改进,解释它们为什么重要以及它们是如何工作的,并提供一些音乐生成的例子。

多波段扩散——这有什么作用?

为了理解什么是多波段扩散以及为什么它会产生影响,让我们首先来看一看最初的MusicGen模型([参考资料1])是如何产生其输出的。

在一台具有近100万个数字的计算机上,以34kHz的采样率生成30秒的音频。如果一个样本一个样本地生成这样的作品的话,那么,其大小相当于用ChatGPT生成10本完整的小说。

相反,Meta公司使用了神经音频压缩技术。他们的压缩模型EnCodec([参考资料2])可以将音乐从34kHz压缩到大约0.05kHz,同时保持相关信息,并将其重建为原始采样率。EnCodec由一个编码器和一个解码器组成,前者压缩音频,后者再现原始声音(见下图)。

Encodec:Meta公司使用的神经音频压缩模型(图片由作者本人提供)

Encodec:Meta公司使用的神经音频压缩模型(图片由作者本人提供)

现在,让我们回到MusicGen模型。这个模型不是通过全采样率生成音乐,而是以0.05kHz的频率生成音乐,并让EnCodec“重建”音乐,从而以最小的计算时间和成本获得高保真度输出(见下图)。

MusicGen:用户提示(文本)被转换为编码的音频信号,然后对其进行解码以产生最终结果(图片由作者本人提供)

虽然EnCodec是一项令人印象深刻的技术,但它的压缩并不是无损的。与原始音频相比,重建的音频中存在明显的伪音。你们自己听听就知道了!

原始音频效果

EnCodec编码生成的音乐示例(取自EnCodec官方演示页面)

EnCodec编码生成的音乐示例(取自EnCodec官方演示页面)

重建后的音频效果

由于MusicGen模型完全依赖EnCodec编码技术,所以这是生成音乐质量的主要瓶颈。这也正是Meta公司决定改进EnCodec解码器部分的原因。2023年8月,他们为EnCodec开发了一种利用多频带扩散的更新解码器([参考资料3])。

Meta公司在EnCodec的原始解码器中发现的一个问题是,它倾向于先生成低频,然后生成高频。不幸的是,这意味着低频中的任何误差/伪音也会使高频失真,从而大幅降低输出质量。

多频带扩散通过在组合频谱之前独立生成频谱的不同部分来解决这个问题。研究人员发现,这一程序显著提高了生成的输出。从我的角度来看,这些差异是显而易见的。使用原始EnCodec解码器和多频带扩散解码器收听同一曲目效果对比如下:

原始解码器效果

生成的曲目取自多波段扩散演示网页(https://ai.honu.io/papers/mbd/)

生成的曲目取自多波段扩散演示网页(https://ai.honu.io/papers/mbd/)

多频带扩散解码器效果

生成的曲目取自多波段扩散演示网页(https://ai.honu.io/papers/mbd/)

生成的曲目取自多波段扩散演示网页(https://ai.honu.io/papers/mbd/)

当前文本到音乐系统的核心问题之一是,它产生的声音总是有一种不自然的品质,尤其是对于声学乐器。多波段扩散使输出声音更加清晰自然,并将MusicGen模型提升到了一个新的水平。

为什么立体声如此重要?

到目前为止,大多数生成音乐模型都是单声道的。这意味着,MusicGen模型不会将任何声音或乐器放在左侧或右侧,从而导致混音不那么生动和令人兴奋。到目前为止,立体声之所以被忽视,是因为生成立体声不是一项微不足道的任务。

作为音乐家,当我们产生立体声信号时,我们可以访问混音中的各个乐器曲目,我们可以将它们放在任何我们想要的地方。MusicGen模型并不单独生成所有乐器,而是生成一个组合音频信号。如果没有这些乐器来源,就很难产生立体声。不幸的是,将音频信号分解为单独的来源是一个棘手的问题(我已经发表了一篇关于这方面的博客文章:https://medium.com/towards-data-science/ai-music-source-separation-how-it-works-and-why-it-is-so-hard-187852e54752),而且这项技术还没有100%准备好。

因此,Meta公司决定将立体声生成直接纳入MusicGen模型。他们使用了一个由立体声音乐组成的新数据集,训练MusicGen产生立体声输出。研究人员声称,与单声道相比,生成立体声没有额外的计算成本。

虽然我觉得论文中没有很清楚地描述立体声过程,但我的理解是这样的(见下图):MusicGen已经学会了生成两个压缩音频信号(左声道和右声道),而不是一个单声道信号。这些压缩信号在组合以构建最终立体声输出之前必须单独解码。这个过程不需要两倍的时间,是因为MusicGen现在可以在与以前一个信号几乎相同的时间产生两个压缩音频信号。

MusicGen立体声更新示意图(请注意,论文中没有充分记录这个过程,我无法100%确定,只是把它当作一个有根据的猜测。此外,图片由作者本人提供)

能够产生令人信服的立体声确实使MusicGen模型与MusicLM模型或Stable Audio等其他最先进的模型不同。在我看来,这种“小”的改进对生成的音乐的生动性产生了巨大的影响。自己听一听(在智能手机扬声器上可能很难听到):

单声道效果

立体声效果

结论

MusicGen模型自从发布之日起就给人留下了深刻印象。从那时起,Meta公司的FAIR团队一直在不断改进他们的产品,为了得到更高水准的作品,以便听起来更真实。此外,因为MusicGen模型及其所有相关产品都是开源的,所以它们也必将成为创作优质音乐作品的灵感来源,同时也是人工智能音频工程师的首选框架。

猜你喜欢

转载自blog.csdn.net/java_cjkl/article/details/135193915