我正在尝试编写一种算法,该算法会自动将一段音频与鸟叫录音进行分割。我的输入数据是 1 分钟长的波形文件,在输出上我想单独调用以进行进一步分析。问题是由于环境条件和麦克风质量差(单声道,8 kHz 采样),信噪比非常糟糕。
我将不胜感激有关如何进一步进行降噪的任何建议。
这是我的输入示例,波形格式的一分钟录音:http: //goo.gl/16fG8P
这是信号的样子:
带通滤波(我只保留 1500 - 2500 Hz 之间的任何值)确实改善了情况,但仍远未达到预期。在这个频谱中仍然存在很多噪声。
我还绘制了长期(超过 32 个样本间隔)平均能量并从中删除了一些点击。结果如下:
对于所有剩余的噪音,我必须为起始检测算法设置一个非常低的阈值,以挑选最后 10 秒的鸟叫声。问题是,如果我以这种方式对其进行调整,那么在下一次录制中,我可能会收到大量误报。
移动平均滤波器有助于处理风噪声。还有其他想法吗?我在考虑“光谱减法”,但在我看来,我有鸡和蛋的问题——要找到只有噪音的区域,我必须分割音频并分割我需要去除噪音的音频。您是否知道任何具有此算法或伪代码实现的库?Methinks Audacity 使用这种方法去除噪音。它非常有效,但留给用户标记仅噪声区域。
我正在用 Python 编写,它是一个免费的开源项目。
谢谢阅读!