是否可以通过分析文件的字节来查看两个MP3文件是否是同一首歌?

zco*_*rts 2 c c++ mp3 byte analysis

这是用C++或C完成的....我知道我们可以读取MP3的元数据,但是这些信息可以被任何人改变,不是吗?那么有没有办法分析文件的内容并将其与另一个文件进行比较并确定它是否实际上是同一首歌?

编辑 我想到的很多有趣的东西.尝试这一点并不是一个好主意.

Jon*_*eet 13

这是可能的,但非常困难.

甚至相同的原始记录也可能由不同的MP3编码器或具有不同设置的相同编码器进行不同编码......当然后解码 MP3时导致不同的结果.你需要制定一个听觉模型来"理解"差异有多大,并做出判断.

然后是不同录音的问题.如果我唱"曾经在皇家大卫的城市"并且Aled Jones演唱它,那些是同一首歌吗?如果有两个不同版本的歌曲,其中有一个略有修改的歌词怎么办?关键可能是不同的,它可能在不同的声音范围内 - 各种各样的事物.

两首歌有多么不同,但仍然算作"同一首歌"?一旦你决定了,那就是实现它的小问题;)

  • +1"非常难"(这很可能是一个现存的研究问题,至少在一般情况下) (3认同)

jst*_*ley 5

如果我真的必须这样做,我的第一个尝试是对两首歌曲进行傅立叶变换并比较直方图。您可以使用 FFTW (http://www.fftw.org/) 进行傅立叶变换,然后通过对每个频率的差异的平方求和来比较直方图。如果结果总和大于某个阈值(您必须通过实验确定),则认为这些歌曲不同,否则它们是相同的。