python - 如何对两个 wav 文件的 fft 进行卷积

标签 python audio fft detection

总的来说,我需要做的是fft两个wav文件,对它们进行卷积,然后进行逆fft(以在更大的噪声wav文件中找到一个声音的时间戳。

多亏了Python Scipy FFT wav files的bunkus,我有了两个wav文件的fft。

使用此代码后,在给定每个 wav 文件的频率和幅度数组的情况下,我将如何对两个 wav 文件进行卷积?如果我使用 numpy.convolve ,这两个输入将是每个 wav 文件的频率数组吗?振幅数组? scipy.signal.fftconvolve() 怎么样?

我需要以某种格式输出卷积,以便可以将其传递到 np.fft.ifft()在这个卷积上。

最佳答案

要进行 FFT 快速线性卷积,您需要在 FFT 之前首先对两个数据向量进行零填充,长度至少为 N+M-1(通常为 2 的下一个幂的两倍)。

那么乘法需要是两个 FFT 复数结果的复数乘法,而不是只是幅度的真正乘法。

如果您想要严格实数的卷积结果,请确保 IFFT 输入是共轭对称的。

关于python - 如何对两个 wav 文件的 fft 进行卷积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57773478/

相关文章:

c++ - 如何通过UDP播放音频流?

matlab - 在 Matlab 中设计简单的带通/带阻滤波器

matlab - 在 MATLAB 中计算音频音高?

python - 迭代生成器时调用 iter 和 next

c# - 免版税和免费音效

python - 比较本地文件与远程文件

python - LED矩阵上的音频可视化器

image - 如何使用FFT根据局部方向和密度调整具有不同gabor滤波器的图像?

python - 永远不会调用 Kivy Android plyer.gps on_location 回调

python - 在 Python 中验证 ssh-agent 签名