python - 使用 numpy 将带通滤波器应用于 .WAV 文件
问题描述
我正在编写一个应该检测歌曲节奏的脚本。为此,我希望它测量脉冲之间的间隔,例如底鼓或类似的东西 - 因为底鼓在我正在测试的歌曲中似乎太少见了,所以我想隔离歌曲中的拍手,这更多常规的。为此,我想将歌曲的频率隔离在 200hz 和 300hz 之间。
我有一些用于低通滤波器的代码,可以在此处找到,但这并不完全有帮助。其他文档仅使用 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))
我目前已经做到了这一点,但是,它所做的只是根据过滤器使输出更安静。在当前状态下,它使其完全静音。我对音频操作很陌生,所以我不完全确定从这里去哪里。
解决方案
推荐阅读
- multithreading - 在 CLion 中调试多线程 C++ 应用程序
- angular - 当 API 返回 204 状态码时,httpclient 响应为空
- android - Android Room - 避免将 Context 传递给 Singleton
- python - Shapely contains(point) 总是给出 False
- c# - 谷歌地图步行路线请求返回交通信息错误
- react-native - 使用 react-native init 项目反应原生太多问题
- c++ - C++中类字符串的内部结构
- jquery - 使用哈希时如何为当前页面添加任何特定类
- laravel - Laravel 护照申请如何处理内部请求
- ios - 无法将 CAGradientLayer 应用为 UITableView 背景视图