资料摘要: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↑ 备注 Flatten 6000 0.86 0.51 0.37 质量最佳,但 4× 成本 Delay 1500 0.96 0.52 0.35 采用:极小代价逼近最佳 Partial flatten 3000 1.32 0.54 0.34 Coarse first 3000 1.98 0.56 0.30 Partial delay 1500 1.51 0.54 0.32 Parallel 1500 2.58 0.62 0.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
相关
- Wiki 目录
- 音频生成
- 音频生成
- 神经音频编解码(RVQ) — EnCodec/RVQ 前端;MusicGen 是 Delay Pattern 的代表
- CLAP(对比语言-音频预训练) — 文本条件候选编码器 + CLAP score 评测
- CFG(无分类器引导) — 训练丢条件 0.2 / 推理引导 3.0
- LALM(大型音频语言模型) — 「RVQ token + 自回归 Transformer」音频 LM 范式
- 资料摘要:Khala — 声学 token LM 的规模化(64 层 RVQ)延续
- 资料摘要:Siren — 用 RL 解 RVQ 多层建模的层间纠缠/曝光偏差
- 资料摘要:AudioX — 统一多任务音频生成(DiT 路线对照)