Training Music Sample Identification Models on Real Sample Pairs
R. Oguz Araz, Joan Serrà, Xavier Lizarraga-Seijas, Emilio Molina, Xavier Serra, Yuki Mitsufuji, Dmitry Bogdanov
cs.SD
2026-09-18
SIE 在 WhoSampled130K 真实采样对上训练,Sample100 与 SamplePairs 的 mAP 达 0.758 与 0.701,相对前 SOTA SampleID 提升 26% 与 56%;只用 5% 真实对就能在约 1 万条查询的测试集上追平无限合成对。
音乐采样识别(sample identification, SI)要做的事很具体:给定一首「采样了别人」的目标曲,从库里找回被采的源曲。它和听歌识曲(track identification)不同,源曲和目标曲往往只共享一小段,而且还被变速、变调、切碎、刮碟。也和翻唱识别(version identification)不同,翻唱通常整首歌都在变,采样往往只动一个片段。
这个任务 2013 年就有了,但一直缺大规模标注。近几年的主流做法是用分轨数据人工合成采样对:把某条音轨做变速变调再混回去。WhoSampled130K 刚放出 79,111 对商业发行曲之间的真实采样标注,却还没有一份能把这些真实对真正用起来的训练配方。合成管线模仿不了制作人常用的 chopping、scratching。缺口在配方,不在数据本身。
SIE(SI Embeddings)把两套现成东西拼在一起:Fish 的架构与训练配方,加上 SampleID 为采样识别改过的输入特征和前端。
训练对来自 WhoSampled130K 训练集:79,111 对、114,721 首,音频统一成 16 kHz 单声道。标注只给采样起点、不给终点,时长未知。每首歌随机取一个时间戳,再各自独立偏移 [-2.5, 2.5] 秒,然后各切 10 秒。峰值归一化到 [-30, 15] dBFS,正值会故意削波。
特征是 258 bin 的 variable-Q transform,从 27.5 Hz 起、每八度 36 bin。模型看 230 帧、帧率 40 Hz,对应 6 秒。后端是 ResNet50-IBN 加 GeM pooling,投影头做 batch normalization、线性层和 L2 归一化,输出 1024 维嵌入,维度只有对照模型的一半。
训练时三条增强链各自以 0.25 的概率打开:
损失是欧氏距离 triplet,margin 0.3。每个 iteration 用 394 对真实采样组 batch,挖 batch 内最难负样本。Adam,无 weight decay,学习率从 3×10^{-4} 余弦降到 10^{-6},共 2 万步,一块 L40S 上混合精度训 25 小时。
为了把「换数据」和「换配方」拆开,他们用 SampleID 的发布代码,在同一批真实对上重训,得到 SampleID-R。唯一改动是把原来必做的变速变调改成各 0.25 概率,因为真实对里这些变化已经有了。SampleID-R 训到收敛用了 3.8 万步,比 SIE 更久。
两套已发表的小基准上,SIE 超过此前所有数字。Sample100 只有 75 条查询、104 对,全是嘻哈;SamplePairs 100 条查询、100 对,不限曲风。
| 方法 | 训练对 | 维度 | Sample100 mAP | SamplePairs mAP |
| Van Balen 等(规则) | 无 | - | 0.390 | 未报 |
| Cheston 等 | 合成 | 2048 | 0.441 | 未报 |
| SampleID | 合成 | 2048 | 0.603 | 0.450 |
| SampleID-R | 真实 | 2048 | 0.651 | 0.511 |
| SIE | 真实 | 1024 | 0.758 | 0.701 |
相对 SampleID,SIE 的 mAP 提升是 26% 和 56%。拆开看:换数据(SampleID-R 对 SampleID)只贡献 +0.048 / +0.061;换架构和配方(SIE 对 SampleID-R)贡献 +0.107 / +0.190。数据换了就已经是新的最优结果,配方的贡献更大。对应的 mean normalized average rank 也同向:SIE 在两套基准上分别降到 3.9 和 2.4,SampleID 是 7.6 和 4.7。
WhoSampled130K 测试集有 8,463 对、10,444 首、约 1 万条查询,排序在三套基准上一致:
| 方法 | mAP | mNAR(越低越好) |
| SampleID | 0.226 ± 0.007 | 19.4 ± 0.5 |
| SampleID-R | 0.299 ± 0.008 | 14.3 ± 0.4 |
| SIE | 0.389 ± 0.009 | 13.0 ± 0.4 |
| NMFP(听歌识曲) | 0.101 ± 0.005 | 35.4 ± 0.6 |
| CLEWS(翻唱) | 0.181 ± 0.007 | 32.4 ± 0.7 |
| Fish(识曲+翻唱) | 0.207 ± 0.007 | 29.9 ± 0.6 |
合成对训出来的 SampleID,相对为翻唱加识曲训练的 Fish 只多 0.019 mAP。真实对把这条缝拉开了。
数据量实验更直接:SIE 只用 5% 真实对,就能在这个大规模测试集上追平用「数量实质上不受限」的合成对训练的 SampleID。加数据还有收益,没有饱和。
配方消融也干净。信号操纵和音频退化都开,mAP 0.389;只开操纵 0.365;只开退化 0.334;全关 0.320。Triplet 比 SampleID 用的 NT-Xent 最好设置高 0.057 mAP(0.389 对 0.332)。5 / 6 / 8 秒片段的差异落在置信区间里,6 秒只是个方便选择。
版权监测、采样溯源、按采样关系做发现,这三件事以前卡在「没有真实对、只能合成」。现在有了第一份全监督配方,代码和 checkpoint 也放出来了。
对要上系统的人,可操作的结论很硬:有真实对就用真实对,哪怕只有合成管线数据量的零头;配方不能省,triplet、Fish 式退化和 SampleID 前端合在一起,比单纯换数据更值钱;1024 维够用,索引体积直接减半。
这不是新骨干网络。相邻检索任务里已经验证过的零件迁到采样识别,并证明合成对训出来的模型迁到真实对上只是部分成立。渐进,方向清楚。
Sample100 和 SamplePairs 查询太少,论文自己说置信区间分不出系统差异,只能报点估计。WhoSampled130K 测试集覆盖了 Sample100 里 71%、SamplePairs 里 50% 的曲子。训练集按构造不与这两套基准重叠,也不包含与它们成对的曲子,但小基准数字仍可能偏乐观。
标注只有起点没有终点,模型从未见过「这段采样有多长」。增强仍然是变速、变调和退化。chopping 和 scratching 这些当初用来批评合成管线的操作,并没有被显式建模。SIE 的增益里有一块来自 Fish 配方,不完全是「真实对」四个字。
数据加到 100% 还没饱和。论文也没回答一个反向问题:合成管线如果做得更像制作人,迁到真实对上会不会够用。Bhattacharjee 等人的两阶段方法被排除在比较之外,理由是一阶段嵌入不能单独用,且公开实现的结果有争议。