我正在编写一个应该检测歌曲速度的脚本。为此,我希望它能够测量脉冲之间的间隔,例如脚鼓或类似的东西-由于脚鼓在我正在测试的歌曲中似乎不太常见,因此我想隔离歌曲中的拍手,这更多定期。为此,我想将歌曲的频率隔离在200hz和300hz之间。
我有一些关于低通滤波器的代码,发现here,但这并不能帮上忙。其他文档仅使用Matplotlib真正在图表上绘制了过滤后的音频,但是我想将过滤后的音频写入另一个WAV文件。
sr,y=scipy.io.wavfile.read(data)
lo,hi=200,300
b,a=scipy.signal.butter(N=6, Wn=[2*lo/sr, 2*hi/sr], btype='band')
x = scipy.signal.lfilter(b,a,y)
scipy.io.wavfile.write('test.wav', sr, x.astype(np.int16))
我目前已经了解到了这一点,但是,它所做的只是基于过滤器使输出更安静。在此当前状态下,它使其完全静音。我对音频处理还很陌生,所以我不确定从哪里开始。