multimodal-art-projection YuE
在寻找原始 YuE?其代码、文档和许可证保留在 YuE-v1 分支上。
YuE2:以前沿品质统一符号音乐与音频音乐生成
用符号作曲。用声音创作。
🎧 演示 · 🤗 YuE2 · 🚀 快速开始 · 🤖 Agent 技能 · 📊 基准测试 · 🤗 MERT2 · 🤗 SheetSage2 · 🤗 WSB · 📦 发布 ·
YuE2 将前沿歌曲品质带入音乐生成,并具备可编辑的作曲能力。给它歌词和风格提示:它会编写旋律与和弦规划,然后将该规划实现为包含人声和伴奏的完整歌曲。
前沿品质。 YuE2 在 WildSongBench 上与 Suno v5/v6 具有竞争力。YuE2(best-of-8)达到 6.9632 SongBench Avg,是所有评估设置中观测到的最高均值。
通过符号规划实现白盒音乐生成。 在渲染之前读取、演奏和修改作曲。旋律和和弦成为显式控制项,人或 agent 可以检查和编辑。
零样本翻唱与 agent 编辑。 以新风格重新想象一首转录歌曲,或通过关于其乐谱、编曲和歌词的对话来精炼一首歌——全部使用同一个生成检查点。
192 个 WildSongBench 提示。两种 YuE2 设置均使用符号规划。Bo8 = best-of-8。坐标轴为归一化比较指数;气泡面积代表 AudioBox 制作质量。分数与评估协议。矢量 PDF · SVG。
听听你能创作什么
- 创作
- 翻唱
- 用 agent 编辑
歌词 + 风格 → 乐谱 → 完整歌曲
源录音 → 旋律乐谱 → 全新演绎
音乐反馈 → 乐谱、风格或歌词修改 → 新录音
聆听并检查乐谱
聆听零样本翻唱
跟随编辑对话
该 agent 演示跟随《The Last Train》经历了 9 个步骤和 14 个版本,从华语流行到英语爵士,配有新的和声和萨克斯独奏。聆听每个版本,并检查其对话、乐谱、提示和歌词。
工作原理
一个 AR–NAR Mixture-of-Transformers 骨干网络自回归地预测乐谱和语义 token,然后通过流匹配生成声学 latent。VAE 将这些 latent 解码为立体声音频。
创作、翻唱和编辑的区别在于乐谱的来源:YuE2、转录录音或编辑后的作曲。
分阶段 Python API 暴露了 plan() → generate_semantic() → synthesize() → decode()。有关精确规划复用和解码器选择,请参阅生成指南。
快速开始
Linux · Python 3.12 · 支持 BF16 且具有 24 GB VRAM 的 NVIDIA GPU。YuE2 生成 48 kHz 立体声音频,无需量化。模型文件在首次使用时从 Hugging Face 下载。
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
打开 outputs/first-song/audio.flac。输出目录还保留了乐谱、语义 token、声学 latent、生成设置和模型标识。
Python 接口同样简短:
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")
print(song.truncated)
| 设置 | 行为 | |------|------| | cot="full" | 生成可编辑的旋律与和弦规划;新歌曲的默认值 | | cot="melody" | 使用旋律规划并配以自由伴奏;推荐用于翻唱 | | cot="off" | 直接从歌词和风格生成 | | abc=... | 在 full 或 melody 模式下提供你自己的乐谱 |
生成指南 · 原始示例输入 · v0.1.6 wheel 归档
翻唱一首歌
使用 🤗 SheetSage2 转录源录音,检查其旋律 ABC,并提供新歌词或目标风格。对于翻唱,使用 cot="melody" 和不含和弦符号的乐谱,以便伴奏能够适应新风格。
from pathlib import Path
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",
seed=42,
)
cover.save_artifacts("outputs/cover")
SheetSage2 在独立环境中运行,并自动加载其 MERT2 编码器。翻唱指南提供了完整的转录和生成命令。附带的原始旋律示例还让你可以立即尝试乐谱条件生成。
编辑作曲
导出规划,修改音乐细节,然后渲染编辑后的乐谱:
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:
plan = pipe.plan(**request)
plan.save("outputs/plan")
将 outputs/plan/score.abc 复制为 edited.abc,然后让 agent 更改其和声、旋律、速度或曲式。将编辑后的文件作为新乐谱提供:
python examples/generate.py --request examples/song.json \
--abc-file edited.abc --cot full --output outputs/edited
可编辑乐谱就是白盒接口:你可以检查预期的作曲并对其进行干预。编辑会生成新的完整录音;它不会在编辑之外保留原始波形。编辑指南和一个可复现的和声示例。
Agent 技能
yue2-music 技能教导 agent 如何生成歌曲、转录和翻唱录音、编辑 ABC 乐谱、检查音乐不变量,以及组织聆听比较。它包含可移植的辅助工具和对已发布模型接口的引用。
将本仓库中的 skills/yue2-music/ 与支持 SKILL.md 包的 agent 一起使用。使用你的 agent 的技能目录或导入机制进行安装;Python r