识别文件中的音频样本

时间:2011-08-13 17:37:11

标签: java c++ python audio signal-processing

我希望能够在我收到的音频文件(mp3)中识别音频样本(由用户提供)。

mp3文件是我为测试目的而保存的广播流,我有节目的前贴片。我想在文件中识别它并获取它在文件中播放的时间戳。

注意:解决方案可以使用以下任何编程语言:Java,Python或C ++。我不知道如何分析视频文件,任何有关此主题的参考都会有所帮助。

2 个答案:

答案 0 :(得分:3)

此问题属于音频指纹识别类别。如果您将样本与歌曲匹配,那么您肯定会知道歌曲中样本出现的时间戳。 Shazam背后的人有一篇很好的论文描述了他们的技术:http://www.ee.columbia.edu/~dpwe/papers/Wang03-shazam.pdf他们基本上选择了谱图中的局部最大值,并根据它们的相对位置创建一个哈希值。

以下是对音频指纹识别算法的好评:http://mtg.upf.edu/files/publications/MMSP-2002-pcano.pdf

无论如何,您可能会使用FFT和频谱图进行大量工作。 This post讨论如何在Python中执行此操作。

答案 1 :(得分:2)

我首先计算干草堆和针头文件的FFT频谱图(可以这么说)。然后你可以尝试(模糊地)匹配光谱图 - 如果你将它们格式化为图像,你甚至可以使用现成的算法。

不确定这是否是规范或最佳方式,但我觉得它应该有用。