拓冰建站拓冰建站
首页 / 资讯中心 / 正文

YuE2 音乐生成的可复现评测:从可听交付到证据分离的完整实践指南

YuE2 音乐生成的可复现评测从可听交付到证据分离的完整实践指南【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE导读本文基于 YuE2 技能套件中的评测交付规范文档系统讲解如何把一个音乐生成结果变成用户能播放的音频以及能被严格复现的评测记录。你将掌握如何用YuE2-Vae与YuE2-Vae-legacy分别完成听感预览与基准协议解码、如何复用缓存 latent 进行纯解码、如何用scripts/listen.py构建本地 HTML 听感对比页以及如何区分符号检查、ASR、对齐与质量分数这几类不同性质的证据。文中所有结论均与 skills/yue2-music/references/listening-and-evaluation.md 及其配套脚本、源码实现相互印证。核心原则交付音频而不是分数YuE2 的评测与交付规范开宗明义一个乐谱score、一个指标metric或一次成功退出的进程都不是可听的交付结果。任务只有在交付了用户可以播放的音频并同时说明产生这段音频的确切条件时才真正完成。这条原则贯穿整个技能的工作流见 SKILL.md 中 Deliver an audible result 一节return playable audio, full prompt/lyrics, before/after ABC, invariant checks and requested evaluations——可播放音频是第一位的模型/解码器身份与失败记录必须保持可见。在此基础上文档进一步给出了三条交付纪律听感与评分版本分离听感预览与基准评分必须使用不同的解码器且不能凭 legacy 一词推断其角色证据类型分离符号检查、ASR、对齐、质量分数与人工听感是五种不同性质的证据各有支持范围与盲区评测与生成分离公共 YuE2 运行时不附带完整评分代码与评测权重分数只能在独立评测包中复现。下文逐条展开并给出可直接运行的命令。保持听感与评分版本分离两个解码器的分工解码器分发 ID用途YuE2-Vaem-a-p/YuE2-Vae原生听感预览的默认解码器YuE2-Vae-legacym-a-p/YuE2-Vae-legacy复现基准解码协议benchmark-decoder protocol时使用两个模型的分工在 models-and-setup.md 的模型表中亦有明确记录。规范强调在记录中必须保留完整的模型名、revision 与哈希因为legacy一词本身并不能说明某条乐谱是用哪个解码器生成的——它只是一个代号必须靠记录中的精确标识来锚定。一次生成、多次解码复用缓存 latent音乐或歌词的任何编辑都要求重新生成而仅更换解码器则不需要。正确做法是对给定歌曲只生成一次声学 latent然后对同一份latent.npy用每个请求的解码器分别解码。scripts/run_yue2.py的decode子命令正是为此设计的见 run_yue2.pypython scripts/run_yue2.py decode --source outputs/jazz \ --output outputs/jazz-evaluation \ --model $YUE2_MODEL_DIR --vae $YUE2_EVAL_VAE_DIR --offline使用要点与源码行为一一对应--source必须是已验证的原生SongResult目录decode()首先调用verify_result(source)实现在 storage.py该函数要求result.json状态为complete且audio.flac、prefix.npy、semantic.npy、latent.npy、request.json、config.json等必需工件全部在清单内且 SHA-256 与字节数逐一吻合。模型必须与源生成完全一致解码时会比较pipe.weights[mot]与源result.json中记录的weights[mot]不一致直接抛错——这防止用错误主干模型复用latent 得出误导结果。latent 不允许改变解码结束后会再次校验输出目录的latent.npy与源的哈希一致任何变更都会失败。Hub 模型须传已核验的 revision即--revision与--vae-revision本地模型目录则配合--offline使用。新目录会通过SongResult.save_artifacts见 pipeline.py保留原始请求、精确的 plan/semantic token 与 latent同时用cached_decode字段记录本次解码器身份、配置与音频哈希并用source_generation.json记录源结果、源 latent、源 semantic 的 SHA-256见 run_yue2.py。解码时间被记录为operation: decode_cached_latents下的vae_seconds与源生成的source_generation计时明确分开——不要把解码器运行时间报告为完整生成速度。完整工件目录 vs 裸 FLAC裸 FLAC 加一份自写的解码器 manifest 对试听够用但不足以作为完整技能包中冻结评测器的输入。评测适配器要求的是完整的原生SongResult.save_artifacts目录包含result.json状态、身份、权重、时序、工件清单请求与配置request.json、config.jsontoken 数组与 latentssemantic.npy、latent.npy音频及其哈希audio.flac。同时注意两条禁令不要把旧 manifest 复制到新音频上也不要把试听解码器的身份保留在评测音频上。构建听感对比页一键生成本地 HTML 播放页python scripts/listen.py outputs/pop outputs/jazz --output outputs/comparison该脚本listen.py从每个输入的原生歌曲目录中按白名单复制音频与元数据生成一个本地自包含的 HTML 播放页。关键行为与源码对应只复制白名单内容METADATA仅包含request.json、config.json、result.json、invocation.json、input.json、failure.json、run.json、abc_check.json等元数据另有score.abc与audio.flac/audio.wav。模型权重与 latent 一律不复制——manifest.json中明确记录weights_or_latents_copied: False。不上传、不发布页面是纯本地的无任何网络访问network_access: False。强制全新目录输出目录已存在则直接报错Output already exists; choose a fresh comparison directory且禁止把对比目录建在源歌曲目录内部。完整性校验决定播放器每个复制文件的 SHA-256/字节数与result.json中的artifacts清单比对若不匹配则标记native_artifact_checks: FAILED并扣留播放器测试用例见 test_skill_listen.py。退出码语义全部 case 完成返回 0页面生成但有待审 case 返回 1命令错误返回 2。对比页应随带直接音频下载链接一并交付尤其是在浏览器不支持原生格式时页面已内置 download 链接与audio.flac/audio.wav两种来源。节选excerpt的选取规范长编辑必须同时包含完整歌曲与有用节选节选应从编辑段落之前开始并包含段落的退出——孤立的几个音符无法暴露转接问题。人声重写节选应覆盖足够的 verse 与 chorus以便评估咬字与 phrasing。主题/独奏编辑应包含完整的主题陈述及其延续而不仅是开头动机。每条听感条目必须标注的身份信息类别必须记录的内容版本与意图版本、预期变更、完整 style prompt、完整歌词、源/编辑后 ABC实际运行身份实际模型与解码器、seed、模式full/melody/off及任何参数覆盖结果状态时长、截断标志、结构/不变性检查、相关变更记录音频处理完整音频、节选起止时间、是否做过归一化或其他处理即便生成 MP3 预览也必须保留无损生成音频刷新听感链接时不得替换或归一化记录分数所依据的音频。听感页转换是交付产物而冻结评测适配器会应用自己记录的预处理。听什么文档列出的专项听感检查清单旋律实现、持续音上的和弦冲突、乐器选择、歌词缺失/重复、节奏推进pacing、段落转接与结尾。诚实原则同样重要如果本次没有可用的音频试听能力就如实说明实际执行了哪些检查而不要声称听过了这首歌。分离证据什么检查能证明什么规范给出了一张关键表格用于把不同检查的证据价值讲清楚检查能支持什么不能确立什么原生 ABC 检查结构合法、时值网格、受支持的符号悦耳的和声或听感上的忠实度发声音符对比指定的符号音高/起始/时值被保留完全一致的生成演奏或波形SheetSage2 转录生成音频对已实现音乐事件的诊断性估计无错误的 ground truthASR 与音素错误率PER该协议下识别出的歌词/音素一致性可度量的音节到音符同步音频强制对齐估计的词/音素时序当被检查时完美的旋律或编曲质量SongBench 及其他质量/控制指标记录评测器下的具名指标特定乐器的证明、爵士真实性或普适质量听感报告中的可听观察结果自动基准结果或未实施的偏好研究其中几类检查在本仓库有直接实现ABC 结构性检查由 abc_tools.py 的inspectparse/report完成严格限定在 YuE2/SheetSage2 的双声部 ABC 方言内所有时间均为四分音符的精确分数发声音符对比由compare实现逐音符比较音高、起始与时长compare返回match与差异列表见 abc_tools.py。生成目录中的abc_check.json正是运行这类检查后的落盘结果run_yue2.py 会在每次生成/plan 后自动写出。另一个重要约束设计的歌词–音素–音符 sidecar 必须与实测的音频对齐数据分开存放。要声称发音同步就必须保留对齐器的输出并人工复核难词、花腔melisma与器乐段落——仅凭更低的 PER 并不能证明音符时值正确。评测使用独立完整的基准包公共 YuE2 运行时与本技能不附带完整评分代码、评测权重或基准输入也不暴露yue2 eval、bench或verify命令。这与本仓库的实际结构一致公共侧提供的是 pipeline.py 的生成/解码能力与 storage.py 的存储验证而非打分系统。当独立评测包可用时必须遵循其文档化入口与冻结的资产清单frozen asset manifest。复现某个已发布结果前要求满足包内精确的dataset/split 定义与预处理解码器身份、评分器 revision 与哈希使用来自SongResult.save_artifacts的benchmark-decoded 原生结果目录在输入记录中保留参考歌词语言与所有尝试过的模式。规范同时给出硬性边界仅做 prepare 的验证不是已测得的分数若评分资产不可用就交付听感与符号检查并如实报告评测不可用不得用名称近似的指标顶替或凭空捏造分数。评测器的 GPU 需求与 YuE2 生成的 24 GB 显存基线是两回事需分开说明。公开交付前刻意处理听感产物scripts/listen.py构建的是本地 bundle它会剔除凭据类元数据SECRET_KEYS与SECRET_TEXT正则覆盖 token、password、API key、Bearer、hf_、sk-等命中即整文件扣留见 listen.py 与对应测试 test_skill_listen.py并排除权重与 latent。但精确请求、本地模型路径与失败消息仍可能出现在复制出的文件中——因此公开分享前必须人工复核整个 bundle只分享预期的音频、乐谱、提示词、歌词与公开模型标识省略私有路径、账户标识、原始日志与无关 sidecar原生结果目录保持原样不动若要准备脱敏的公开元数据导出应为其建立独立的 manifest 与哈希不得把修改过的元数据冒充原始生成收据更新听感预览时不得改动或替换已保存的基准音频。另外值得注意听感页的元数据加载上限为 8 MiB超限文件被标记 unreadable or invalid JSON; file withheldHTML 输出经过完整转义html.escape(..., quoteTrue)恶意注入的脚本/iframe 会被中和测试见 test_skill_listen.py这些都保障了 bundle 的本地安全展示。报告真实结果并保留失败尝试评测报告要求先留预期、再跑实验运行前保留预期请求列表对每个请求的模式/版本记录成功或失败、失败原因、两个截断标志ABC 截断与语义截断、解码器身份及每个已完成的指标报告样本数与分母部分/缺失的分数保持可见不得静默丢弃失败模式也不得在看到分数后挑选有利 seedcomplete:true只表示请求的指标已产出本身不意味着质量验收通过。SongBench 的七维报告对 SongBench必须保留其七个维度及报告的全局平均Melody、Arrangement、Musicality、Vocal、Instrumental、Mixing、Structure并标识每个结果对应的确切版本与解码器。规范特别提醒不要把全局平均重新解释为专门的爵士或和声一致性分数。PER 协议的完整性被检查的 PER 协议执行四次 ASR 遍历必须保留全部转录、选中结果与首次遍历结果报告分数时要说明协议本身不得用单次转录顶替而仍沿用同一协议标签。对修订后的英文歌词还要检查参考语言与实际新歌词文本并审视残余错误——不能把标量当完整验证。小检查就按小检查报告几条自写 prompt 的平均值不是完整基准个人编辑对比也不是独立质量排名。规范要求把模型生成、基准测量与音乐判断作为三类可追踪的独立声明彼此不混同、不互相替代。这与 SKILL.md 的交付要求一致Do not claim exact note realization, instrument removal or sample-accurate preservation from an ABC check or SongBench score alone.一页速查完整评测交付清单□ 生成并保存原生 SongResult 目录save_artifactsresult.json、request.json、 config.json、score.abc、semantic.npy、latent.npy、audio.flac □ 听感预览YuE2-Vae 解码缓存 latentrun_yue2.py decode--output 指向新目录 □ 基准复现YuE2-Vae-legacy 已核验 revision 解码同一份 latent.npy □ 验证解码后 latent 哈希与源一致不把 vae_seconds 当作完整生成速度 □ 听感对比scripts/listen.py 生成本地 HTML 页 manifest.json □ 检查条目版本/意图/style/歌词/前后 ABC/模型与解码器身份/seed/模式/ 时长/截断/结构检查/变更记录/节选起止/归一化情况 □ 证据分离符号检查、ASR/PER、对齐、SongBench、听感分别报告、互不越界 □ 评测包若可用按其入口与冻结清单复现否则如实报告评测不可用 □ 公开前审查 bundle剔除私有路径/凭据/日志不改动原始生成收据与基准音频 □ 报告完整性保留失败模式与部分分数注明样本数与分母小检查按小检查报告延伸阅读技能总览与工作流选择SKILL.md模型环境与音频到乐谱桥接models-and-setup.md生成、翻唱与缓存解码细节generation-and-covers.md听感对比页实现listen.py 及其测试 test_skill_listen.py原生工件存储与验证storage.py、pipeline.py【免费下载链接】YuEYuE2: frontier music generation with symbolic planning, zero-shot covers, and agentic music editing.项目地址: https://gitcode.com/GitHub_Trending/yue/YuE创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门