AudioCraft 的技术原理是什么?

AudioCraft 是 Meta AI 推出的音频生成研究代码库,它的核心思路可以概括为一句话:把音频压缩成离散标记,再用一个自回归语言模型像生成文字一样生成音频。适用条件是:你想理解 MusicGen、AudioGen、EnCodec 三者如何协同工作,以及文本控制音频生成的机制。

整体架构:三段式流水线

AudioCraft 把音频生成拆成三个环节:

  1. 编码:EnCodec 把原始音频波形映射为离散标记
  2. 建模:单个自回归语言模型递归预测这些标记
  3. 解码:EnCodec 解码器把标记还原成音频波形

这个设计与以往音频生成工作的区别在于简化了整体模型设计——不再需要复杂的多阶段结构,而是统一到「语言模型 + 神经音频编解码器」的框架里。

EnCodec:把波形变成标记

EnCodec 是一个神经音频编解码器,作用是学习原始波形的离散音频标记。

关键点在于它输出的不是单一序列,而是一条或多条并行的离散标记流。音频信号的信息密度远高于文本,单条标记流难以承载足够细节,并行流的设计让压缩表示既紧凑又保留足够信息量。

语言模型:在标记流上做自回归

MusicGen 和 AudioGen 都由单个自回归语言模型构成,运行在 EnCodec 产生的压缩离散音乐表示(即标记)之上。

模型面临的挑战是:并行标记流之间存在内部结构。AudioCraft 采用了一种标记交错模式,用单个模型和这一交错模式来高效建模音频序列。效果是同时做到两件事:

  • 捕捉音频中的长期依赖关系
  • 生成高质量音频

条件控制:文本如何驱动生成

生成过程可以被不同类型的条件模型控制。以文本到音频为例,使用预训练的文本编码器把文本转成条件信号,引导语言模型生成对应的音频标记。

这对应两类具体任务:

模型 任务 说明
AudioGen 文本到声音生成 从文本生成环境音效
MusicGen 文本到音乐生成 从用户提供的文本输入生成多样、较长的音乐样本

完整数据流

把上面几步串起来:

文本输入 → 文本编码器 → 条件信号
                              ↓
原始音频 → EnCodec 编码器 → 并行离散标记流 → 自回归语言模型 → 生成的标记
                                                              ↓
                                              EnCodec 解码器 → 输出波形

理解这条链路,就理解了 AudioCraft 为什么能用「语言模型」这套成熟范式来处理音频:EnCodec 负责在音频和标记之间来回翻译,语言模型负责在标记空间里做生成,条件模型负责控制生成方向。

想进一步了解

AudioCraft 官网提供了 Meta AI 博客、技术细节、代码、模型卡等资源入口,可以按需深入某个环节。三个模型各自的详细介绍也有独立页面:MusicGen、AudioGen、EnCodec。

audiocraft.metademolab.com
AudioCraft is a single-stop code base for all your generative audio needs: music, sound effects, and compression after training on raw audio signals.