📌 项目地址:multimodal-art-projection/YuE | ⭐ 7,183 颗星 | 🔧 Python | 📜 未标注
问题:闭源音乐模型改不了旋律
用 Suno 生成过歌的人都知道那个流程:不满意就换个 prompt 重新抽。你听到的成品和模型内部的“构思”之间隔着一堵墙——旋律长什么样、和弦怎么走的,你既看不到,也改不了。唯一的控制手段是提示词。
YuE2(multimodal-art-projection/YuE,7183 Star,Python)拆了这堵墙。它的做法分两步:先根据歌词和风格提示生成一份旋律与和弦的符号乐谱,再把这份乐谱渲染成带人声和伴奏的完整歌曲。乐谱就在中间环节,可读、可播放、可编辑。
三种模式,一个 checkpoint
README 列了三种用法,区别只在乐谱从哪来:
- 创作:歌词 + 风格 → 模型自己写乐谱 → 渲染成歌
- 翻唱:把一段录音转录成旋律乐谱,换风格重新演绎(零样本)
- 智能体编辑:通过对话修改乐谱、编曲或歌词,重新渲染
官方的 agentic 演示值得一看:一首《The Last Train》经过 9 步对话、14 个版本,从华语流行改到英文爵士,和声换过,还加了段萨克斯独奏。每个版本的对话记录、乐谱、提示词、歌词都能在项目页逐个核对。这个演示说明了符号规划的实际意义——对话改的是乐谱,不是随机种子。
架构:一条流水线,四个阶段
骨干是一个 AR–NAR Mixture-of-Transformers:自回归部分预测乐谱和语义 token,之后用 flow matching 生成声学 latent,最后 VAE 解码成 48 kHz 立体声。
Python API 按阶段暴露:plan() → generate_semantic() → synthesize() → decode()。这个设计有个直接好处:你可以复用某次乐谱计划,只重跑后面的渲染阶段,也可以换解码器。具体用法在 docs/generation.md。
分数怎么看
YuE2 在 WildSongBench 上对标 Suno v5/v6。best-of-8 设置下拿到 6.9632 SongBench Avg,是所有评估设置里最高的均值。注意两点:这是 best-of-8,不是单次生成;评估协议和完整分数在 docs/benchmarks.md,建议自己看一遍再下结论。
上手成本
- Linux,Python 3.12
- 支持 BF16 的 NVIDIA GPU,24 GB 显存
- 模型在 Hugging Face 上(YuE2),同时发布了 MERT2、SheetSage2、WSB 等配套模型——SheetSage2 应该就是翻唱模式里负责转录的那个
- 原版 YuE 的代码、文档和许可证保留在
YuE-v1分支,查许可证或复现旧结果去那边
24 GB 显存这个门槛,消费级只有 4090/5090 这个级别能碰。README 的 Quick start 在“48 kHz stereo aud”处截断,安装命令以仓库里的 Quick start 链接和文档为准,我不猜。
我的判断
这个项目有意思的地方不在分数,在接口。乐谱变成显式控制层之后,编辑音乐的可以是人,也可以是程序。闭源产品给你一个“重新生成”按钮,YuE2 给你一份可以改的谱子。对想在生成流程里插入自己音乐判断的人来说,这是目前别处拿不到的东西。代价是你得有张 24 GB 的卡,并且接受 best-of-8 和单次生成之间的质量差距。