零、前言
本文为稀土技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!
欢迎访问:
个人博客:conqueror712.github.io/
知乎:www.zhihu.com/people/soeu…
Bilibili:space.bilibili.com/57089326
:/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简化了音频生成模型的全体设计。
MusicGen和AudioGen都由一个自回归言语模型组成,该模型在紧缩离散音乐表明流上运转。本文作者引进了一种简略的办法来运用并行token流的内部结构,并展现了经过单一模型和优雅的token交织形式。
此种办法的作用:
- 能够高效地建模音频序列;
- 一起捕捉音频的长时刻依赖性;
- 并生成高质量的音频。
简略来说,模型运用EnCodec神经音频编解码器来从原始波形中学习离散音频token。EnCodec将音频信号映射到一个或多个并行的离散token流。然后运用一个自回归言语模型来递归地对EnCodec中的音频token进行建模。生成的token然后被馈送到EnCodec解码器,将它们映射回音频空间并获取输出波形。最终,能够运用不同类型的条件模型来操控生成。
具体来说能够看下图:
图1:AudioCraft的全体结构
AudioGen和MusicGen代表了两种音频生成模型的变体。AudioGen专心于文本到声音的生成,经过学习从环境声音中生成音频。而MusicGen则是专门针对音乐的音频生成模型。不难看出,MusicGen能够依据文本或旋律特征生成音乐,然后对生成的输出具有更好的操控才能。
四、再看MusicGen
MusicGen由一个单阶段的Transformer LM和有用的CI形式(见图2)组成,然后消除了级联多个模型(相似分层或上采样)的需求。按照这种办法,本文作者演示了MusicGen如安在受文本描绘或旋律特征束缚的情况下生成高质量的音频样本,换句话说,便是更好地操控生成的输出。
图2: Codebook Interleaving Patterns
Codebook Interleaving Patterns是指在音乐生成中对离散音乐表明流进行交织处理的一种办法。在生成音乐时,一般运用离散的音乐表明,经过重新排列和交织这些标记,以创立具有并行流的新序列。每个时刻步骤由多个量化值组成,而交织处理能够将这些值打开为多个并行流。这种交织处理能够采用不同的办法进行,然后发生不同的交织形式。
运用Codebook Interleaving Patterns的目的是供给更多的灵活性和操控性。这种办法能够用于改动音乐生成模型的输入表明形式,以及在生成过程中引进更多的并行性和多样性。
本文作者运用保存的评价集对受文本和旋律表明一起束缚的MusicGen进行客观和片面衡量评价。关于客观评价,本文引进了一种新的衡量标准:色度余弦相似度,该衡量标准衡量参阅和生成样本的量化色度中相一起刻步的帧之间的均匀余弦相似度。本文运用从保存调集中随机抽样的1000个文件进行评价。
为了更好地评价条件旋律与生成音乐之间的联系,本文进行了另一项有关于人类参加的研讨。为此,咱们向人类评分者呈现一个参阅音乐作品,然后是一组生成的作品。关于每个生成的样本,听众需求评价生成作品的旋律与参阅作品的匹配程度,评分范围为1到100。咱们从保存调集中随机选择了40个10秒的样本。成果陈述在下表1中。
成果表明:运用色度图条件练习的MusicGen成功生成遵照给定旋律的音乐,然后对生成的输出具有更好的操控才能。
风趣的是,添加旋律条件会略微下降客观目标,但对人类评分影响不大,一起仍优于评价的基准办法。
表1:旋律评价。参阅旋律与生成旋律之间的余弦相似度(SIM.)和包含与旋律对齐度(MEL.)的片面目标。所有成果均运用MUSICGEN 1.5B进行陈述。
五、再看AudioGen
本文作者提出了AudioGen,这是一个自回归生成模型,能够依据文本输入生成音频样本。AudioGen根据学习到的离散音频表明进行操作。文本到音频生成的任务面临着多个应战。因为音频经过介质传播的办法,区别“对象”可能是一项困难的任务(例如一起别离多个人说话),这在现实世界的录音条件下愈加杂乱(例如布景噪音、混响等)。稀缺的文本注释还限制了模型扩展才能。
存在问题 | 本文的解决办法 | 弥补说明 |
---|---|---|
关于建模高保真音频,需求以高采样率对音频进行编码,导致序列变得非常长 | 一种混合不同音频样本的增强技术,唆使模型内部学习别离多个源 | 策划了10个包含不同类型音频和文本注释的数据集,以处理文本-音频数据点的稀缺性 |
推理速度不够快 | 探索了多流建模的运用,答应运用较短的序列 | 一起保持相似的比特率和感知质量 |
文本遵照性不够好 | 使用了无分类器的辅导 | 无 |
与评价的基准办法比较,AudioGen在客观和片面目标上表现优越;探索了所提出办法在有条件和无条件下生成音频延续的才能。
图3:AudioGen体系的概览。左:音频表明模型。右:音频言语模型。文本和音频嵌入经过时刻维度进行拼接,并经过K个因果自留意力和穿插留意力块进行馈送。
六、再看Encodec
EnCodec:一种最先进的实时神经音频紧缩模型,能够在各种采样率和带宽下生成高保真音频样本。
这篇文章首要做了四件事:
- 引进了一种运用神经网络的最先进实时高保真音频编解码器。该编解码器采用了流式编码器-解码器架构,经过量化潜变空间进行端到端练习。
- 运用了一个多尺度频谱对抗器来简化练习,并有用削减伪影,生成高质量样本。为了安稳练习过程,本文引进了一种新颖的丢失平衡机制。
- 研讨了怎么运用轻量级Transformer模型进一步紧缩表明,并供给了详细的模型设计描绘,包含练习目标、架构改变和感知丢失函数的研讨。
- 经过广泛的片面评价和消融研讨,证明了该办法在各种设置下优于基线办法,包含不同带宽和音频领域。
图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