java - 识别文件中的音频样本

标签 java c++ python audio signal-processing

我希望能够识别我拥有的音频文件 (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/

相关文章:

java - 使用java 8流在2个列表中查找元素匹配

java - 我是否正确理解 Spring @Transactional 行为?

java - 使用微调器中的变量来确定按钮的操作

java - 出于测试目的终止 Java 线程

c++ - 当我的编译器不符合标准时如何将数组成员归零

python - 随机加权子图

python - Django Restful Framework 模型序列化器 get_validation_exclusions

c++ - 如何从命令行在 Visual Studio 2019 for C++ 中生成 .pdb 文件

python - Python中的for循环与C++有何不同?

python - 全局名称未定义,我该如何导入?