有没有办法通过编程比较两个音频文件是否完全相同或几乎相同?这些不是mp3文件,也没有ID3或其他元数据,而是普通的wav文件。仅比较校验和值可能行不通,因为它们可能不完全相同。
有没有办法通过编程比较两个音频文件是否完全相同或几乎相同?这些不是mp3文件,也没有ID3或其他元数据,而是普通的wav文件。仅比较校验和值可能行不通,因为它们可能不完全相同。
声学指纹维基百科文章提到了一些产品,包括开源的libfooid。基本上,你需要进入频域,在相对较少的带宽(例如32个)上取大致水平,以给出代表类似于25ms声音的字符串,对整个文件执行此操作,然后对不同文件的这些字符串进行模糊比较。这相当复杂,但有必要 - 比较实际样本将导致无法匹配,因为即使是几个百分点的音量变化也会使整个匹配失效。
你可以尝试的一件事,会为你提供一个相当不错的文件指纹,就是进行傅立叶变换,并查看文件中存在的不同频率的分布。虽然仍有可能制作出两个非常不同的声音文件,它们具有相同的傅立叶变换,但如果您的文件来自非人为制造的来源,这种情况可能性较小...