ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

YuE2 零样本翻唱(Zero-Shot Cover)完整工作流:录音转谱、旋律审校与风格化重制实战指南

YuE2 零样本翻唱(Zero-Shot Cover)完整工作流:录音转谱、旋律审校与风格化重制实战指南 YuE2 零样本翻唱Zero-Shot Cover完整工作流录音转谱、旋律审校与风格化重制实战指南【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE导读本文基于仓库 docs/covers.md 展开系统讲解 YuE2 的翻唱Cover工作流——从源录音出发先用 SheetSage2 转录出可读的旋律乐谱melody-only ABC人工审校后交给 YuE2 以cotmelody的符号规划模式在全新风格与歌词下重新生成完整歌曲。全程无需翻唱专属微调通用 YuE2 检查点即可完成。读完本文你将掌握环境隔离配置、转谱接口调用、请求 JSON 编写、生成命令执行以及翻唱在 benchmark 中的评估边界。一、翻唱的本质从可读的作曲开始docs/covers.md开篇给出了一个关键论断翻唱始于一份可读的作曲a readable composition。完整链路是源录音 source.wav → SheetSage2 转谱melody_onlyTrue自动加载 MERT-v2-FullSong 编码器 → 审校旋律 ABC无和弦符号保留 Vocal / Ins 双声部 → YuE2-3Bcotmelody 目标风格 style 目标歌词 lyrics → 语义 token → 声学 latent → YuE2-Vae 解码 → 48kHz 立体声音频链条中的每一步都是独立的源分离、转谱、歌词识别、乐谱条件生成是四个不同操作YuE2 的接口中不存在reference_audio之类的直接上传音频参数见 skills/yue2-music/references/generation-and-covers.md。其 VAE 编码器也不是旋律转谱的替代品。该工作流不需要翻唱专属微调docs/benchmarks.md 的零样本翻唱评估明确指出所有 YuE2 条件均使用通用歌曲生成检查点与 benchmark 解码器生成器未接受任何原曲–翻唱配对监督或翻唱专属微调且作者确认了评估作品未进入生成器训练集。二、第 1 步单独搭建 SheetSage2 转谱环境为什么必须隔离环境SheetSage2 与 YuE2 的依赖版本互不兼容。SheetSage2 侧固定 Transformers 4.45.2 与 NumPy 1.24.3YuE2 运行时固定的是另一套 PyTorch/Transformers 版本详见 skills/yue2-music/references/models-and-setup.md。因此规范做法是各自独立虚拟环境仅通过文件交换 ABC 与音频转录与生成顺序执行共享同一块 GPU先转谱释放显存再加载 YuE2。SheetSage2 需要Python 3.10 或 3.11且要求FFmpeg 6.1 及其共享库确认ffmpeg在PATH上。按模型卡完成平台准备后从 YuE 仓库根目录执行python3.11 -m venv .venv-sheetsage2 .venv-sheetsage2/bin/python -m pip install huggingface-hub0.36.0 .venv-sheetsage2/bin/huggingface-cli download m-a-p/SheetSage2 \ --local-dir models/SheetSage2 .venv-sheetsage2/bin/python -m pip install \ torch2.8.0 torchaudio2.8.0 \ --index-url https://download.pytorch.org/whl/cu126 .venv-sheetsage2/bin/python -m pip install -r models/SheetSage2/requirements.txt要点加载 SheetSage2 时会自动加载其配置选定的 MERT-v2-FullSong 编码器父模型无需单独再做一次 MERT2 特征提取不要把 MERT 的连续特征当 YuE2 的离散语义 token 使用。trust_remote_codeTrue会执行模型仓库自带的 Python 实现因此应选用经过审校的模型版本revision并随产物记录该版本。共享 Hugging Face 缓存没有问题环境隔离指的是 Python 依赖环境。仓库还提供了一个可复现性更强的转谱辅助脚本 skills/yue2-music/scripts/transcribe.py--task melody-full即启用melody_onlyTrue--task melody-vocal则只保留人声旋律任务。它会自动写入input.json记录源音频哈希、模型、revision、任务提示词、model_provenance.json包版本与快照哈希、abc_check.json与transcription_manifest.json并对导出的旋律 ABC 做无和弦符号校验失败时以非零退出码结束。三、第 2 步转录并审校旋律CLI 与 Transformers 双路径CLI 方式.venv-sheetsage2/bin/python models/SheetSage2/infer.py source.wav \ --output cover-score --melody-onlycover-score/score.abc会同时保留人声与器乐旋律对应 YuE2 原生旋律输入的Vocal与Ins双声部同时省略和弦符号——这正是翻唱所需的旋律乐谱形态。转谱后必须检查命令退出状态与转谱告警再对照源录音逐项审校音符、拍号meter与段落顺序。转谱错误会原样带进翻唱成品这一步的质量直接决定最终结果。Transformers 接口同操作等价实现from transformers import AutoModel model AutoModel.from_pretrained( models/SheetSage2, trust_remote_codeTrue, ).eval().to(cuda) result model.transcribe( source.wav, output_dircover-score, melody_onlyTrue, ) if not result.get(abc) or result.get(abc_error): raise RuntimeError(Transcription did not produce a usable melody score) print(result.get(warnings, []))melody_onlyTrue只改变导出物ABC 无和弦、MIDI 无和弦伴奏不改变推理若任务列表含和弦预测原始预测事件与 LAB 标注仍会保留。若该版本无法构建无和弦旋律 ABCPython 会抛出RuntimeError并附带已完成转录结果error.resultCLI 则以非零状态退出。不要把孤立的标注文件当作成功的翻唱乐谱。追求可复现时应锁定已审校的模型 revision并保留下载的配置模型的 Python 实现由trust_remote_codeTrue执行因此 revision 锁定同时约束模型代码。四、第 3 步准备歌词与目标风格编写 cover-request.json参考仓库示例 examples/song.json翻唱请求同样包含style、lyrics、cot、seed四个核心字段{ id: my_cover, style: English, jazz swing, intimate female vocal, acoustic piano, upright bass, brushed drums, 92 BPM, lyrics: [Verse]\n...\n[Chorus]\n..., cot: melody, seed: 831001 }字段语义可对照 examples/song.json 与 src/yue2/pipeline.py 的SongRequest字段作用说明style目标风格描述放入流派、乐器、人声特质、语言、速度tags是style的别名两者同时给出必须一致lyrics演唱歌词用[Verse]、[Chorus]等段落标签组织段落标签与歌词顺序需与乐谱对齐cot符号规划模式melody仅旋律规划或full旋律和弦seed随机种子固定种子便于追踪对比abc外部乐谱由--abc-file或 Python 参数注入无需写入 JSONcot 模式的选择依据cotmelody推荐用于换风格翻唱只规划旋律给伴奏更多自由让目标风格真正接管和声与配器。cotfull提供完整乐谱并固定和声适用于保留原曲和声骨架的场景。从 skills/yue2-music/references/generation-and-covers.md 的对照表看翻唱已有旋律 →melody 无和弦旋律 ABC重和声/乐谱编辑 →full 带和弦的编辑后 ABC。注意外部 ABC 输入会绕过符号规划器不会调用第二个规划器去修复乐谱cotmelody也不会自动从输入文件里删除和弦符号——所以转谱时就应使用--melody-only导出。歌词来源方面优先使用你已有的源歌词或者自行转录并修正歌词文字。翻译歌词时短语划分与音节数必须贴合旋律英文歌词改词后即使音节数相同往往还需要调整重音与元音时值见 skills/yue2-music/references/generation-and-covers.md 的编辑指导。切回 YuE2 环境并生成.venv/bin/python examples/generate.py --request cover-request.json \ --abc-file cover-score/score.abc --cot melody --output outputs/coverexamples/generate.py 的参数行为--cot可选full/melody/off--abc-file会把乐谱文本读入请求的abc字段提供乐谱时cot必须是full或melody若与--cot off组合会直接报错对应 src/yue2/pipeline.py 中plan()的外部 ABC 直接 tokenize、跳过规划逻辑。--output要求全新目录避免覆盖已有版本。等价地也可以使用安装后的 CLI见 src/yue2/cli.py 的generate入口与 skills/yue2-music/references/generation-and-covers.md 的 CLI 对照表yue2 generate --request requests/cover.json --cot melody \ --abc-file edits/source_melody.abc --output outputs/cover五、试跑仓库自带的原创旋律示例该示例只需 YuE2用于验证乐谱条件生成接口.venv/bin/python examples/generate.py --request examples/song.json \ --abc-file examples/melody.abc --cot melody --output outputs/original-melodyexamples/melody.abc 是 YuE2 原生旋律输入格式的样例Vocal与Ins两个声部、无和弦符号包含M:4/4拍号、Q:1/48888 BPM等元信息歌词段落用% verse/% chorus注释对齐。examples/song.json 提供风格与歌词其默认cot为full此处由命令行覆盖为melody。注意这是用原创素材测试乐谱条件生成接口不是转谱演示也不是 benchmark 结果。若你的 ABC 来自其他方言可能需先做格式转换——skills/yue2-music/references/abc-editing.md 描述了 YuE2 支持的记号范围。六、源码级原理外部乐谱如何进入生成链路从 src/yue2/pipeline.py 可以看到乐谱条件生成的精确实现YuE2Pipeline.plan()当request.abc非空时直接self.tokenizer.encode(request.abc)得到abc_ids再以指令前缀 精确 ABC 词元构造prefix返回SymbolicPlan计时中记录external_prefix_tokens——不调用符号规划器、不做二次规划。cotoff时返回无 ABC 的SymbolicPlan因此--abc-file与--cot off冲突是必然的。之后的generate_semantic(plan)会校验plan.prefix与请求/精确 ABC token是否一致CFG 负分支在带乐谱时保持同一指令 精确 ABC而去掉风格与歌词见effective_config输出的cfg_negative: same_instruction_and_exact_abc语义 CFG 在full/melody下默认 1.0。完整产物通过save_artifacts()落盘audio.flac、score.abc、plan.json、语义 token、latent.npy、有效配置、计时、权重身份与完整性哈希并写入result.json的truncated标志——一次翻唱运行即可形成完整可追溯记录。七、评估边界零样本翻唱的 benchmark 结论docs/benchmarks.md 的Zero-shot cover generation小节给出了这项能力的量化证据评估覆盖948 首 SHS100K 作品 × 2 种目标风格 × 2 个种子 每方法 3,792 个输出无候选挑选全部使用通用检查点与 benchmark 解码器。CLEWS 与 Discogs-VINet 在排除源作品的 10,545 条检索画廊上衡量作品身份保留度MuLan 衡量对目标风格的贴合度SongBench Musicality 衡量音乐性方法CLEWS mAP ↑CLEWS Hit1 ↑Discogs-VINet mAP ↑MuLan ↑SongBench Musicality ↑SongEcho0.41948.4%0.1220.3663.286ACE-Step 1.50.0242.4%0.0060.1663.689YuE2 (full score)0.64771.3%0.2880.3825.104YuE2 (without chords)0.59867.3%0.1790.4175.490YuE2 (without score)0.0060.3%0.0040.4745.691结论的准确表述是完整乐谱full score在此对比中最能保留作品身份CLEWS mAP 0.647、Hit1 71.3%。放松提供的乐谱去掉和弦反而提升目标风格贴合度与音乐性MuLan 0.417、SongBench Musicality 5.490。这是两个不同的结果固定转谱可能约束对反差风格的改编产品指引因此推荐翻唱使用 melody-only 乐谱让伴奏更自由地适应目标风格。这不说明从当前提示词新生成符号规划会降低质量也不构成通用指标碾压或人类偏好的结论。八、实践要点清单环境隔离SheetSage2 与 YuE2 分属两个虚拟环境顺序执行以共享 GPU。转谱必审校检查退出状态、告警、音符/拍号/段落错误会传导进成品。乐谱形态翻唱用melody_only导出无和弦、双旋律声部cot必须为melody且不会自动去除输入中的和弦符号。歌词对齐段落标签与乐谱顺序一致翻译时匹配短语划分与音节数。可复现性固定 seed、锁定模型 revisionsave_artifacts()保留完整运行记录每次变更请求使用全新输出目录。评估边界benchmark 数据描述的是该协议下的观测结果身份保留 vs 风格贴合单次本地生成不等于复现聚合结论。【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表