yue2-music Skill:给 Agent 配的可编辑音乐生成神器

近期 GitHub Trending Python 榜单上,最受关注的新面孔不是又一个 LLM 框架,而是 multimodal-art-projection/YuE 的 2.0 版本 YuE2——一个把”写歌这件事”拆成可读、可编辑、可对话的”可写程序”的音乐生成 Skill。它把 Suno 的黑盒式生成推到了一旁:你能读到乐谱、和弦,能让 agent 一句一句改旋律、配器、人声,还能在 WildSongBench 上以 6.9632 的 SongBench Avg 拿下开源第一,顺便把 Suno v5 / v6 / v5.5 / v6 Wild 全部压在身后。它不只是一个模型,更是一个直接交付给 agent 的 yue2-music Skill 包。

功能与原则

核心能力是把”歌词 + 风格”转成一段结构化音乐:plan() 先生成可读可改的旋律-和弦 ABC 谱;generate_semantic() 输出语义 token;synthesize() + decode() 用 VAE 还原成 48 kHz 立体声。设计上坚持三个原则:白盒(white-box)生成必须留一份可编辑乐谱;零样本翻唱与对话式改稿共用同一套模型;任何评分、对比、改动都要留下可复现的 artifact。

认可度

截至 2026-09-12,仓库拿到 7,005 star / 801 fork,今日新增 +193 star,登上 GitHub Trending Python 日榜;Apache 2.0 协议,已发布 yue2-v0.1.6 轮子包与 yue2-music.zip Skill 包。WildSongBench 192 个 prompt 的盲评里,YuE2 (best-of-8) SongBench Avg 6.9632,跑赢 Mureka 9 (6.9377)、Suno v5 (6.8721)、Suno v5.5 (6.7150)、Suno v6 (6.5562) 等闭源对手;零样本翻唱任务在 948 首作品上拿到 0.647 CLEWS mAP,刷新开源 SOTA。社区端近期在 Discord (ssAyWMnMzu) 与 Hugging Face (m-a-p/YuE2-3B) 同步讨论度都在涨。

链接

原作者

项目归属于 multimodal-art-projection 组织,核心贡献者 a43992899 (119 commits)、hf-lin (24 commits)、Yiming-Liang (4 commits),并伴随 DJStompZone、Skrill2001、yongyizang 等社区贡献。组织 2023 年成立,目前共有 30 个公开仓库,362 个 follower,长期做开放音频/音乐生成方向的 foundation model 与跨学科实验。

介绍

YuE2 不是传统意义上的”唱一句返一段”模型。它背后是一个 AR-NAR Mixture-of-Transformers 骨架,先自回归地预测乐谱 token 和语义 token,再用 flow matching 生成声学 latent,最后 VAE 解码为立体声。这意味着同一份模型权重,可以走三条互不冲突的路径:从零生成(Create)、翻唱源曲(Cover)、让 agent 对话式编辑乐谱(Edit)。

README 给出的官方 demo 把《The Last Train》从普通话流行一路改成英语爵士,新增和声并加了段萨克斯独奏,全程 9 步 14 个版本,每个版本都把对话、乐谱、prompt、歌词一并留出来。这种”白盒 + 对话”的双重透明是它能在社媒与社区同时爆的根本原因——它让”人也好,agent 也好,都能听懂这首歌到底在唱什么”成为现实。

特点

  • 可编辑乐谱优先:所有非 cot="off" 生成都会留下一份 ABC 乐谱 + semantic tokens + latent + 生成参数,方便后续修改、二次翻唱或回归对比。
  • 三档 CoT 模式cot="full" 走完整旋律-和弦计划(默认原创歌曲);cot="melody" 只锁旋律、和弦放手(推荐用于翻唱);cot="off" 跳过谱面、直接出歌(速度优先,质量降一档)。
  • 统一模型做三件事:从零创作、零样本翻唱、对话式编辑全部走 m-a-p/YuE2-3B 同款权重,不依赖外部 codec,不需要 MERT 特征作为 token 输入。
  • 配套 Skill 包:仓库内置 skills/yue2-music/,含 SKILL.md、可执行脚本、prompt.json 模板、reproduction 引用,agent 能直接拿来按规则跑流程。
  • 基准可复现:WildSongBench 协议、YuE2-Vae-legacy decoder、CLI --resume 都写进了文档,第三方对照评估门槛极低。

使用方法

环境要求:Linux · Python 3.12 · BF16 NVIDIA GPU · 24 GB VRAM,权重首次运行从 HuggingFace 拉取。

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

# 跑一遍官方示例,输出 outputs/first-song/audio.flac
python examples/generate.py --output outputs/first-song

# Skill 包集成:把 skills/yue2-music/ 整个目录放进 agent 的 skills 路径
# 然后告诉 agent:
# "Use the yue2-music skill to create an English piano-pop song."

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")

翻唱链路要用到 SheetSage2(独立 venv,MERT2 编码器会自动加载),流程是 audio → SheetSage2 → ABC → 去和弦 → YuE2 melody

使用场景与人群

  • 独立音乐人 / 编曲师:想要一个不会把原曲当黑盒、能让自己改旋律改和声的本地生成底座。
  • 音乐教学与乐理课堂:把 prompt 改一个风格词、让模型出谱,学生就能直接对照五线谱学 chord progression 与 form。
  • 游戏 / 影视配乐前置:需要可批量、可分支、可回退的 BGM demo,用 ABC + latent 就能归档 A/B 版本。
  • Agent / AI 工作流集成方:手上有 Codex、Claude Code 这类 coding agent,希望它们按可审计流程批量生产主题曲或 demo。

输入与输出案例

Input(来自 skills/yue2-music/assets/prompt.json,结构与 README 给的最小请求一致):

{
  "id": "city_lights",
  "style": "English, warm piano pop, expressive female voice, acoustic piano, rounded bass and light drums, lyrical memorable melody, unhurried phrasing, 88 BPM",
  "lyrics": "[Verse]nNeon fades along the lanenFootsteps keep the time of rainn...",
  "cot": "full",
  "seed": 831001
}

Output(按 cot="full" 走完整流程,最终落盘的文件结构):

outputs/city_lights/
├── audio.flac          # 48 kHz 立体声,VAE 解码输出
├── score.abc           # 可读可改的旋律-和弦乐谱(后续编辑/翻唱的入口)
├── request.json        # 完整请求快照,便于复现
├── result.json         # 模式、采样、时长、truncation 等元数据
├── tokens.json         # 语义 token 序列
├── latent.npy          # 声学 latent,便于二次解码或 A/B 对比
└── gen_settings.json   # CFG / sampler / decoder 选择记录

如果走对话式编辑路径,下一轮请求只需把 score.abc 拷贝为 edited.abc、再交给 agent 改和声/配器/节奏/歌词,再以 --abc-file edited.abc --cot full 重跑,就能拿到一份带修改痕迹的新立体声成品,全程不留黑盒。


GitHub: https://github.com/multimodal-art-projection/YuE

评论区

0 条评论

登录后可评论。

Skill超级捕获手 58 阅读