AI 做音乐这件事,过去一年我们看着 Suno、Udio 一路高歌,Demo 一个比一个惊艳,价格也一个比一个贵。

然后我们再回头看开源世界——不是模型出不来歌,就是质量差一截,或者干脆闭源让你摸不着它是怎么把词变成旋律的。

最近,港科大、纽约大学、斯坦福、MBZUAI 加上 ACE Studio 和 Tokenwave.AI 一起出的开源模型 YuE2,把这条路拆成了两段。

中间多了一份东西——一份能看、能改、甚至能喂回去重新唱的旋律和弦谱。就像你先拿到一张草图,觉得线条不对可以擦,比例不对可以调,改满意了再让它上颜色。

这件事本身比"开源模型追平 Suno v6"更值得聊。


⏩项目介绍

YuE2 是 Multimodal Art Projection(M·A·P)团队继 YuE 之后的第二版开源音乐生成模型。

第一版 YuE 在 2025 年初发布时已经是当时最强的开源歌词转歌曲模型——7B 参数、支持 5 分钟长曲、中英日韩多语言。

YuE2 在架构上做了更根本的改造。模型缩到了 3.59B 参数,但核心能力换成了两件事:符号规划(Symbolic Planning) 和 可编辑中间表示。

给它歌词和风格描述,它先输出一份 ABC notation 格式的旋律+和弦谱——这不是一个隐层向量,这是一份人能读、能弹、能直接拿去改的谱子。然后再从这份谱子渲染出带人声伴奏的 48 kHz 立体声成品。

这个两阶段流程让它和 Suno、Udio 的黑箱式生成从根本上区分开来:YuE2 生成音乐走的路线,更像一个真正的作曲家——先写谱,再配器,再演奏。

⏩核心亮点

1. 那份能改的谱,是整个项目最值钱的东西

YuE2 的 plan() 方法输出的不是一串不可读的 token,而是标准的 ABC notation[1]——一种自 19 世纪就存在、被世界各地乐手广泛使用的简化乐谱格式。

你可以用任何 ABC 阅读器(比如 abcjs[2])把它渲染成五线谱,或者直接丢给 MuseScore 打开。

改完存成新文件,交回 YuE2 的 synthesize() 步骤就能渲染出新版。

2. 零样本翻唱,一份录音转出新演绎

YuE2 配套了一个专门的转录模型叫 SheetSage2。

它能把一段现成的录音(比如你手机里录的一段清唱,或者一首老摇滚的旋律线)转成 ABC 格式的旋律谱。拿到这个谱之后,你可以:

  • • 配一套全新的歌词,用 YuE2 唱一遍
  • • 换个风格描述,比如把一段日本 city pop 的旋律套上 "English, jazz-funk, warm lead vocal, Rhodes"
  • • 保持旋律不动,只换和弦(cot="melody" 模式)让伴奏跟上新风格

3. Agent 式编辑:把改歌这件事交给代码里的 AI

YuE2 是目前少数几个原生自带 Agent Skill 的开源模型。

所谓 skill,就是给 AI 编程工具写的一套指令包——告诉它这个模型有哪些能力、怎么调用、参数是什么、谱子怎么读怎么改。

YuE2 的 skill 直接放在 GitHub 仓库的 skills/yue2-music/SKILL.md 里。你把这个目录丢给 Claude Code 或 Cursor,然后直接对它说:

用 YuE2 写一首英文 piano pop,出两个版本——第一版用原和弦,第二版把副歌换成爵士和声,人声旋律和歌词顺序保持不变,给我两个版本做对比。

AI 会自己调 pipeline 生成第一版,把谱子导出来,改和弦,再渲染第二版,最后把两个 audio.flac 和对应的谱子一起给你。

整个过程你只给自然语言指令,中间的规划、转谱、改和弦、重新渲染全是 AI 代理帮你做的。


⏩快速上手

git clone https://github.com/multimodal-art-projection/YuE.git
cd YuE
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install .

从歌词和风格生成

python examples/generate.py --output outputs/first-song

输出目录里会有 audio.flac 和 score.abc。

Python API

import json
from pathlib import Path
from yue2 import YuE2Pipeline

request = json.loads(Path("examples/song.json").read_text(encoding="utf-8"))
with YuE2Pipeline.from_pretrained("m-a-p/YuE2-3B", device="cuda") as pipe:
    song = pipe(**request)
    song.save_artifacts("outputs/my-song")

编辑已有谱子

from yue2 import YuE2Pipeline

with YuE2Pipeline.from_pretrained("m-a-p/YuE2-3B", device="cuda") as pipe:
    # 先拿规划结果
    plan = pipe.plan(**request)
    plan.save("outputs/plan")
    # 手动改 output/plan/score.abc,或者用 Agent 帮你改
    # 然后重新渲染
    edited = pipe.synthesize(abc=Path("edited.abc").read_text(), cot="full")

翻唱

from yue2 import YuE2Pipeline

with YuE2Pipeline.from_pretrained("m-a-p/YuE2-3B", device="cuda") as pipe:
    cover = pipe(
        style="English, jazz-funk, warm lead vocal, Rhodes, bass and drums",
        lyrics=Path("cover-lyrics.txt").read_text(encoding="utf-8"),
        abc=Path("cover-score/score.abc").read_text(encoding="utf-8"),
        cot="melody",  # 翻唱用 melody 模式,让伴奏自由适配
        seed=42,
    )
    cover.save_artifacts("outputs/cover")


⏩评测数据

WildSongBench 是团队自建的 192-prompt 评测集,2026 年 9 月 12 日发布。

YuE2 在 SongBench Avg(综合质量 + 文歌对齐)的表现:

系统SongBench Avg ↑AudioBox PQ ↑MuLan ↑PER ↓
YuE2 (best-of-8)6.96328.27140.50519.79%
Mureka 96.93778.02260.439411.69%
Suno v56.87218.16980.54288.10%
YuE26.73168.25980.50688.44%
Suno v66.55628.12960.49167.58%
LeVo 26.32478.39660.354226.12%
YuE 14.91657.86830.262336.38%

YuE2 单跑就已经超过 Suno v6,best-of-8 采样后甚至超过 Suno v5 和 Mureka 9。

不过 README 里也老老实实承认:"最高几个分数的差距很小,不代表统计显著性差异。" 实话实说,这点值得表扬——不像有些模型宣传"全面碾压",YuE2 说的是"有来有回"。

零样本翻唱上,YuE2 在 948 首作品上 CLEWS mAP 0.647(有谱)vs 0.006(无谱),证明了中间谱的价值。


⏩写在最后

Suno 把 AI 做歌的门槛降到了"打一行 prompt 等 20 秒",但它没教你怎么做对——它的成功很大程度上来自一个极其庞大、极其高质量的闭源数据集。

开源世界追了一整年,YuE2 第一次把距离拉近到"差不多",而且给出了一条和 Suno 完全不同的路线:不绕开作曲这个环节,而是把它暴露给你。

对于独立音乐人来说,24GB 显存门槛不低(RTX 4090 刚好够),但"免费、可商用、能改谱、能翻唱"这四点加在一起,已经是目前开源领域里最实用的选择之一了。


⏩项目信息

引用链接

[1] ABC notation: https://abcnotation.com/

[2] abcjs: https://abcjs.net/