如何知道给定频率的声音何时开始和结束?

信息处理 声音的 Python scipy
2022-02-02 19:43:55

我需要检测两个声音(913 Hz 和 1370 Hz),知道每个声音的开始和结束时间。

此时,我使用的是带通滤波器(黄油),结果如下:

第一个图像是原始信号,第二个是 913Hz 的 bpf 之后(窗口 = 150 Hz)

这是第一次出现这种声音:

第一次出现 913 Hz 的声音

红线是声音应该结束的地方(276 毫秒)。

那么如何检测到第一次出现的音调从 0 毫秒开始到 276 毫秒结束呢?

2个回答

我建议阅读有关发病检测的内容。它是关于音乐信号的,但仍然可以从中提取一些想法。

从更一般的角度来看,我要做的是对信号进行基于帧的分析,并定义某种能量阈值/本底噪声,我可以使用它来确定是否存在活动。

针对您的特定键盘(可能是统一的,或者可能分为两个频段)训练的开始和释放键控时间的匹配滤波器可能会起作用。匹配滤波器的长度可能取决于信噪比和您所需的统计错误率。