当前位置:首页> AI教程> AudioCraft丨文本生成音乐音频的开源利器

AudioCraft丨文本生成音乐音频的开源利器

释放双眼,带上耳机,听听看~!
本文介绍了AudioCraft,一个用于音频生成的PyTorch库,包含三种最先进的人工智能生成模型的推理和训练代码,可以产生高质量的音频,通过文本输入进行生成。

零、前言

📌本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!

📕欢迎访问

个人博客:conqueror712.github.io/

知乎:www.zhihu.com/people/soeu…

Bilibili:space.bilibili.com/57089326

掘金:juejin.cn/user/129787…

注意,本文不涉及太多复杂的公式与数学推导,初学者或者像笔者一样数学不好的读者可以放心阅读!

MusicGen论文链接:arxiv.org/abs/2306.05…

AudioGen论文链接:arxiv.org/abs/2209.15…

Encodec论文链接:arxiv.org/pdf/2210.13…

一、AudioCraft是什么

简而言之,AudioCraft是一个用于音频生成的PyTorch库,包含三种最先进的人工智能生成模型的推理和训练代码,可以产生高质量的音频,通过文本输入进行生成:

  • MusicGen音乐: MusicGen受过Meta拥有和专门许可的音乐培训,从基于文本的用户输入中生成音乐;
  • AudioGen音效: 受过公共音效培训的AudioGen则从基于文本的用户输入中生成音频;
  • EnCodec:通常作为构建MusicGen和AudioGen的基础,是一个最先进的、实时的、高保真音频编解码器,利用神经网络对任何类型的音频进行压缩,并以高保真度重构原始信号。

二、先来动手玩一玩AudioCraft

我们可以直接在Huggingface上来玩:huggingface.co/spaces/face…

在左侧输入你对音乐的描述或参考音频,随后点击生成就可以啦!不过需要稍等片刻,因为生成需要一段时间。

AudioCraft丨文本生成音乐音频的开源利器

怎么样,好玩吗?如果觉得很有趣的话不妨往下看看它们的原理吧?

三、AudioCraft整体结构

与以前类似的工作相比,AudioCraft简化了音频生成模型的整体设计

MusicGen和AudioGen都由一个自回归语言模型组成,该模型在压缩离散音乐表示流上运行。本文作者引入了一种简单的方法来利用并行token流的内部结构,并展示了通过单一模型和优雅的token交错模式。

此种方法的作用:

  • 能够高效地建模音频序列;
  • 同时捕捉音频的长期依赖性;
  • 并生成高质量的音频。

简单来说,模型利用EnCodec神经音频编解码器来从原始波形中学习离散音频token。EnCodec将音频信号映射到一个或多个并行的离散token流。然后使用一个自回归语言模型来递归地对EnCodec中的音频token进行建模。生成的token然后被馈送到EnCodec解码器,将它们映射回音频空间并获取输出波形。最后,可以使用不同类型的条件模型来控制生成。

具体来说可以看下图:

AudioCraft丨文本生成音乐音频的开源利器

图1:AudioCraft的整体结构

AudioGen和MusicGen代表了两种音频生成模型的变体。AudioGen专注于文本到声音的生成,通过学习从环境声音中生成音频。而MusicGen则是专门针对音乐的音频生成模型。不难看出,MusicGen可以根据文本或旋律特征生成音乐,从而对生成的输出具有更好的控制能力。

四、再看MusicGen

MusicGen由一个单阶段的Transformer LM和有效的CI模式(见图2)组成,从而消除了级联多个模型(类似分层或上采样)的需求。按照这种方法,本文作者演示了MusicGen如何在受文本描述或旋律特征约束的情况下生成高质量的音频样本,换句话说,就是更好地控制生成的输出。

AudioCraft丨文本生成音乐音频的开源利器

图2: Codebook Interleaving Patterns

Codebook Interleaving Patterns是指在音乐生成中对离散音乐表示流进行交错处理的一种方法。在生成音乐时,通常使用离散的音乐表示,通过重新排列和交错这些标记,以创建具有并行流的新序列。每个时间步骤由多个量化值组成,而交错处理可以将这些值展开为多个并行流。这种交错处理可以采用不同的方式进行,从而产生不同的交错模式。

使用Codebook Interleaving Patterns的目的是提供更多的灵活性和控制性。这种方法可以用于改变音乐生成模型的输入表示形式,以及在生成过程中引入更多的并行性和多样性。

本文作者使用保留的评估集对受文本和旋律表示共同约束的MusicGen进行客观和主观度量评估。对于客观评估,本文引入了一种新的度量标准:色度余弦相似度,该度量标准衡量参考和生成样本的量化色度中相同时间步的帧之间的平均余弦相似度。本文使用从保留集合中随机抽样的1000个文件进行评估。

