← 返回日报
🌐 机器翻译 · DeepSeek · GitHub

multimodal-art-projection YuE


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 演示跟随《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

📖 阅读原文 →