NotaGen:利用大语言模型训练范式提升符号音乐生成的音乐性

Yashan Wang1*, Shangda Wu1*, Jianhuai Hu1*, Xingjian Du2, Yueqi Peng3, Yongxin Huang4, Shuai Fan5, Xiaobing Li1, Feng Yu1, Maosong Sun1,6 1中央音乐学院, 中国, 2University of Rochester, 美国, 3北京一流科技有限公司, 中国, 4独立研究员, 5北京航空航天大学, 中国, 6清华大学, 中国 *表示同等贡献 NotaGen 论文 NotaGen 代码 🤗 NotaGen 权重 ✨️ NotaGen Space

🎵 点击网页底部的音乐播放器,欣赏由 NotaGen 创作的音乐!🎵

(本页面上的视频和音频均使用 Sibelius + NotePerformer 渲染和导出。)

摘要

我们介绍 NotaGen,一个旨在探索生成高质量古典乐乐谱潜力的符号音乐生成模型。受到大型语言模型 (LLMs) 成功案例的启发,NotaGen 采用了 pre-trainingfine-tuningreinforcement learning 范式(以下统称为 LLM 训练范式)。它在 160 万首乐曲上进行预训练,然后在约 9000 首高质量古典乐作品上进行微调,并以“时期-作曲家-乐器配置”提示词作为条件。对于强化学习,我们提出了 CLaMP-DPO 方法,该方法无需人工标注或预定义奖励,即可进一步提高生成质量和可控性。我们的实验证明了 CLaMP-DPO 在具有不同架构和编码方案的符号音乐生成模型中的有效性。此外,主观 A/B 测试表明,NotaGen 在与人类作品的对比中优于基线模型,极大地提升了符号音乐生成中的音乐美学。

数据表示

data-representation.png ABC notation 是一种音乐符号系统,它使用字母、数字和符号的组合来表示音符。我们采用了一种修改后的版本——interleaved ABC notation,作为我们的数据表示形式。在这种格式中,同一小节的不同声部被重新排列成单行,并使用声部指示器“[V:]”进行区分。此外,我们还移除了包含全休止符的小节。 长期以来,人们对 ABC notation 的能力存在误解。例如,“ABC notation 无法处理多音轨音乐”,“ABC notation 无法表示复杂的乐谱”。事实上,ABC notation 非常通用。它不仅可以容纳任何乐器配置的多音轨音乐,还可以捕捉到西方五线谱系统中几乎所有的元素。除了音符和节奏之外,ABC notation 还可以表示各种技巧、表情和速度,并灵活地融入文本注释。

模型架构

model-architecture NotaGen 利用 Tunesformer 架构和 bar-stream patching。它由两个分层的 GPT-2 解码器组成:一个patch-level decoder和一个character-level decoder。每个 patch 通过连接 one-hot 字符向量进行展平,然后通过一个线性层来获得 patch embedding。patch-level decoder 捕获 patch 之间的时间关系,其最终的隐藏状态被传递给 character-level decoder,该解码器自回归地预测下一个 patch 的字符。

训练范式

model-architecture

Pre-training

NotaGen 在 160 万首乐曲上进行预训练。该语料库涵盖了广泛的流派和时期,使 NotaGen 能够通过下一个 token 预测来捕获基本的音乐结构和模式。

Fine-tuning

NotaGen 在高质量的古典音乐乐谱数据上进行微调,以进一步提高生成的音乐性。我们整理了一个包含 8,948 首古典音乐乐谱的微调数据集,涵盖了 152 位作曲家,这些数据来自 DCML corporaOpenScore String Quartet CorpusOpenScore Lieder CorpusATEPPKernScores 和内部资源。我们将所有乐曲标记为 3 个时期——巴洛克、古典和浪漫;6 种乐器配置——键盘乐、室内乐、管弦乐、艺术歌曲、合唱和声乐-管弦乐。每首乐曲都以 “时期-作曲家-乐器配置” 提示词作为前缀,用于条件生成。

Reinforcement Learning

为了完善微调后的 NotaGen 的音乐性和提示词可控性,我们提出了 CLaMP-DPO。该方法建立在人工智能反馈强化学习 (RLAIF) 的原则之上,并实现了 Direct Preference Optimization (DPO)。在 CLaMP-DPO 中,CLaMP 2,一个多模态符号音乐信息检索模型,作为 DPO 框架中的评估器,区分选定的和拒绝的音乐输出,以优化 NotaGen。我们的实验表明,CLaMP-DPO 有效地提高了不同符号音乐生成模型的可控性和音乐性,无论它们的数据模态、编码方案或模型架构如何。这突显了 CLaMP-DPO 在自回归训练的符号音乐生成模型中的广泛适用性和潜力。

生成的样本

键盘乐

◀ ▶

室内乐

◀ ▶

管弦乐

◀ ▶

艺术歌曲

◀ ▶

合唱

◀ ▶

声乐-管弦乐

◀ ▶

奖励环节!流行音乐

感谢您阅读至此!除了古典音乐,我们还尝试对 NotaGen 进行微调,以适应流行音乐风格。我们使用了上个世纪大约 100 首流行歌曲对预训练模型进行微调,并应用了强化学习。请欣赏一首由 NotaGen 创作的流行歌曲!(此视频是 Musescore 软件的截图。)

奖励环节!音乐家演奏 NotaGen 作品

我们很荣幸邀请到了中央音乐学院的杰出钢琴家 Hongwei Zhu 来演奏 NotaGen 的 升 F 小调圆舞曲 。他精湛的演绎和细腻的演奏为这首作品注入了新的活力。点击收听!

BibTeX

@misc{wang2025notagenadvancingmusicalitysymbolic,
    title={NotaGen: Advancing Musicality in Symbolic Music Generation with Large Language Model Training Paradigms}, 
    author={Yashan Wang and Shangda Wu and Jianhuai Hu and Xingjian Du and Yueqi Peng and Yongxin Huang and Shuai Fan and Xiaobing Li and Feng Yu and Maosong Sun},
    year={2025},
    eprint={2502.18008},
    archivePrefix={arXiv},
    primaryClass={cs.SD},
    url={https://arxiv.org/abs/2502.18008}, 
 }

本页面是使用 Academic Project Page Template 构建的,该模板改编自 Nerfies 项目页面。您可以随意借用本网站的源代码,我们只要求您在页脚中链接回本页面。本网站根据 Creative Commons Attribution-ShareAlike 4.0 International License 授权。

  1. 1 升 F 小调圆舞曲 - NotaGen
  2. 2 广板小提琴奏鸣曲 - NotaGen
  3. 3 琶音曲 - NotaGen
  4. 4 灵魂之舞 - NotaGen
  5. 5 升 F 大调行板 - NotaGen
  6. 6 降 D 大调弦乐四重奏 - NotaGen
  7. 7 幽默曲 - NotaGen
  8. 8 从光明到阴影 - NotaGen
  9. 9 B 大调浪漫曲 - NotaGen
  10. 10 快板小提琴奏鸣曲 - NotaGen
  11. 11 月光涟漪 - NotaGen
  12. 12 如歌的行板 - NotaGen
  13. 13 练习曲 - NotaGen
  14. 14 A 大调小夜曲 - NotaGen
  15. 15 抒情片段 - NotaGen
  16. 16 管弦乐小步舞曲 - NotaGen
  17. 17 A 小调打击乐舞曲 - NotaGen
  18. 18 弦乐协奏曲 - NotaGen

升 F 小调圆舞曲 - NotaGen 00:00 / 01:21