NotaGen

5天前发布 75 0 0

NotaGen是由中央音乐学院与清华大学等机构联合研发的AI音乐生成模型,专注于生成高质量古典音乐乐谱,同时支持流行音乐创作。作为开源项目,其目标是推动音乐与人工智能的深度融合,为专业作曲家、教育机构及音乐爱好者提供创作辅助工具。

收录时间:
2025-07-06

NotaGen是什么?

NotaGen是一款由中央音乐学院联合北京航空航天大学、清华大学等机构研发的 AI 古典乐谱生成模型。采用三阶段训练范式(预训练 – 微调 – 强化学习)实现通过“时期-作曲家-乐器”提示词获得高质素符号音乐。输出格式包括 ABC 记谱法与 MusicXML,可用于辅助作曲、音乐教育及音乐风格研究等场景,并具备较好的音乐可控性。

主要功能特点

1. 高水平的古典乐谱创作:从“时期-作曲家-乐器”(如:“浪漫主义-肖邦-钢琴”)出发,生成 ABC 格式和 MusicXML 格式以演奏、教学与分析。

2. 三阶段训练范式

  • 预训练:在 160 万首多风格乐曲上训练,建立音乐语言的通识能力;
  • 微调:在约 9000 首高质量古典作品上聚焦风格学习;
  • 强化学习(CLaMP-DPO):通过对比学习与偏好优化,提升音乐性与结构连贯性。

3. 可控性:可以根据用户的提示词,可控地生成不同风格、不同作曲家、不同乐器编制的教谱与作曲创演科教等;

4. 分层解码:采用 Patch-level Decoder 与 Character-level Decoder 的分层解码,在大处和小处都考虑到音乐本身。

5. 不同模型规模可选 (small / medium / large … max 5.16B),可以在不同型号的硬件上运行;

6. 开源与本地部署:支持本地部署与 Gradio 演示,方便大家二次开发和尝试。

使用方法

一、本地部署使用 NotaGen

1. 环境准备

conda create --name notagen python=3.10
conda activate notagen
conda install pytorch==2.3.0 pytorch-cuda=11.8 -c pytorch -c nvidia
pip install accelerate optimum
pip install -r requirements.txt

2. 下载模型权重

选择需要的模型大小(small / medium / large),下载相应的预训练/微调权重放入相应目录下。

3. 推理生成乐谱

编辑 inference/config.py,设置模型路径和生成数量:

INFERENCE_WEIGHTS_PATH = '路径/到/模型权重.pth'
NUM_SAMPLES = 1

然后运行:

cd inference/
python inference.py

生成的乐谱将保存在 output/ 文件夹中,格式为 ABC 记谱法。

二、使用 Gradio 本地演示界面

如果你想更直观地体验 NotaGen,可以使用 Gradio Demo:

cd gradio/
python demo.py

输入 http://127.0.0.1:7861/,输入提示词为“Romantic-Chopin-Piano”,得到对应风格谱。

三、乐谱格式与后处理

默认输出为 ABC 记谱法,也可以转成 MusicXML 在 MuseScore 中浏览或者演奏(参见项目中 data/README.md 的格式转换和数据增强)。

常见问题解答(FAQ)

Q1:NotaGen 能生成什么类型的音乐?

A1: NotaGen 输出 ABC 记谱法 或者 MusicXML 格式的古典风格符号音乐,用于演奏、教学、分析及辅助创作。

Q2:如何控制生成风格?

A2:用户可以像控制词一样指定“时期-作曲家-乐器”(e.g., Romantic-Chopin-Piano),从而具有较强的可控性。

Q3:输出的乐谱如何查看或播放?

A3:生成的 ABC 格式乐谱可通过:

  • 转换为 MusicXML(参考项目中的 data/README.md);
  • 使用 MuseScore 等软件打开播放;
  • 在线工具如Moonyueqi XML 播放器进行试听。

Q4:是否支持中文提示词?

A4:对,现在的提示词都是英文关键词为主(如:“Baroque-Bach-Organ”)吗?用英文比较好控制风格。

一句话总结

NotaGen是“懂音乐也懂风格”的AI乐谱生成器,让AI不仅会写旋律,还能写有灵魂的音乐。

数据统计

相关导航

暂无评论

none
暂无评论...