YuE2 零样本翻唱实战指南:转谱、审校、换风格重制一次跑通
【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE
你想把一首现成录音换成完全不同的风格重做,但 YuE2 的接口里没有"直接上传原曲"的参数。本文讲清 YuE2 零样本翻唱的完整链路:先用 SheetSage2 把录音转成无和弦的旋律乐谱,人工审校后,再用 YuE2-3B 以cot="melody"规划模式加上新风格、新歌词重制出完整歌曲,全程不需要任何翻唱专属微调。读完你能独立搭好两套隔离环境、跑通从转谱到出片的全流程,并看懂基准数据的结论边界。
⚖️ 先选对:乐谱形态与规划模式怎么定
乐谱形态和规划模式怎么选
先回答三个问题:给什么乐谱、cot取什么值、用什么环境。
| 你的目标 | 喂入的 ABC 形态 | cot取值 | 原因 |
|---|---|---|---|
| 已有旋律,换新风格翻唱 | 无和弦旋律谱(Vocal、Ins两条旋律声部) | melody | 只锁定旋律,和声与配器交给目标风格重建 |
| 翻唱但保留原曲和声骨架 | 带和弦符号的乐谱 | full | 和声被固定,成品贴近原作配和 |
| 重和声、局部修改现有乐谱 | 编辑后带和弦的乐谱 | full | 改完直接生效 |
| 纯文本生成新歌(无乐谱) | 不提供 | full/melody/off | 由 YuE2 自行规划;off即纯文字出歌 |
喂入外部 ABC 时,管线直接对它分词、跳过符号规划器,不存在"第二个规划器帮你修谱"的环节(plan()在 src/yue2/pipeline.py 中,abc非空即走该分支)。所以:你递进去的谱就是最终生效的谱;cot="melody"也不会自动剔除文件里残留的和弦符号。完整任务与模式对照见 skills/yue2-music/references/generation-and-covers.md。
为什么两套环境必须隔离
- SheetSage2 侧固定 Transformers 4.45.2 与 NumPy 1.24.3,要求 Python 3.10/3.11 和 FFmpeg 6.1;YuE2 运行时固定的是 PyTorch 2.10.0、Transformers 4.57.6、NumPy 2.2.6(skills/yue2-music/references/models-and-setup.md)。两套依赖互相冲突,只能各建一个虚拟环境。
- 两个环境之间只交换 ABC 与音频文件;先转谱释放显存,再加载 YuE2,顺序执行即可共享同一块 GPU。
- Hugging Face 缓存可以共用——隔离的对象是 Python 依赖,不是权重。
- 加载 SheetSage2 时会自动挂载其配置选定的 MERT-v2-FullSong 编码器父模型,不需要另做一次 MERT 特征提取,也不要把 MERT 连续特征当成 YuE2 的离散语义 token。
🛠️ 最短执行路径:从录音到成品三步
如何搭建隔离转谱环境并用一条命令出谱
python3.11 -m venv .venv-sheetsage2 .venv-sheetsage2/bin/python -m pip install huggingface-hub==0.36.0 .venv-sheetsage2/bin/huggingface-cli download m-a-p/SheetSage2 --local-dir models/SheetSage2 .venv-sheetsage2/bin/python -m pip install torch==2.8.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu126 .venv-sheetsage2/bin/python -m pip install -r models/SheetSage2/requirements.txt转谱只需一条命令,--melody-only是关键:
.venv-sheetsage2/bin/python models/SheetSage2/infer.py source.wav --output cover-score --melody-only验证信号:退出码为 0 且无告警;cover-score/score.abc中保留 Vocal 与 Ins 两条旋律声部、不含和弦符号。然后对照源录音逐条核对音符、拍号与段落顺序——转谱错音不经审校就会被生成器固化进成品。需要记录溯源信息(源音频哈希、模型 revision、快照哈希)时,改用仓库辅助脚本 skills/yue2-music/scripts/transcribe.py 的--task melody-full,它自动写入input.json、model_provenance.json、abc_check.json并做无和弦校验,校验失败以非零码退出。
如何把乐谱喂给 melody 规划模式并生成
请求文件照 examples/song.json 的形态编写:
| 字段 | 作用 |
|---|---|
style | 目标风格:流派、乐器、人声特质、语言、速度都写在这里;tags只是它的别名,两者同现必须一致 |
lyrics | 用[Verse]/[Chorus]组织演唱歌词,段落顺序与乐谱对齐 |
cot | 本次取melody |
seed | 固定种子,便于对比追踪 |
abc | 不必写进 JSON,由--abc-file注入 |
.venv/bin/python examples/generate.py --request cover-request.json --abc-file cover-score/score.abc --cot melody --output outputs/cover验证信号:examples/generate.py 会拒绝已存在的输出目录;跑完检查outputs/cover/audio.flac已生成、result.json中truncated为 false、退出码 0。手边没有源录音时,把--request/--abc-file换成examples/song.json与examples/melody.abc即可单独验证乐谱条件生成接口——那是原创素材测试,不是转谱演示。
⚠️ 避坑手册:条件 → 后果 → 解法
| 触发条件 | 后果 | 解法 |
|---|---|---|
--abc-file与--cot off同时给出 | 脚本直接报错退出 | 带谱时cot只能是melody或full |
melody模式但 ABC 里仍有和弦符号 | 和弦原样进入输入,配器被原和声锁死 | 转谱阶段就用--melody-only导出,别指望接口帮你删 |
| 转谱退出码非零或有告警仍继续 | 音符、拍号、段落错误被带入成品 | 停手对照源录音审校;孤立标注文件(LAB 等)不代表成功乐谱 |
| 复用上一次输出目录 | 新旧版本混杂、追溯链断裂 | 每次运行使用全新目录,generate.py本身也做了此校验 |
只看到status=complete就收工 | 截断的"完整"歌曲被当成正常产出 | 查result.json的truncated(含 abc/semantic 两项)与片尾长度 |
| 试图把录音直接喂给 YuE2 做参考 | 接口无reference_audio字段,流程不成立 | 源分离、转谱、歌词识别、条件生成是四个独立环节,按本文链路分步执行 |
| 不锁定 SheetSage2 的 revision | trust_remote_code=True会执行模型仓库自带 Python 代码,结果不可复现 | 锁定已审校的 revision 并随运行清单记录 |
📊 评估数据怎么看:零样本翻唱基准
协议背景:948 首 SHS100K 作品 × 2 个目标风格 × 2 个种子 = 每方法 3,792 个输出,无候选挑选;YuE2 各条件均使用通用歌曲生成检查点与 benchmark 解码器,生成器未接受任何"原曲–翻唱"配对监督或翻唱专属微调(docs/benchmarks.md)。CLEWS 与 Discogs-VINet 在每查询 10,545 条、排除源作品的检索画廊上衡量作品身份保留;MuLan 衡量目标风格贴合度;SongBench Musicality 衡量音乐性。
| 方法 | CLEWS mAP ↑ | CLEWS Hit@1 ↑ | Discogs-VINet mAP ↑ | MuLan ↑ | SongBench Musicality ↑ |
|---|---|---|---|---|---|
| SongEcho | 0.419 | 48.4% | 0.122 | 0.366 | 3.286 |
| ACE-Step 1.5 | 0.024 | 2.4% | 0.006 | 0.166 | 3.689 |
| YuE2 (full score) | 0.647 | 71.3% | 0.288 | 0.382 | 5.104 |
| YuE2 (without chords) | 0.598 | 67.3% | 0.179 | 0.417 | 5.490 |
| YuE2 (without score) | 0.006 | 0.3% | 0.004 | 0.474 | 5.691 |
三点读法:完整乐谱在身份保留上最高(0.647 / 71.3%);去掉和弦后身份指标略降,风格贴合与音乐性反而上升——固定转谱会约束对反差风格的改编,因此产品侧默认推荐 melody-only 翻唱;完全不喂谱时身份指标塌到接近 0,说明旋律谱才是身份保留的来源。这些数据不能证明"让模型从当前提示词重新规划乐谱就会降低质量",也不构成跨指标通用领先或人类偏好的结论;单次本地生成更不是对聚合数字的复现。
✅ 一页行动清单
- 两套 venv 各装各的依赖,共享一个 GPU:先转谱、释放显存,再加载 YuE2。
- 转谱一律
--melody-only,出谱后逐条核对音符、拍号与段落顺序。 - 歌词的
[Verse]/[Chorus]与乐谱段落顺序对齐;翻译歌词时匹配短语划分与音节数。 - 带谱生成用
cot=melody;要保留原和声骨架才用full。 - 每次运行换新输出目录,并记录 seed、模型 revision 与权重哈希。
- 收工前查
result.json的truncated与片尾,complete不等于没截断。 - 把基准表当选型参考:身份保留看 full score,风格贴合与音乐性看 melody-only。
【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考