在数百万用户编辑的音频文件中查找重复内容(音频内容散列)
Find duplicate content among millions of user-edited audio files (audio content hashing)
我有一个问题,包括处理超过一百万个音频文件(来自用户生成的视频内容),这些文件可能已经过编辑(主要是剪切)并以各种质量上传。我的任务是将所有重复项映射到一个项目 ID,以便我们稍后可以过滤以仅显示那些具有完整长度和最佳质量的视频。
由于视频之间的视觉差异可能不会因不同文件而异,因此我们希望将音轨用于我们的目的。这就是为什么我要搜索对上述内容有一定抵抗力的音频内容散列。您可以将其称为 'Shazam' 问题。
我的问题是:您认为找到这些潜在重复项的最简单方法是什么(可以进行人工批准)?
一个子问题是:你将如何解决不处理相位不同的音频文件块的问题(确保来自 2 个不同长度音频的哈希输入始终相同)。
我目前的方法是处理音频,并在给定时间内对声波上的每个局部高音进行处理 window 在接下来的 20-30 秒块上生成某种哈希。只要重复查找过程是某种键值查找而不是与所有其他哈希的交集,我就可以轻松地为每个文件存储几十个哈希。
我没有元数据或任何其他可以使用的东西。
关于 shazam 内部工作原理的描述非常好:
An Industrial-Strength Audio Search Algorithm
他们搜索最显着的频率成分及其相对距离并以一种巧妙的方式存储这些距离,以便快速搜索和匹配。
这可能看起来非常复杂,但要对音频文件进行可靠的指纹识别需要付出一些努力,这根本不是一个小问题。
我有一个问题,包括处理超过一百万个音频文件(来自用户生成的视频内容),这些文件可能已经过编辑(主要是剪切)并以各种质量上传。我的任务是将所有重复项映射到一个项目 ID,以便我们稍后可以过滤以仅显示那些具有完整长度和最佳质量的视频。
由于视频之间的视觉差异可能不会因不同文件而异,因此我们希望将音轨用于我们的目的。这就是为什么我要搜索对上述内容有一定抵抗力的音频内容散列。您可以将其称为 'Shazam' 问题。
我的问题是:您认为找到这些潜在重复项的最简单方法是什么(可以进行人工批准)?
一个子问题是:你将如何解决不处理相位不同的音频文件块的问题(确保来自 2 个不同长度音频的哈希输入始终相同)。
我目前的方法是处理音频,并在给定时间内对声波上的每个局部高音进行处理 window 在接下来的 20-30 秒块上生成某种哈希。只要重复查找过程是某种键值查找而不是与所有其他哈希的交集,我就可以轻松地为每个文件存储几十个哈希。
我没有元数据或任何其他可以使用的东西。
关于 shazam 内部工作原理的描述非常好:
An Industrial-Strength Audio Search Algorithm
他们搜索最显着的频率成分及其相对距离并以一种巧妙的方式存储这些距离,以便快速搜索和匹配。
这可能看起来非常复杂,但要对音频文件进行可靠的指纹识别需要付出一些努力,这根本不是一个小问题。