资料摘要:MusicGen

Meta AI(FAIR)提出的单阶段 Transformer 语言模型音乐生成框架(NeurIPS 2023)。核心贡献是一套通用的 codebook 交错模式(interleaving patterns),把 EnCodec RVQ 产出的 路并行离散 token 用单个 Transformer 一次建模,彻底消除以往方法的多模型级联(分层 / 上采样)。支持文本与旋律双条件,可零额外算力扩展到立体声。在 MusicCaps 上主观质量 84.8/100(3.3B)超过最强基线 MusicLM 的 80.5。样本/代码/模型开源于 Audiocraft MusicGen - Simple and Controllable Music Generation

核心要点

  • 单阶段 LM,去级联:以往(MusicLM 分层、Wang et al. 两阶段)需级联多个模型处理多路 token;MusicGen 用一个自回归 Transformer + 高效 token 交错即可,训练/推理都更简单。这是标题里 Simple 的来源。
  • 通用 codebook 交错框架:把「 路 RVQ token 如何排进自回归序列」抽象为任意交错模式 ,是对前人做法(flatten / delay / parallel)的统一泛化。最终采用 Delay Pattern(延迟模式):各码本层按错位延迟排列,30s 音频只需 1500 个自回归步,以极小代价逼近扁平化的最佳质量。
  • 双条件控制(Controllable):文本条件经 EnCodec 之外的 T5 文本编码器交叉注入;无监督旋律条件用色谱图(chromagram)+ 取每帧主频 bin 的信息瓶颈避免过拟合原曲——无需 MusicLM 那样的监督私有数据。
  • 立体声零成本:EnCodec 分别处理左右声道得 码本,从单声道模型微调 200K 步即可;「stereo partial delay」比单声道主观质量略高,无额外计算开销
  • 32kHz 高保真:EnCodec 5 层非因果、步长 640 → 50 Hz 帧率,RVQ 4 量化器 × 码本 2048
  • 强评测:客观 FAD/KL/CLAP + 人工 OVL/REL 双验证,全面超越 Riffusion / Mousai / MusicLM / Noise2Music;消融逐一验证交错模式、模型规模、文本预处理的贡献。

MusicGen 架构与 Codebook 交错模式.excalidraw

⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’

Excalidraw Data

Text Elements

MusicGen 架构与 Codebook 交错模式

单阶段 Transformer LM:EnCodec RVQ → 交错多流 token → 一个解码器 → 32kHz 音乐(去级联)

参考音频 X(32kHz 单声道/立体声)

EnCodec 编码器 + RVQ 50Hz 帧率 · 4 码本 × 2048

K=4 并行 token 流

Codebook 交错(Delay Pattern) 30s → 1500 自回归步

Transformer 解码器(单阶段) 300M / 1.5B / 3.3B 因果自注意力 + 交叉注意力 每码本独立 logits 头

EnCodec 解码器(token → 波形)

生成音乐(32kHz,主观 OVL 84.8)

条件(可控性)

文本条件:T5 编码器 (也试 FLAN-T5 / CLAP)

旋律条件:Chromagram argmax 主频瓶颈(无监督)

→ 交叉注意力(文本)/ 前缀(旋律) CFG:训练丢条件 0.2 · 推理引导 3.0

Codebook 交错模式对比(消融 30s)

Parallel · 1500 步 · FAD 2.58(最差)

Delay · 1500 步 · FAD 0.96 ★ 采用

Partial flatten · 3000 步 · FAD 1.32

Flatten · 6000 步 · FAD 0.86(最佳/4×成本)

延迟模式:以极小代价逼近 扁平化的最佳质量(1/4 序列长度)

规模:客观指标随 300M→3.3B 持续↑ 主观质量 1.5B 见顶,3.3B 更贴合文本

立体声:L/R 各 4 码本 = 8 从单声道微调 200K 步,零额外算力

训练:20K 小时授权音乐 · AdamW 1M 步 · top-k 250 温度 1.0 | 主观 OVL 84.8(3.3B)> MusicLM 80.5 | Meta AI · NeurIPS 2023 · arXiv 2306.05284

指向原始笔记的链接

详细笔记

动机

音乐生成难点:需全频谱(32/44.1kHz vs 语音 16kHz)、长程结构、多乐器和声,且人耳对不和谐极敏感,容错空间小;同时创作者需要对调式/乐器/旋律/风格的多样控制。为让音频可建模,近期工作把波形压成多路离散 token(RVQ),但代价是要联合建模多路相互依赖的并行流。此前的解法都要级联多模型,MusicGen 目标是用单阶段架构达到 SOTA。

方法

① 音频 tokenization(EnCodec + RVQ) 用卷积自编码器 + 残差矢量量化(RVQ)+ 对抗重建损失。参考音频 编码为帧率 的连续张量,再量化为 ,得到 路各长 的并行 token 序列。RVQ 中每级量化上一级的残差,故各码本非独立,第 1 个码本最重要。详见 神经音频编解码(RVQ)

② Codebook 交错模式(核心贡献)

  • 精确扁平化(flatten):把 完全展平为 步逐一预测,理论上可精确拟合分布,但序列变 倍、丢掉了低帧率带来的效率。MusicLM 即用两模型分别建模前/后 个展平码本。
  • 非精确并行分解:某些码本并行预测,保持原帧率、大幅提速;代价是只有当同一时刻各码本条件独立时才是严格生成模型,否则误差随 累积。
  • 任意交错模式:定义 ,模式 的一个划分序列,每步 中各码本至多出现一次,在给定 条件下并行预测 内所有位置。由此可统一表达 parallel(同一时刻全部并行)、delay(层间引入偏移,)等。

