MuseNet 与 Jukebox 论文解读:OpenAI 两代音乐模型,从”弹钢琴”到”唱出来”
论文:MuseNet(无正式论文,依据 OpenAI 官方博客,Christine Payne,2019.04.25) 论文:Jukebox: A Generative Model for Music(arXiv<2005>2005>.00341,2020.04.30) 作者/机构:OpenAI(Jukebox 作者为 Prafulla Dhariwal、Heewoo Jun、Christine Payne、Jong Wook Kim、Alec Radford、Ilya Sutskever)
AI 做音乐这事,OpenAI 在一年之内干了两次,而且两次选了完全相反的路。2019 年 4 月的 MuseNet 只玩符号音乐——你给它一堆 MIDI 音符,它预测下一个音符,属于”读谱子弹琴”;2020 年 4 月的 Jukebox 直接上原始波形——它生成的不再是乐谱,而是能听到人声、能跟着歌词”唱”出来的整首歌,属于”直接录小样”。这两步从抽象层级上看是彻底的两极:前者省事但声音是”假”的,后者真实但慢得离谱。读懂这两个模型,就摸清了 AI 音乐生成从”符号”到”音频”的分野,也理解了为什么后来整个行业都跑去走”先压缩、再建模”的路。
一、MuseNet:用 GPT-2 的思路写 MIDI
MuseNet 在 2019 年 4 月 25 日发布,那天 OpenAI 还搞了一场全程无人(包括作者自己)提前听过的直播音乐会。它本质上就是把 GPT-2 那套”预测下一个 token”的玩法搬到音乐上:喂进来几十万首 MIDI 文件,模型学会的是”给定前面一串音符,下一个音符最可能是啥”。这不是传统的算法作曲,它没有任何显式的和声、节奏规则,全凭数据里自己摸出来的模式。
基本配置很朴素:72 层 Transformer、24 个注意力头、上下文 4096 个 token。这里有个容易误解的点——MuseNet 博客原文说的是在 Sparse Transformer(稀疏 Transformer) 的 recompute 和优化内核上训练,但在 4096 个 token 范围内是全注意力(full attention)。也就是说”稀疏”主要是省显存、做可训练性优化,模型真正看上下文是 4096 个 token,这也是它能记住曲子长程结构(几十到上百个小节的呼应)的原因之一。10 种乐器覆盖了钢琴、吉他、鼓、贝斯、弦乐、管乐这些常见编制,能模仿从肖邦到甲壳虫再到爵士的各种风格,还能把两种风格缝在一起——比如给一段肖邦夜曲开头,让它用流行乐队编配继续写。
编码方式挺讲究:把音高、力度、乐器信息压进单个 token,再用 wait token 表示时值停顿。训练时加了作曲家 token(composer token)和配器 token(instrumentation token)做条件,生成时想听谁就点谁。数据来源主要是 ClassicalArchives 和 BitMidi 捐赠的 MIDI 库,加上 MAESTRO 数据集。它还有个”内批评家”(inner critic):训练时顺便学”这段是数据集里的还是模型自己生成的”,生成时拿这个分数挑样本。
MuseNet 的价值不在质量——它的输出就是 MIDI,声音全靠音色库回放,离”唱片”差得远。它的意义是验证了:音乐这种有时间结构的序列,一样能套 GPT 式的自回归预训练。这条路后来被一堆符号音乐模型走下去了。
二、Jukebox:直接对着 44.1kHz 波形下手
MuseNet 的问题很致命:MIDI 是符号,符号丢了音色、丢了对齐,更丢人声。Jukebox 的野心是直接从原始音频域生成音乐——不只是器乐,还要带人声歌唱。论文摘要原话:在 raw audio 域生成带歌唱的音乐。它要面对的第一个难题就是序列长度:44.1kHz 采样率下,一分钟就是 260 多万个采样点,自回归模型根本扛不住。解法分两步:先压缩,再建模。
第一步是多尺度 VQ-VAE(矢量量化变分自编码器)。它把 44.1kHz 的原始波形按 8×、32×、128× 三档比例压缩成离散 code,越往上压缩越狠、越接近”曲子的大纲”,越往下保留越多细节(音色、人声的唇齿气口)。三个层级各有一个 2048 大小的 codebook。这套 VQ-VAE 还加了频谱损失(spectral loss)来保住高频细节、用 codebook 随机重启防止码本坍缩。
第二步是三层自回归 Transformer prior。顶层 prior(128× 那个最抽象层)决定整首歌的结构和内容,然后中间层、底层两个 upsampler 逐级”补细节”,把 code 一层层还原到可听的波形。顶层 prior 有 5B 参数——论文附录的超参表写得明明白白:72 层、width 4800、8 个注意力头、上下文 8192 个 code(对应约 24 秒音频)。中底层 upsampler 是 1B 参数。为了在这么长的序列上做自注意力,prior 用的是稀疏注意力:行/列/前一行三种分解注意力交替堆叠。
训练数据量也惊人:从网上爬了约 120 万首歌(约一半是英文歌),配上 LyricWiki 的歌词和艺术家、风格等元数据。生成时可以指定艺术家、流派、未对齐歌词三种条件——歌词和音频不做逐字对齐,模型”大概能唱出”歌词意思,但发音清晰度有限。代价是慢到离谱:渲染 1 分钟音频大约要 9 小时。论文还公开了上千个非筛选样本和完整权重,这在当时算相当大方。
三、Jukebox 的分层生成与后续价值
Jukebox 的生成是”祖先采样”式的:顶层 prior 先自回归生成 128× 的 code 序列,中间层 upsampler 在顶层条件上生成 32× 的 code,底层 upsampler 再造 8× 的 code,最后由 VQ-VAE 解码器还原成波形。因为每级码率不同,顶层约 344 tokens/s、中层约 1378、底层约 5513,稀疏注意力 + 分层建模硬是把”分钟级音乐”这件事变成了可能。
它最大的贡献其实不止是”会唱歌”。回头看,Jukebox 几乎预告了后续所有音频生成范式的骨架:VQ-VAE 把波形变 token → 自回归 Transformer 在 token 上建模 → 条件控制(艺术家/歌词)。后来 SoundStream、EnCodec 做神经音频编解码器,VALL-E 做零样本 TTS,本质都是这套”先离散化、再语言建模”的路子,只是把 tokenizer 做得更快更省、把 prior 换成了更好的架构。Jukebox 是把”压缩后建模”第一次在音乐这个最难的长程领域里跑通了的那个。
收尾:我的一点看法
这两兄弟放在一起看特别有意思。MuseNet 在符号层把”预测下一个 token”验证了,Jukebox 在波形层把”压缩+自回归”验证了,但 OpenAI 从此再没碰音乐生成——它把这条路的暴力美感展示给全世界看,然后让别家用更聪明的 tokenizer 和更快的架构去把它商业化。Jukebox 的速度教训(9 小时 vs 后来 Stable Audio 的 8 秒)说明:算力堆叠解决不了推理速度,抽象层级的跃迁才行。而 Jukebox 训练 120 万首版权歌曲埋下的版权雷,十年后由 RIAA 起诉 Suno/Udio 引爆——这也算一种先见之明吧。
当然,Jukebox 的短板同样明显:9 小时一分钟让它毫无实用价值,声音”闷、糊”是公认的,歌词发音要靠脑补。MuseNet 更是连”听感”都没有。但作为 2019–2020 年 AI 音乐的地基,这两块砖立得很稳。
附:核心数据速查
基本盘(MuseNet)
| 项目 | 数值 |
|---|---|
| 发布 | 2019.04.25(OpenAI 博客,无正式论文) |
| 建模对象 | 符号音乐(MIDI),预测下一个音符 token |
| 架构 | 72 层 Transformer、24 注意力头、上下文 4096 token |
| 乐器 | 10 种 |
| 训练数据 | 数十万 MIDI 文件(ClassicalArchives、BitMidi、MAESTRO 等) |
| 编码 | 音高+力度+乐器压成单 token,wait 标记时值 |
基本盘(Jukebox)
| 项目 | 数值 |
|---|---|
| 论文 | arXiv<2005>2005>.00341(2020.04.30) |
| 建模对象 | 原始音频(44.1kHz),含人声歌唱 |
| 压缩 | 多尺度 VQ-VAE,8×/32×/128×,codebook 2048 |
| 顶层 prior 参数 | 5B(72 层、width 4800、8 头、上下文 8192 code) |
| 中/底层 upsampler | 1B |
| 训练数据 | 约 120 万首歌(约半数为英文) |
| 推理速度 | 渲染 1 分钟音频约需 9 小时 |
| 条件 | 艺术家、流派、未对齐歌词 |
核心创新
| 创新 | 要点 |
|---|---|
| MuseNet:GPT 式音乐预训练 | 符号音乐上验证”下一个 token”自回归范式 |
| Jukebox:多尺度 VQ-VAE | 8×/32×/128× 三级压缩,把长波形变成可建模的 code |
| Jukebox:分层自回归 prior | 顶层 5B 定结构,1B upsampler 逐级补细节 |
| Jukebox:稀疏注意力 | 行/列/前一行分解注意力应对超长序列 |
| Jukebox:多条件控制 | 艺术家/流派/未对齐歌词引导生成与歌唱 |
关键成绩
- MuseNet:生成 4 分钟多乐器作品,可融合跨风格(如肖邦旋律+流行乐队编配)
- Jukebox:首个能生成原始音频+人声歌唱的音乐模型,连贯性达多分钟
- Jukebox:开源权重、代码与上千个非 cherry-pick 样本
关键概念清单
- MIDI = Musical Instrument Digital Interface,乐器的数字接口/符号音乐格式
- Sparse Transformer = 稀疏 Transformer,用分解注意力降复杂度
- VQ-VAE = Vector Quantised Variational AutoEncoder,矢量量化变分自编码器
- codebook = 码本,离散 token 的查询表
- prior = 先验模型,此处指自回归生成 code 的 Transformer
- upsampler = 上采样器,逐级还原细节的生成层
- spectral loss = 频谱损失,用于保住高频细节的损失项
- ancestral sampling = 祖先采样,逐 token 自回归采样
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时