为了更好地评估条件旋律与生成音乐之间的关系,本文进行了另一项有关于人类参与的研究。为此,我们向人类评分者呈现一个参考音乐作品,然后是一组生成的作品。对于每个生成的样本,听众需要评价生成作品的旋律与参考作品的匹配程度,评分范围为1到100。我们从保留集合中随机选择了40个10秒的样本。结果报告在下表1中。

结果表明:使用色度图条件训练的MusicGen成功生成遵循给定旋律的音乐,从而对生成的输出具有更好的控制能力。

有趣的是,添加旋律条件会略微降低客观指标,但对人类评分影响不大,同时仍优于评估的基准方法。

AudioCraft丨文本生成音乐音频的开源利器

表1:旋律评估。参考旋律与生成旋律之间的余弦相似度(SIM.)和包括与旋律对齐度(MEL.)的主观指标。所有结果均使用MUSICGEN 1.5B进行报告。

五、再看AudioGen

本文作者提出了AudioGen,这是一个自回归生成模型,可以根据文本输入生成音频样本。AudioGen基于学习到的离散音频表示进行操作。文本到音频生成的任务面临着多个挑战。由于音频通过介质传播的方式,区分“对象”可能是一项困难的任务(例如同时分离多个人说话),这在现实世界的录音条件下更加复杂(例如背景噪音、混响等)。稀缺的文本注释还限制了模型扩展能力。

存在问题 本文的解决方法 补充说明
对于建模高保真音频,需要以高采样率对音频进行编码,导致序列变得非常长 一种混合不同音频样本的增强技术,驱使模型内部学习分离多个源 策划了10个包含不同类型音频和文本注释的数据集,以处理文本-音频数据点的稀缺性
推理速度不够快 探索了多流建模的使用,允许使用较短的序列 同时保持类似的比特率和感知质量
文本遵从性不够好 应用了无分类器的指导

与评估的基准方法相比,AudioGen在客观和主观指标上表现优越;探索了所提出方法在有条件和无条件下生成音频延续的能力。

AudioCraft丨文本生成音乐音频的开源利器

图3:AudioGen系统的概览。左:音频表示模型。右:音频语言模型。文本和音频嵌入通过时间维度进行拼接,并通过K个因果自注意力和交叉注意力块进行馈送。

六、再看Encodec

EnCodec:一种最先进的实时神经音频压缩模型,能够在各种采样率和带宽下生成高保真音频样本。

这篇文章主要做了四件事:

  • 引入了一种利用神经网络的最先进实时高保真音频编解码器。该编解码器采用了流式编码器-解码器架构,通过量化潜变空间进行端到端训练。
  • 使用了一个多尺度频谱对抗器来简化训练,并有效减少伪影,生成高质量样本。为了稳定训练过程,本文引入了一种新颖的损失平衡机制。
  • 研究了如何使用轻量级Transformer模型进一步压缩表示,并提供了详细的模型设计描述,包括训练目标、架构变化和感知损失函数的研究。
  • 通过广泛的主观评估和消融研究,证明了该方法在各种设置下优于基线方法,包括不同带宽和音频领域。

AudioCraft丨文本生成音乐音频的开源利器

图4:EnCodec架构示意图

作者通过开发一个简单但有效的仅基于频谱图的对抗性损失,改善了样本质量,有效减少了伪影,并生成了高质量的样本。

此外,作者通过一种新颖的梯度平衡器,稳定了训练过程,并提高了损失权重的可解释性。

最后,作者还证明了一个小型Transformer模型可以进一步减少带宽高达40%,而不会进一步降低质量,特别适用于对低延迟不是关键的应用,比如说音乐流媒体。

另外,AudioCraft也可以在本地去部署:

# Best to make sure you have torch installed first, in particular before installing xformers.
# Don't run this if you already have PyTorch installed.
pip install 'torch>=2.0'
# Then proceed to one of the following
pip install -U audiocraft  # stable release
pip install -U git+https://git@github.com/facebookresearch/audiocraft#egg=audiocraft  # bleeding edge
pip install -e .  # or if you cloned the repo locally (mandatory if you want to train).

具体来说可以参考:github.com/facebookres…

也可以使用API:facebookresearch.github.io/audiocraft/…

FIN

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

OpenAI ChatGPT Plus 用户重大更新!GPT-4 成默认模型,快捷键功能全面升级

2023-11-19 15:52:14

AI教程

TypeChat: AI调教师介绍及使用指南

2023-11-19 16:10:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索