
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不仅会写旋律,还能写有灵魂的音乐。
数据统计
相关导航


新AI Face Analyzer

新火山写作

新Ssemble

新Addsubtitle AI

新百度文库AI助手

新EmotiVoice-Plus
