如何检测实时声音开始?

信息处理 Python 声音 即时的
2022-02-12 16:57:50

我是一名软件工程师本科。我正在尝试在 python 中实时检测鼓击(节拍)。我使用了基于幅度阈值的起始检测(节拍检测)算法,但它也需要其他噪声起始,并且它忽略了一些低幅度的实际节拍。您能否提出优化我的代码或解决此问题的其他方法的建议?

2个回答

我的猜测是,目前解决这个检测问题的流行、新的和可能稳健的方法是将一系列音频指纹(例如 MFCC)提供给 RNN 机器学习算法,该算法在大范围的节奏轨道上进行了训练。增加现实背景噪音的水平。

将音频流样本直接馈送到更深层次的 CNN+RNN ML 推理引擎可能会更好地检测音频指纹识别遗漏的人工可解析节拍细节,但这在计算上效率会低得多,并且需要更长的训练时间。

使用自适应阈值可能会对您有所帮助:计算一个小的移动时间窗口(例如 0.5 秒)上的平均幅度,并将阈值设置为平均值的函数(例如 3X)。这应该可以检测到振幅的突然变化(鼓的敲击几乎总是如此)。