③ 模型条件

  • 文本:实验 T5 编码器、FLAN-T5(指令微调)、CLAP(联合文本-音频表示)三种,最终用 T5(对比见附录)。见 CLAP(对比语言-音频预训练)
  • 旋律:对输入色谱图 + 文本联合条件。直接用原始 chromagram 会重建原曲(过拟合),故引入信息瓶颈——取每个时间步的主频 bin(argmax 量化);且完全无监督,不需专有标注数据。

④ 架构 Transformer decoder: 层,每层 = 因果自注意力 + 交叉注意力(喂入文本条件 ;旋律条件则作为前缀拼接)+ 前馈(、ReLU)+ 残差 + pre-norm LayerNorm。按当前交错模式取码本值,用可学习嵌入表相加(缺席位用特殊 token),加正弦步位置嵌入;输出经每码本独立的线性层预测下一步 logits。

实验设置

  • EnCodec:32kHz 单声道,5 层非因果,步长 640 → 50Hz,RVQ 4 量化器 × 码本 2048,1 秒随机切片训练。
  • Transformer:300M / 1.5B / 3.3B 三档;Flash attention(xFormers);30s 切片;AdamW,1M 步,batch 192,,weight decay 0.1,梯度裁剪 1.0,cosine LR + 4000 warmup,EMA 0.99;分别用 32/64/96 GPU、float16(bfloat16 会不稳)。采样 top-k=250、温度 1.0。
  • 条件与采样:Delay 交错(30s→1500 步);CFG——训练丢条件 、推理 guidance scale 3.0;旋律 chromagram 窗 、hop ,argmax 量化。
  • 数据20K 小时授权音乐(内部 10K 高质量曲目 + ShutterStock 25K + Pond5 365K 纯乐器曲目),32kHz,含流派/BPM/标签元数据,默认下混为单声道。
  • 评测集:MusicCaps(5.5K,含 1K 流派均衡子集);旋律与消融用 528 首域内留出集(与训练集无艺人重叠)。
  • 指标:客观 FAD(VGGish,越低越像真实)、KL(与参考音乐标签分布散度)、CLAP score(音频-文本对齐);主观 OVL(整体质量 1–100)、REL(文本相关性),Amazon MTurk 每样本 ≥5 评分者,CrowdMOS 过滤,统一归一到 −14dB LUFS。

关键结果

  • 对比基线(表 1,MusicCaps):人评 OVL/REL 全面领先。MUSICGEN 3.3B 主观 OVL 84.8(最佳基线 MusicLM 80.5)。FAD 上 Noise2Music(2.1)最低、MusicGen 次之(3.1);作者指出 MusicCaps 含大量「noisy」样本,质量过阈后 FAD 反而可能变差,故最佳模型上 FAD 与主观分不再相关。加旋律条件会略降客观指标,但基本不影响人评。

  • 旋律(表 2,1.5B):加 chromagram 训练后 chroma 余弦相似度从 0.10 → 0.66、旋律对齐主观分 64.4 → 72.9,成功跟随给定旋律;且推理时丢掉 chroma 依然鲁棒(OVL/REL 基本不变)。

  • 交错模式消融(表 4,30s 域内)

    模式步数FAD↓KL↓CLAP↑备注
    Flatten60000.860.510.37质量最佳,但 4× 成本
    Delay15000.960.520.35采用:极小代价逼近最佳
    Partial flatten30001.320.540.34
    Coarse first30001.980.560.30
    Partial delay15001.510.540.32
    Parallel15002.580.620.27最差(条件独立假设不成立)
  • 模型规模(表 5):客观指标随规模持续改善;主观 OVL 在 1.5B 见顶,但 3.3B 更贴合文本 prompt(REL 更高)。

  • 立体声(表 3,1.5B):EnCodec 分离 L/R → 8 码本,从单声道微调 200K 步。「stereo partial delay」(左右同延迟、并行预测两声道)OVL 86.7,略优于「stereo delay」(左右不同延迟)85.5,且下混回单声道时质量≈原生单声道——零额外算力得立体声

  • 记忆化实验:仅取第 1 码本流(粗粒度),20K 训练样本用原音频 token 作 prompt 贪心续写 250 token(5s),统计精确/≥80% 部分匹配。用于验证模型未大规模复制训练数据。

引用与数据

  • 标题:MusicGen — Simple and Controllable Music Generation
  • 作者:Jade Copet, Felix Kreuk, Itai Gat, Tal Remez, David Kant, Gabriel Synnaeve, Yossi Adi, Alexandre Défossez(Meta AI / FAIR;Yossi Adi 兼希伯来大学)
  • 发表:NeurIPS 2023 · arXiv 2306.05284 [cs.SD]
  • 代码/模型/样本:github.com/facebookresearch/audiocraft
  • Tokenizer:EnCodec 32kHz,50Hz 帧率,RVQ 4×2048(立体声 8 码本)
  • 训练数据:20K 小时授权音乐;评测:MusicCaps + 528 首域内留出集
  • 指标:FAD / KL / CLAP + 人评 OVL / REL

相关