如果知道那个精确的样本存在于wav的某个地方(但可能与其他声音混合在一起),那么FFT是否有可能在较长的wav中找到小wav样本的出现?
修改的
(在收到两个回复之后):如果我有一个包含所有已知声音的库,可以在更大的WAV中,并希望在该WAV中找到每个声音的出现,该怎么办?换句话说,我知道每个可能的声音可以混合到大wav中,并希望找到它们的出现?
答案 0 :(得分:4)
这取决于你想要找到的确切内容以及你想要找到它的内容。
在这种情况下可能效果更好的是使用spectrogram(STFT)创建short-time Fourier transform录音,以及您正在寻找的事物的频谱图,然后再做一次两个图像的逐次互相关。频谱图是声音频谱随时间变化的幅度的二维图像,然后您可以匹配。 (这可能是一种迂回的做法,有更专业的算法,但我不知道它会被称为什么。);)
你可以在某处上传一些声音片段吗?
答案 1 :(得分:3)
我认为你并不是指准确的样本值。如果它是样本值精确的,那么搜索样本值将是一件简单的事情,这是快速有效的。
如果您正在寻找有贡献的声音,最好的方法是使用称为“卷积”的数学过程。基本上,将您尝试在大样本中找到的样本放在大样本旁边,并将其关联起来。对每个样本位置执行此操作。您将从中获得一条曲线,该曲线将在样本所在的位置具有明显的尖峰。它计算量很大,但计算机速度非常快,所以它很可行。
但是 - 假设样本来自两个案例的相同记录。从两个不同的位置拍摄鼓声,即使是相同的鼓声,也不会产生非常好的相关性。
希望有所帮助。
答案 2 :(得分:0)
如果它与其他声音混合在一起,并不完全如你所定义的那样,这就是原因;考虑与其反向精确混合的波的影响;结果反应平平。波的混合可以具有单调函数,即,以第一种不可恢复的方式有效地掩蔽一波与另一波。
也就是说,很可能有一种方法可以表征波的“签名”,使其很可能存在于合成波形文件中,但该签名将取决于波形文件的长度和某些波形文件的长度。预计将在何种类型的组合上进行。
你的问题可能与确定一件作品的样品是否存在于另一件作品中有关,复合作品。通常,是的,FFT可用于确定给定波的“签名”,并能够从另一个波中提取“签名”;它们对于某些东西是好的(例如频移;它只是在FFT上显示为位移),但对于其他东西则不那么好(变化的频率调制,对于一个;高(或不均匀)的原始带宽压缩信号)。换句话说:FFT是检测样本“天真”使用的好方法,但确定的重采样器可以修改原始样本,如果他知道这是使用的检测技术,则难以通过FFT检测。
答案 3 :(得分:0)
如果您知道样本的确切性质(位长等),则很有可能。如果它以任何方式改变,那么你将首先要做很多工作。
由于WAV文件的编码方式(按轨道顺序排列 - 因此您获得第一个轨道的第一批位,然后是第二个轨道的第一批位,然后是第一个轨道的第二批位) )
这显然可以重复多个曲目。如果您知道您要查找的WAV文件是专门在其中一个轨道中编码的,那么您可以隔离每个轨道并对它们执行操作。
显然,如果您的样本因速度,速度,音高等而不同,那么它将具有不同的位签名,因此您必须对轨道进行标准化。