我希望能够识别我拥有的音频文件 (mp3) 中的音频样本(由用户提供)。
mp3 文件是我出于测试目的而保留的广播流,并且我有节目的预卷。我想在文件中识别它并获取它在文件中播放的时间戳。
注意:解决方案可以采用以下任何编程语言:Java、Python 或 C++。我不知道如何分析视频文件,任何有关此主题的引用都会有所帮助。
最佳答案
此问题属于音频指纹识别类别。如果您已将样本与歌曲相匹配,那么您肯定会知道样本在歌曲中出现的时间戳。 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 中做到这一点。
关于java - 识别文件中的音频样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7052169/