📄 口哨和唱错词也能找歌吗:合成查询为何救不了真实口哨检索
英文题目:Whistle and Wrong Lyrics: Synthetic Queries Are Not Enough for Real-World Query-by-Melody
评分:6.3/10 | 创新 1.2/2 | 技术严谨 1/1.5 | 实验充分 1.2/1.5 | 清晰度 0.8/1 | 影响力 0.8/1.5 | 开源 0/1.5 | 可复现 0.3/0.5 | 工程/实践 1/1.5
👥 作者与机构
- Luigi Rivolta:Independent Researcher
📌 核心摘要
读者需要理解的对象是从记忆中的旋律找到录音,输入是哼唱、口哨或记错歌词的演唱,输出是歌曲身份,困难在于音色、歌词、调性、速度都不同而旋律近似,口哨接近纯音且高约三个八度并压缩音程,错词演唱则引入清浊变化和辅音断裂。系统先用音高跟踪器得到基频轨迹,人声用RMVPE而口哨用谱峰跟踪器,再做中值去调性并送入约520万参数轮廓编码器得到256维向量,检索时取查询与每首歌多个8秒窗口的最佳匹配。训练用真实歌曲人声旋律渲染出口哨音频和无意义音节演唱音频,再用真实查询会用的跟踪器重新跟踪,使训练轮廓带有跟踪误差。相对已有哼唱检索,新增的是口哨专用谱峰跟踪器和锁定到真实旋律的渲染加再跟踪流程。在11,050首歌库的合成保留查询评测中,物理渲染训练使口哨前1准确率从基线E2b的0.180升至0.251,错词演唱前1准确率从0.193升至0.264。但在339个真实口哨对他人哼唱的8首封闭集评测中,合成训练模型D-042前1准确率为0.619共210个正确,低于基线E2b的0.631共214个正确,合成增益没有迁移。结论只适用于已知歌曲小封闭集和业余演唱者条件,开放歌曲泛化尚未验证,原文未披露训练、推理或部署成本。
🔗 开源与复现资源
第三方资源:https://github.com/luiginotmario/hum2song — 链接可访问(HTTP 200)
第三方资源:https://github.com/ASLP-lab/YingMusic-Singer-Plus — 链接可访问(HTTP 200)
可达状态仅表示本次链接检查结果,不代表许可证、本文权重或运行复现已验证。
🧭 深度解读
要解决的是什么找歌问题
输入是一段人发出的查询音频,可能是哼唱、口哨,或者用记错、瞎编的词唱出来的旋律,目标是在歌曲库中找到旋律对应的原录音。必须保留的是旋律线的相对起伏和节奏对应关系,必须去掉的是调性高低、速度快慢、音色和歌词的影响,输出是按相似度排序的歌曲名单,通常用首位命中率 top-1 和前 10 命中率 top-10 衡量,数值越大越好。
Shazam 这类听歌识曲解决的是录音对录音,查询本身就是原声片段;这里查询是人重新发出的旋律,和录音在声源上完全不同。Google 的 Hum to Search 报告过主要用演唱训练的模型在哼唱和口哨上不够好,公开的 query-by-humming 文献和基准也集中在哼唱和演唱,口哨和错词演唱长期缺少与歌曲录音配对的公开数据。这就是论文要补的位置:把这两种少见查询单独拿出来,用同一个只看旋律的系统做可控实验。
对刚入门的读者,关键是分清论文的标记习惯。结果标[synthetic] 的是生成器渲染的查询,标[real] 的是真人录音,标[best case] 的是单个手选例子。合成集上变好不等于真实人声变好,封闭小集合上变好也不等于上万首歌库中能变好,后文所有结论都要回到这个条件上理解。
已有路线为什么没有覆盖口哨和错词
商业路线以 Google Hum to Search 为代表,用查询和录音的频谱图做度量学习,训练先用演唱为主的数据,再用 SPICE 音高生成的合成哼唱补充,先是离散音调,后来换成未公开的神经生成器。ByteHum 用原始音频卷积网络,以分离后的翻唱做弱监督并向哼唱做无监督域适应。论文说明未能读到 ByteHum 全文,因此不引用它的数字,这个诚实交代很重要,不能把没核对的数字当基线。
学术路线以 CHAD 为代表,用半监督管线加众包哼唱收集对齐的翻唱片段,在 CREPE 基频激活或常数 Q 变换上训练 ResNet18,在 MIR-QBSH 上约 2600 个 MIDI 参考下 top-10 为 0.921,在 MTG-QBH 加 1886 首干扰歌下为 0.883。CHAD 作者自己提醒,纯哼唱检索需要加入一部分真实哼唱数据。论文把自己的口哨阴性结果看作这句话在口哨上的对应物,而不是推翻前人。
更早的口哨系统如 Whistle for Music 是把口哨转写成 MIDI 再做近似字符串匹配,也有比较口哨音高检测器的工作,人类口哨典型范围是 500 到 5000 赫兹。这些系统是符号转写加匹配,没有学习查询与真实歌曲录音的联合嵌入。数据集方面,HumTrans 有约 56 小时哼唱,MIR-QBSH 有 4431 条 48 首 MIDI 歌曲的哼唱或演唱查询,MLEnd 有约 200 人录的 8 首歌的哼唱和口哨但没有歌曲录音,MTG-QBH 有 118 条演唱查询但不分发收集音频。所以真实口哨对原录音的开放评测在原文条件下本来就做不了,这是后文用口哨对别人哼唱代替的直接原因。
口哨和错词难在哪里
论文把信号物理集中定义为 S1 到 S8。周期声有基频 f0 和谐波,半音音高 p 等于 12 乘以 log2(f0 除以 440 赫兹) 再加 69,基频轨迹就是每 10 毫秒记录 p 或无声。声音源分两种:人声是谐波源经过声道滤波器整形,有很多谐波和共振峰;口哨接近纯音,在 1702 条 MLEnd 口哨上第二谐波相对基频的中位数是负 45 分贝。对口哨,最强频谱峰就是基频;对人声,最强峰常是被共振峰抬高的某次谐波,所以峰值不等于基频。
口哨难在三件事。第一是音区高,MLEnd 中位哼唱 178.7 赫兹,口哨中位约 1.34 到 1.36 千赫兹,同一人吹口哨比哼唱中位高 35.8 个半音,约 3 个八度,人声基频模型会把它报低一个八度。第二是人会压缩曲调,口哨 5 到 95 百分位音高范围 6.5 个半音,同歌哼唱是 9.7 个半音。第三是跟踪器失配,常速 RMVPE 在口哨有声帧的中位 55.4% 报低八度,口哨对哼唱检索接近随机,曲线下面积 0.49 到 0.53,把音频放慢一半再跑 RMVPE 才能进入其工作范围。
错词演唱难在另一处。如果模型看频谱图,它可能偷用歌词和音色,而错词查询与录音不共享这些信息;论文的旋律-only 模型按设计就不用歌词和音色。剩下的困难是瞎编词改变了浊音清音格局,辅音断裂被音高跟踪器变成空隙和毛刺。也就是说,错词考验的不是语义,而是分段和跟踪质量。
只看旋律的检索系统长什么样
沿着一条查询走一遍。输入一段哼唱、演唱或口哨,先过前端得到基频轨迹和发声标志。哼唱和演唱用 RMVPE 每 10 毫秒估计,发声要求显著性不低于 0.3,再做清理,去掉过短片段、折叠孤立八度跳变并做中值滤波。口哨用自研的频谱峰值跟踪器,在 200 到 6000 赫兹取峰并用 6 分贝 tonal-ratio 门限判断发声。歌曲侧先用 htdemucs 分离人声干声再跑 RMVPE,失败回退到混合音频。这样两边都变成可比的旋律线。
轨迹进入轮廓编码器。输入是键归一化音高加发声标志,帧率 20 毫秒,卷积前端把帧率减半,6 层预归一化 Transformer 维度 256、4 头,加掩码注意力池化得到一个 L2 归一化的 256 维向量,约 5,200,000 参数,查询和歌曲共用一个塔。基线 E2b 先在 HumTrans 哼唱与 MIDI 对上用对称 InfoNCE 训练,再在 CHAD 翻唱与原唱窗口上用 CLEWS 片段对比损失微调。检索时每条查询与每首歌最多 24 个 8 秒窗口在内存中打分,取最好窗口当歌曲得分。
键归一化值得单独说明。它减去裁剪段内有声帧的中位音高,使表示对整体移调精确不变,也能去掉整段一致的八度误差,但处理不了时有时无的间歇八度跳变。这解释了为什么前端正确性仍然重要:归一化救不了片段内的八度闪烁。
前端和编码器各自解决什么
前端解决不同声源的测量问题,编码器解决跨调跨速的比较问题。口哨接近正弦波,用峰值最直接;人声谐波丰富,用 RMVPE 这类人声模型更稳。论文在全部 1702 条可用 MLEnd 口哨上验证,自研峰值跟踪器与半速 RMVPE 在共同发声帧上中位 99.7% 一致,但在约 2 千赫兹以上半速 RMVPE 退化,0 分贝信噪比下峰值跟踪器直接不判发声。同一套 E2b 权重下,峰值跟踪的口哨 top-1 是 0.631,半速 RMVPE 是 0.584,普通 RMVPE 只有 0.159,可见换跟踪器的收益大于后文很多轮训练。
基频轨迹 × 键归一化: 基频轨迹是每 10 毫秒记录一声是有声及其高低的旋律线,键归一化是减去整段中位音高去掉整体调性和整体高八度偏差,二者搭配让编码器只比较旋律起伏形状而不被原调、男女调差异带偏。
频谱峰值跟踪器 × RMVPE: 频谱峰值跟踪器是为口哨设计的前端,直接取最强频谱峰当基频,RMVPE 是为人声设计的基频估计模型,在口哨高频段容易低报一个八度,二者分工是口哨走峰值跟踪、哼唱和演唱走 RMVPE,各自把更干净的轨迹交给同一个轮廓编码器。
编码器把变长轮廓压成定长向量,检索变成向量最近邻加窗口取最大。这种设计天然丢掉歌词和音色,正好对应错词任务的需求:错词查询本来就没有可用的词信息,模型也不去用它。但代价是如果旋律本身被压缩、漂移或跟踪切碎,模型没有别的线索可以补救,这也是 MLEnd 绝对数值只有 0.6 左右的背景原因之一。
口哨跟踪验证图实际显示了什么
这张图是理解前端可信度的关键,它比较的是峰值跟踪器和半速 RMVPE 在真实口哨上的一致性,数据标记为[real],样本是全部可用 MLEnd 口哨。读图前要明确,图里没有歌曲录音,也没有检索分数,只有两种跟踪器互相印证的程度和随频率的变化。
看图路径: 1. 先看左图两种速度下与峰值一致的帧比例分布差异;2. 再看中图半速后零附近峰如何变尖、两侧八度峰如何变化;3. 最后看右图一致率随口哨中位频率在约 2 kHz 处如何跌落
论文图 1。原论文 Figure 1::“Whistle F0 validation on MLEnd (S8): spectral-peak tracker vs. half-speed RMVPE. [real]”。
左面板按每条口哨统计在峰值 0.5 半音内一致的有声帧比例,常速 RMVPE 大量集中在低一致区,半速并把频率乘 2 后大量集中在接近 100% 的一致区,说明放慢音频确实把口哨带入 RMVPE 量程。中面板按所有有声帧统计两者差值半音分布,半速曲线在零附近形成尖峰,两侧仍有对应八度差的旁峰,说明整体对齐但八度问题没有根除。右面板横轴是每条口哨中位峰值频率,纵轴是 0.5 半音内一致帧比例,低频段紧贴顶部约 100%,过约 2 千赫兹后急剧散落到低位,说明验证只在该频率以下有效。这张图支持论文把峰值跟踪器当作口哨默认前端,同时也划出它的上限:很高或很噪的口哨依然不可靠。
物理合成查询如何造出来并用于训练
设计原则来自一次失败的教训。早期 D-031 直接编辑轮廓,加音程压缩、八度折叠和空隙,但不经过音频和跟踪器,结果在 8 首 MLEnd 上无增益,还在 MTG-QBH 上掉 4.2 个 top-1 百分点。因此后文坚持先渲染音频再重跟踪,让训练轮廓自带真实跟踪器在该类声音上会犯的错误,且每条渲染锁定真实歌曲的人声基频,正样本关系精确已知。
源旋律是 11083 首开放歌曲的人声干声基频缓存,评估目标曲目已移除,每歌取 4 个窗口、每种风格各渲染一次,共 86110 条查询轮廓,按 song_id 的 crc32 模 10 划分,0 为测试、1 为验证、其余训练,训练对 68714 个。渲染前加人为误差:以 0.5 概率移动一个音符正负 1 或 2 半音,以 0.4 概率丢一个音符,再加 0.5 到 1.9 倍 tempo 拉伸、局部弯曲、音程缩放、漂移、抖动、发声丢失、八度滑动、滑音和颤音。
口哨分支先加 2 或 3 个八度再按整八度平移到中位 500 到 4000 赫兹,音色是基频正弦加均匀抽取在负 50 到负 40 分贝的二次谐波,对准 MLEnd 中位负 45 分贝,再加低 30 到 40 分贝的高通噪声、一次反射和 18 到 36 分贝信噪比噪声,最后用峰值跟踪器重跟踪。错词演唱分支用基频的 16 次谐波按 1/k 衰减当源,经过每个元音固定的 3 个共振峰和鼻音流音爆破音设置,音节从 la、na、ma 等随机抽取每节 180 到 280 毫秒,不输入任何歌词文本所以不可能是原词,最后用 RMVPE 重跟踪。在一个自创曲调的[best case] 检查中,渲染口哨中位 1558 赫兹重跟踪中位绝对误差 0.045 半音,演唱中位 390 赫兹误差 0.106 半音,这只是单例渲染器自查,不是数据集误差率。
轮廓编码器 × CLEWS 损失: 轮廓编码器是把归一化音高加发声标志压缩成一个 256 维单位向量的卷积加 Transformer 模型,CLEWS 损失是拉近同一首歌查询窗口和原唱旋律窗口、推远不同歌曲的片段级对比目标,二者组合让模型学到跨音色和跨速度的旋律相似性。
训练都从 E2b 出发、单种子,损失是合成查询与同歌正负 3 秒内 4 个人声旋律窗口的 CLEWS 权重 1.0,加 0.15 倍 HumTrans 哼唱 MIDI 的 InfoNCE 保哼唱,0.15 是事先固定的。D-040 跑 3000 步、学习率 3 乘 10 的负 5 次方,在加 7 半音的 HumTrans 验证上选点,后改报固定末点;D-041 训练约 4 倍长、每轮增广查询、用 6 首歌的真实 MLEnd 口哨哼唱对并在合成验证加哼唱 guard 上选到 9500 步;D-042 去掉全部 MLEnd 数据选到 12000 步中的 11250 步。
评测集和指标在什么条件下才可比
合成留出集是测试划分歌曲的新旋律,每风格 4263 条共 8526 条,对 11050 首歌库检索,训练歌留在库中当干扰项。它测的是对同一生成器的拟合,不是抗真人鲁棒性。哼唱基线是 HumTrans 测试集 769 条和 MIR-QBSH4431 条对 48 首 MIDI,用 MIDI 参考。真实口哨是 MLEnd 封闭集:因无歌曲录音,每条测试口哨用峰值跟踪,对其他人哼唱的每歌质心嵌入打分,排除查询者本人,8 选 1 随机 0.125,共 339 条口哨、26 名测试口哨者,其中 Hakuna 和 Potter 共 90 条是从未见过的 2 首。指标 top-1、top-10 在 8 选 1 时用 top-3,平均倒数排名 MRR 越大越好。
合成查询 × 真实查询: 合成查询是由歌曲人声旋律渲染再重跟踪得到的训练或评测轮廓,真实查询是真人录制的哼唱或口哨,前者正样本关系精确但分布可控,后者带有压缩、漂移和跟踪误差,论文全程用[synthetic] 和[real] 区分二者,只有后者能检验开放检索是否真的变好。
封闭集评测 × 开放检索: 封闭集评测是候选固定为已知 8 首歌、只区分是哪一首,开放检索是要在上万首歌库中找到原录音,前者随机首位命中率是 0.125 而后者远低于此,封闭集上用测试歌曲的真实口哨训练会学到歌曲身份,不能当作学会口哨映射或能推广到新歌的证据。
统计口径要先讲清。合成集每风格 4263 条,top-1 在 0.2 附近的二项标准误约 0.006,所以 0.07 的增益远超查询抽样噪声,但单种子意味着种子方差没测。MLEnd 留出 90 条的标准误约 0.05,一两条的波动说明不了问题。D-044 等处的区间是 clip 自举 95% 区间,表演者自举区间更宽,E2b 是 0.500 到 0.753,全量微调是 0.536 到 0.801,重叠很大。比较必须配对在同一批片段上,看配对差值的区间是否包含零。
合成集上变好了多少,哼唱掉了多少
先看合成留出集要回答的问题:在同一生成器、新旋律、大歌库下,合成训练是否提高了合成查询的检索率,代价是否可控。条件是 11050 首歌库、每风格 4263 条、单种子,指标 top-1、top-10、MRR 越大越好,基线是未加合成训练的 E2b。
| Model | Whistle | Wrong lyrics | Both (8,526) |
|---|---|---|---|
| E2b (baseline) | 0.180 / 0.291 / 0.220 | 0.193 / 0.314 / 0.235 | 0.186 / 0.303 / 0.227 |
| D-040 (step 3,000) | 0.226 / 0.342 / 0.267 | 0.238 / 0.365 / 0.283 | 0.232 / 0.354 / 0.275 |
| D-041 best (9,500) | 0.253 / 0.378 / 0.297 | 0.269 / 0.401 / 0.314 | 0.261 / 0.389 / 0.305 |
| D-042 best (11,250) | 0.251 / 0.374 / 0.295 | 0.264 / 0.399 / 0.312 | 0.258 / 0.387 / 0.303 |
上表显示 D-042 相对 E2b 在口哨和错词上各加约 0.071 到 0.072 的 top-1,从 0.180 到 0.251 和从 0.193 到 0.264,合计从 0.186 到 0.258。去掉 MLEnd 真人口哨对的 D-041 到 D-042 最多掉 0.005,说明合成增益来自选择、长度和增广,而非那几首真人口哨。但这只能读作更拟合生成器,不能读作更懂真人。
再看真实哼唱基线要回答的问题是保哼唱项是否守住。条件是 HumTrans 测试集和 MIR-QBSH 真实哼唱对 MIDI,指标同上。
| Set | E2b | D-040 | D-041 best | D-042 best |
|---|---|---|---|---|
| HumTrans test (769) | 0.996 / 1.000 | 0.991 / 1.000 | 0.993 / 1.000 | 0.992 / 1.000 |
| HumTrans test, +7+7 st | 0.996 / 1.000 | 0.995 / 1.000 | 0.995 / 1.000 | 0.993 / 1.000 |
| MIR-QBSH 48 (4,431) | 0.955 / 0.993 | 0.944 / 0.991 | 0.949 / 0.991 | 0.950 / 0.992 |
上表显示 D-042 在 HumTrans 上 top-1 从 0.996 到 0.992 即 766 条中的 763 条,在 MIR-QBSH 上从 0.955 到 0.950 即 4232 条中的 4209 条,加 7 半音行也基本持平。代价不到 1 个百分点,说明 0.15 的保哼唱项确实起作用,但这不代表口哨任务变好,两类查询的前端和误差来源不同。
真实口哨为什么说没有迁移
这组比较要回答的核心问题是合成集上的 7 个点有没有搬到真人口哨上。条件是 MLEnd 封闭 8 选 1、口哨对别人哼唱、339 条全集和 90 条全留出子集,D-041 只有留出列是干净的,因为它见过另 6 首歌的真人口哨。指标 top-1、top-3、MRR 越大越好,括号内是首位命中条数。
| Model | Hakuna + Potter (90) | Other 6 songs (249) | All 8 (339) |
|---|---|---|---|
| E2b | 0.589 / 0.711 / 0.698 (53) | 0.647 / 0.791 / 0.742 (161) | 0.631 / 0.770 / 0.731 (214) |
| D-040 | 0.656 / 0.789 / 0.741 (59) | 0.594 / 0.779 / 0.720 (148) | 0.611 / 0.782 / 0.725 (207) |
| D-041 best† | 0.456 / 0.700 / 0.620 (41) | 0.707 / 0.863 / 0.803 (176) | 0.640 / 0.820 / 0.754 (217) |
| D-042 best | 0.622 / 0.722 / 0.709 (56) | 0.618 / 0.763 / 0.724 (154) | 0.619 / 0.752 / 0.720 (210) |
上表显示干净全集上 D-042 命中 210 条对 E2b 的 214 条,留出 90 条上 56 条对 53 条,多 3 条在标准误内,且在另 6 首歌上少 7 条。D-040 同样如此。D-041 在见过的 6 首歌上从 0.647 涨到 0.707,却在没见过的 2 首歌上从 53 条跌到 41 条,去掉真人对的 D-042 回到 56 条,早期 D-015 到 D-016 也有 0.630 到 0.456 的同类下跌。在这么小的封闭集里,测试曲目的真人对教的是歌曲身份而不是口哨到哼唱的映射,D-041 全 8 首的 0.640 混了已训和未见歌曲,不能读作口哨增益。
下图把合成与真实放在一起看,左半合成集总体高于基线但末步不再继续上升,右半两组真实条件不同需分开读,D-041 全 8 首柱子不干净。这个对比的教学价值在于一眼区分两种成功:拟合生成器很容易,迁移到业余真人很难。读图前要记住左半歌库是 11050 首、右半是 8 选 1,两边随机基线和难度完全不同,不能直接比绝对高度,只能比各自随模型的变化趋势。
看图路径: 1. 先比较左侧合成集上总体高于基线、D-041 到 D-042 不再继续上升;2. 再分开看右侧真实口哨:全部 8 首组四柱基本接近,2 首留出组跨度约 0.20;3. 注意 D-041 在全部 8 首歌的柱子不干净、只能看其 2 首留出柱
论文图 2。原论文 Figure 2::“Top-1 by model and query set, generated from the committed result files.”。
从像素可见,左侧合成口哨约 0.18/0.23/0.25/0.25,末两柱按图示精度基本持平;合成错词约 0.19/0.24/0.27/0.26,最后一步略有回落,相对基线约 0.07 的总增幅仍在。右侧真实口哨要分两组看:全部 8 首组约 0.63/0.61/0.64/0.62,基本接近;2 首留出组约 0.59/0.66/0.46/0.62,跨度约 0.20,其中绿色 D-041 明显矮一截,对应 41 条的下跌。这帮助理解为什么论文说 3 轮合成训练没有超出噪声地移动真实口哨,以及为什么要把留出歌曲单独列出来。机制推测是合成缺少真人压缩、漂移和跟踪交互,但论文承认没有直接测量缺的是哪一项,只能说 3 种生成器都没补上。
已知 8 首歌内用真人口哨能提高多少
这节回答的是缩小后的问题:如果歌曲集合固定已知、只换新演唱者,真人口哨训练有没有用。条件是 MLEnd 的 8 首歌、训练与测试表演者不重叠,136 名训练表演者按 10%、25%、50%、100% 嵌套取子集、单种子,用验证表演者口哨对哼唱选点,测试仍是 339 条对别人哼唱质心。结论只能读作封闭集内有效,不能读作对新歌的开放泛化,线上模型仍保持 E2b。
| Model | Train performers | Top-1 [clip 95% CI] | Top-3 | MRR |
|---|---|---|---|---|
| E2b zero-shot | 0 | 0.631 [0.581, 0.681] | 0.770 | 0.731 |
| FT 10% | 14 | 0.634 [0.584, 0.684] | 0.776 | 0.735 |
| FT 25% | 34 | 0.625 [0.575, 0.678] | 0.794 | 0.738 |
| FT 50% | 68 | 0.655 [0.605, 0.705] | 0.811 | 0.757 |
| FT 100% | 136 | 0.673 [0.622, 0.723] | 0.820 | 0.768 |
上表显示 E2b 零样本 top-1 为 0.631 区间 0.581 到 0.681,全量微调到 0.673 区间 0.622 到 0.723,即 214 条到 228 条,top-3 从 0.770 到 0.820。曲线在 10% 到 25% 基本持平,50% 到 100% 才抬头,但 clip 区间重叠、表演者自举区间更宽,说明证据方向向好但不确定性大。这个结果的适用条件必须背下来:歌曲已知、表演者换人、参考是业余哼唱质心而非原录音,离开任一条件都不能套用 0.673 这个数字。
神经合成的两代尝试为什么也是阴性
第二代用商用神经音乐模型 ElevenLabs music_v2_5,以分离后的人声做 conditioning_ref 生成 20 秒片段,口哨用 xhigh 强度加独奏口哨提示,la-la 用 medium 加业余女声或年轻男声提示。每歌取人声最活跃的最多 3 个 20 秒窗口,各生成一条口哨和一条 la-la。只用歌名提示的 12 条无一条通过 DTW 旋律检查,加声学条件后才跟调。以 E2b 在 10 首歌封闭集当裁判,10 条 la-la 中 8 条首位命中、10 条口哨中 3 条命中,随机 0.1。对 1051 首歌库裁判集,32 首经典 phase A 接受 37 阻挡 55 得 74 条,79 首榜单 phase B 接受 54 阻挡 183 得 106 条,共 180 条,版权屏蔽率 72% 且被拒仍收半价,约 106k 积分约 22 美元,平均每条约 0.12 美元、每条 E2b 首位命中约 0.67 美元。
微调 D-047 用 CPU 跑 1500 步,每批一半是 166 条 ElevenLabs 对排除可能重叠 MLEnd 曲目、另一半是 68714 条物理合成对,在 MLEnd 验证表演者上选点。验证 top-1 从未超过起点 0.794,选出的就是起点本身,测试 339 条 0.631、留出 90 条 0.589 与 E2b 完全相同。论文归因于规模小、过于贴合原唱缺少业余 tempo 漂移错音丢音、覆盖歌曲少,但这仍是事后解释,不是消融证明。
第三代换开源管线以去掉成本和版权限制并加入真人误差。演唱用 YingMusic-Singer-Plus,以 RMVPE 人声基频经八度折叠和间隙填充后渲染的五谐波带轻颤音当旋律引导,歌词用原段 ASR 转写的部分替换、含混化或混合音节 3 种错词形式,音色提示来自其他歌曲 5 到 8 秒人声以免与目标同音色。口哨用在 87 条 ElevenLabs 口哨上训练的小 DDSP 合成器,由同样引导驱动再重跟踪。
人类误差模型在 6 首歌 718 条训练表演者哼唱口哨上用 DTW 拟合漂移斜率、音符音程误差、抖动、调偏、 tempo 比与局部变化及删增率,渲染前按随机真人片段参数扰动引导,但拟合的删音率只经发声丢失增广间接进入,未做显式删音。D-048 得 948 可用对 105 首歌,D-049 汇总 1994 对 167 首歌 1326 唱 668 哨其中 349 带扰动,分 A 混物理合成、B 只用开源对且冻结前 75% 参数张量 63/85 并降学习率、C 在 A 上加扰动对,均为 1500 步单种子。
结果仍是阴性:D-048 和 A、C 验证从未超起点 0.794 而选回起点,末点在 339 条上掉约 9 个点、配对差区间不含零;扰动 C 相对 A 无帮助;改动最小的 B 在 750 步选点后 339 条配对差负 0.012 区间负 0.038 到正 0.015 算持平,留出 90 条上持平或末点正 0.022 但区间含零,留出 top-3 从 0.711 到 0.789 和 0.811 是未预注册未检验的次要信号不能计数。旋律过滤 P90 按与训练者哼唱的子序列 DTW 成本留 304/339 条,E2b 仅从 0.631 到 0.648 且模型排序不变,说明主要错误不是无调片段。三代结论一致:改动越小掉得越少,合成微调把编码器推离了真实口哨有效的表示。
选点指标饱和会怎样悄悄返回起点
D-040 最早在加 7 半音的 HumTrans 验证 top-1 上选点,该指标起点已 0.9948,之后漂到 0.9922 从未超过起点,关掉早停耐心也选到第 0 步,导致所谓最优就是基线、结果文件每个数都等于 E2b。修复办法是报固定末点 3000 步,并在 D-041 改用合成验证均值加哼唱 guard 选点,该指标从 0.288 涨到 0.374 且 guard 保持 0.9908 到 0.9948。教训是选择指标必须在训练量上能动,且要跟踪目标域;合成指标能动但看不见真实口哨,所以仍选不出真实增益。
其他塑造方法的阴性结果也值得记。用本歌失真基频做正样本的哼唱微调 D-039 在 CHAD 验证 top-1 最优 0.4359 对起点 0.4341 无实质增益。直接编辑轮廓的 D-031 在 MTG-QBH 掉 4.2 个点,而渲染重跟踪的 D-040 保哼唱代价不到 1 个点。项目中真实哼唱的最大增益来自多窗口投票和重排等匹配侧,而非训练。这些都是在告诉新生:训练不是万能,测量和检索策略常常更关键。
结论在哪些边界之外不能用
第一,没有任何真实口哨或错词查询是直接对歌曲录音打分的。MLEnd 有口哨无歌曲,MTG-QBH 有演唱无录音,所以真实证据是口哨对别人哼唱,不是开放的查询对歌曲。第二,没有真实错词测试,错词结果全是合成。第三,MLEnd 小而苛刻,8 首歌 26 名测试口哨者全是业余,留出仅 2 首 90 条,单歌效应主导;D-049 源歌还混入 2 首 MLEnd 曲目的合成查询,只有 Hakuna 加 Potter 列是全留出。
第四,合成到真实的差距没有直接测量,物理渲染器简单但两代神经生成器并不简单却同样失败,人类误差模型也未做显式删音,不能指认缺的是哪一项。第五,每轮单种子,一两个点的差异无法分辨。第六,歌曲侧旋律来自人声干声,纯器乐 hook 本来就够不到。第七,约 2 千赫兹以上和很噪的口哨跟踪差。第八,未与 Google 和 ByteHum 直接比,前者无公开精度,后者未读全文。
这些边界不是技术缺陷,而是复述结论时必须带的适用条件。
复现第一步做什么,需要什么资源
先分清三件事:代码公开、权重可下载、系统可运行是不同的。论文第 12 节说代码、配置、决策日志和结果文件在 GitHub 的 hum2song 仓库,模型检查点和检索索引将发布为 Hugging Face 的 hum2song-models,旋律特征和结果文件将发布为 hum2song-data,但写作时两个仓库私有待发布。第三方链接当前可达只证明论文提到该地址,不证明作者已开源;不可达也只说明本次未确认,不能当作技术问题。写解读时只能说作者声明将发布,不能写已可下载。
复现建议从 E2b 封闭评测起步:准备 MLEnd 口哨和哼唱,按论文实现峰值跟踪 200 到 6000 赫兹加 6 分贝门限和 RMVPE 加清理两条前端,做键归一化减中位音高,用 5.2M 轮廓编码器对 339 条口哨求对 8 歌他人哼唱质心的 top-1,看能否复现 0.631 附近。合成训练需要 11083 首歌的人声基频缓存和重跟踪管线,成本高于评测。ElevenLabs 路线还受版权屏蔽和计费影响,180 条约 22 美元只是论文当时的花费,不能当作通用报价。开源 YingMusic-Singer-Plus 路线要注意 VAE 另有社区许可,DDSP 口哨需先在 87 条口哨上训练。选点必须留真实验证表演者,不要在测试曲目的真人对上选点,否则会重蹈 D-041 学到歌曲身份的覆辙。
什么时候值得试,还缺哪项验证
如果任务是已知小曲库内的业余口哨检索,且能收集到同曲库不同人的口哨和哼唱做训练与验证,那么封闭微调值得试,预期在论文条件下从 0.631 到 0.673 量级,但要接受区间重叠和表演者差异大的现实。如果任务是开放上万首歌库的新歌检索,论文证据不支持用三代合成查询去训,物理渲染、商用条件生成、开源加真人误差 3 条路都没搬动真实口哨,改动大的还掉约 9 个点。错词演唱目前只有合成证据,真实效果未知,不能承诺。
还缺的验证很明确:收集与可持有音频配对的真实口哨和错词查询,直接测查询对录音;在真实验证集上选点;先测量合成与真实在压缩、漂移、删音和跟踪误差上的差距再训练;补多种子。论文的未来工作也是这四项。
容易产生的误解要纠正:合成集涨 7 个点不等于系统变强;D-041 全 8 首 0.640 不是口哨增益;封闭集 0.673 不是开放泛化;MERT 在 HumTrans 上 0.947 但在 MIR-QBSH 上仅 0.169 而轮廓编码器为 0.996 和 0.949,这支持用基频轮廓而非证明频谱模型无用,因为两边评测脚本不完全一致。归根结底,缺的是真实查询,而不是更好的合成器。
📎 论文与评分元数据
排名:前50% | 文档类型:方法研究 | arXiv 原文
⚖️ 评分明细
评分属于系统判断,不是论文实验结果;八维数值与总分见页首,原始审计记录保留在后端。
评分规则:type-aware-v1
评分模型:muse-spark-1.3-contributor
评分请求协议:openai_responses