尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

YuE2 零样本翻唱实战:把一段录音做成爵士版

YuE2 零样本翻唱实战:把一段录音做成爵士版 YuE2 零样本翻唱实战把一段录音做成爵士版【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE手里有一段 source.wav是一首老情歌想把它翻唱成亲密爵士版——从哪下手答案写在 docs/covers.md 开头YuE2 的零样本翻唱始于一份可读的作曲。先用 SheetSage2 把源录音转成只含旋律的 ABC 乐谱人工审校一遍再交给 YuE2 配上目标风格和新歌词生成语义 token、解码声学 latent最终输出 48kHz 立体声音频。整条链路四个环节通用歌曲生成检查点就够用不碰任何翻唱专属微调。源录音能直接丢给 YuE2 吗先拆掉三个误解动手前先拆三个假设不然跑到最后也不知道哪一步出的问题。误解一音频直接喂给 YuE2 就行不行。YuE2 的请求接口里压根没有reference_audio、phonemes、bpm、negative_prompt这类参数。源分离、转谱、歌词识别、乐谱条件生成是四个互不依赖的操作得一个个来。顺带说清一个容易混淆的点模型里的 VAE 编码器只负责声学 latent 和音频之间的双向解码它不是旋律转谱工具同理别把 MERT 的连续特征当 YuE2 的离散语义 token 用两者不是一个 token 空间。误解二转谱错了YuE2 会帮忙修乐谱不会。看 src/yue2/pipeline.py 里的YuE2Pipeline.plan()只要request.abc非空就直接tokenizer.encode得到abc_ids用指令前缀 精确 ABC 词元拼出 prefix返回SymbolicPlan计时里记一条external_prefix_tokens。全程不调用符号规划器更谈不上二次修复。说白了转谱里的错会原样带进翻唱成品。误解三cotmelody会自动去掉输入文件里的和弦也不会。它只改变规划模式输入文件里有什么就原样带什么进去。所以转谱时就要用 melody-only 导出——这是该在源头做的事不是事后补救。SheetSage2 转谱环境怎么独立搭做什么给 SheetSage2 建一个独立 venv和 YuE2 的.venv分开。为什么两套依赖版本互相冲突——SheetSage2 侧固定 Transformers 4.45.2 与 NumPy 1.24.3YuE2 用的是另一套 PyTorch/Transformers 组合细节见 skills/yue2-music/references/models-and-setup.md。因此规范做法是两个环境顺序执行、共享一块 GPU先转谱、释放显存再加载 YuE2期间只靠文件交换 ABC 和音频。 环境要求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 特征提取。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 做无和弦符号校验失败时以非零退出码结束。源录音怎么转谱、旋律怎么审校要敲的命令就这一条.venv-sheetsage2/bin/python models/SheetSage2/infer.py source.wav \ --output cover-score --melody-only产出的cover-score/score.abc会同时保留人声与器乐两条旋律对应 YuE2 原生输入格式的Vocal与Ins双声部并省略和弦符号——这正是翻唱需要的旋律乐谱形态。想走 Transformers 接口也完全等价AutoModel.from_pretrained(models/SheetSage2, trust_remote_codeTrue).eval().to(cuda)加载后调用model.transcribe(source.wav, output_dircover-score, melody_onlyTrue)再检查返回的result[abc]与result[abc_error]不可用时直接抛RuntimeError错误对象会附带error.result即已完成的转录结果。切记别把孤立的标注文件当成成功乐谱。另外一个细节melody_onlyTrue只改变导出物ABC 无和弦、MIDI 无和弦伴奏不改变推理——任务列表里若含和弦预测原始预测事件与 LAB 标注照样保留。⚠️ 转谱完必须做三件事看命令退出状态、读转谱告警、对照源录音逐项核对音符、拍号与段落顺序。这一步的质量直接决定最终成品。翻唱请求怎么写、YuE2 怎么跑请求 JSON 只需要四个核心字段完整示例见 examples/song.jsonstyle目标风格描述流派、乐器、人声特质、语言、速度都写进这一句tags是它的别名两者同时给出必须一致。lyrics演唱歌词用[Verse]、[Chorus]这类段落标签组织段落顺序要与乐谱对齐。翻译歌词时短语划分与音节数必须贴合旋律——英文改词哪怕音节数不变重音与元音时值往往还得再调。cot符号规划模式melody只规划旋律或full旋律加和弦。seed随机种子固定它便于追踪对比。abc字段不用写进 JSON由--abc-file或 Python 参数注入。 cot 的一句话决策换风格选melody——只锁旋律让伴奏接管和声与配器目标风格才真正接管要保原曲和声选full——提供完整乐谱把和声骨架固定住。examples/song.json 的默认cot是full这里由命令行覆盖。切回 YuE2 环境.venv/bin/python examples/generate.py --request cover-request.json \ --abc-file cover-score/score.abc --cot melody --output outputs/cover用安装后的 CLI 等价于yue2 generate --request requests/cover.json --cot melody --abc-file edits/source_melody.abc --output outputs/cover完整对照见 skills/yue2-music/references/generation-and-covers.md。几个参数行为值得留意--cot可选full/melody/off提供了乐谱时cot必须是full或melody与--cot off组合会直接报错——这不是 bugcotoff时plan()返回的SymbolicPlan里根本没有 ABC两者天然冲突。--output要求全新目录避免覆盖已有版本。还有一档冒烟测试场景只装 YuE2 就能跑examples/melody.abc 是 YuE2 原生旋律输入格式的样例Vocal与Ins双声部、无和弦、M:4/4、Q:1/488段落用% verse/% chorus注释对齐配上 examples/song.json 就能验证乐谱条件生成接口。注意它的定位这是用原创素材测试接口不是转谱演示也不是 benchmark 结果。生成链路在 YuE2 内部长这样——外部 ABC 以精确前缀进入语义 token 链路再经 flow-velocity 预测得到声学 latent最后由 VAE decoder 解出 48kHz 音频生成跑完看什么产物与 benchmark产物侧save_artifacts()一次落盘全部记录audio.flac、score.abc、plan.json、语义 token、latent.npy、有效配置、计时、权重身份与完整性哈希result.json里还带truncated标志——一次翻唱运行就是一份完整可追溯档案。可复现性上记住四件事固定 seed、锁定模型 revision、保留save_artifacts全量记录、每次变更请求都用全新输出目录。benchmark 侧docs/benchmarks.md 的Zero-shot cover generation小节给出量化证据948 首 SHS100K 作品 × 2 种目标风格 × 2 个种子每方法 3,792 个输出无候选挑选。所有 YuE2 条件都使用通用歌曲生成检查点与 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 乐谱让伴奏更自由地适应。同时别把这份数据读过头——它既不说明从当前提示词新生成符号规划会降低质量也不构成通用指标碾压或人类偏好结论。踩坑速查六个高频问题Q要换风格结果还是原曲和声的影子A先查传入的是不是带和弦的乐谱——换风格就用 melody-only 乐谱加cotmelody真要保留原曲和声才是full的活。Q--abc-file和--cot off组合报错A必然报错。cotoff时plan()不产出 ABC外部乐谱又是绕过规划器直入的不存在二次规划兜底。Q转谱退出码 0 但有告警A照样逐项核对音符、拍号与段落顺序转谱错误会原样传导进成品。Q--resume能续跑中断的生成吗A不能。它只校验并复用已完成且匹配的结果含哈希请求、模型或配置一变就用全新目录重跑。Qseed 相同产出音频就一定一致Aseed 只是方便追踪对比风格、歌词、ABC 条件不同音频自然不同。Q能拿 YuE2 的 VAE 编码器直接转录音吗A不能它只负责声学 latent 与音频之间的解码转谱这活儿归 SheetSage2。从一条转谱命令到save_artifacts()落盘整条翻唱链路是四个互相独立、各自可追溯的环节——转谱、审校、请求、生成任何一环的产物错了后面的功夫都白费。所以产品指引其实很朴素先把乐谱做到可读再谈风格。【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表