如果已知精确样本存在于wav中的某个位置(但可能与其他声音混合),那么使用FFT可以在较长的wav内找到小wav样本的出现吗?
编辑
(在收到两个回复之后):如果我有一个包含所有已知声音的库,可以在更大的WAV中,并希望在该WAV中找到每个声音的出现,该怎么办?换句话说,我知道可以混入大wav的每一种可能的声音,并希望找到它们的出现?
这完全取决于您要查找的内容以及要在其中查找的内容。
在这种情况下,更好的方法可能是使用短时傅立叶变换(STFT)创建记录的频谱图以及您要查找的内容的频谱图,然后对两个图像。频谱图是一段时间内声音频谱幅度的二维图像,您可以将其进行匹配。(这可能是一种迂回的方式来做一些事情,有更专门的算法,但我不知道它会被称为什么。);)
您可以在某处上传一些声音片段吗?
我认为精确并不是指样本值精确。如果样本值精确,那么搜索样本值就很简单,而且快速且高效。
如果您正在寻找有贡献的声音位,最好的方法是使用称为“卷积”的数学过程。基本上,采取您试图在大样本中找到的样本,有效地将其放置在大样本旁边,然后进行关联。对每个样本位置执行此操作。您将从中得到一条曲线,该曲线在样本所在位置具有明显的尖峰。它的计算量相当大,但计算机已经变得相当快,所以它是可行的。
但是 - 这是假设这两种情况的样本来自相同的录音。拾取鼓声,即使是来自两个不同位置的相同鼓声,也不会产生很好的相关性。
希望有帮助。