audio - 在不同的音频文件中搜索相同的短样本

标签 audio comparison fft sampling

考虑多个(至少两个)不同的音频文件,例如几个不同的混音或混音。我天真地说,必须有可能检测到两个或多个文件中几乎相等的样本,尤其是人声,当然只有这样,如果人声样本没有被修改、拉伸(stretch)、音调、混响太多等等

那么用什么样的算法或技术可以做到这一点呢?假设用户会尝试在所有文件中尽可能设置时间标记,这些时间标记描述要比较的数据窗口,包含大概相等的声音、人声等。

我知道没有直接的方法,尝试以任何方式直接比较 wav 数据是有用的。但即使我有频域数据(例如来自 FFT),我也必须使用一种比较算法,这种算法会通过时间尺度改变比较窗口,因为我不能假设我想找到的样本是时间同步的在所有文件中。

在此先感谢您的任何建议。

最佳答案

嗨,这是可能的!

您可以使用一种称为 LSH(局部敏感散列)的技术,该技术非常强大。

另一种方法是尝试在您的音频文件中进行频谱图分析......

构建数据库歌曲

1. Record your Full Song
2. Transform the sound to spectrum
3. slice your Spectrogram in chunk and get three or four high Frequencies
4. Store all the points

匹配歌曲
1. Record one short sample.
2. Transform the sound into another spectrum 
3. slice your Spectrogram in chunk and get three or four hight Frequencies
4. Compare the collected frequencies with your database song.
5. your match is the song with have the high hit !

你可以在这里看到如何制作..

http://translate.google.com/translate?hl=EN&sl=pt&u=http://ederwander.wordpress.com/2011/05/09/audio-fingerprint-em-python/

埃德万德

关于audio - 在不同的音频文件中搜索相同的短样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8887327/

相关文章:

objective-c - 如何保存音调和速度变化的iOS音频?

audio - 离散傅立叶变换的频率范围?

Python脚本不会像cgi那样播放声音,而是通过命令行播放

r - 比较复杂结构列表

python - python中numpy.fft包的 "GPU version"是什么?

opencv - 傅立叶图像的翻译

audio - ionic 2 如何播放音效

java - 字符串比较不起作用(android)

algorithm - 比较两棵树之间差异的算法有哪些?

objective-c - 使用 vDSP 实现 FFT