Raspberry pi 探测到巨大的脉冲声

Raspberry pi 探测到巨大的脉冲声,raspberry-pi,filtering,signal-processing,raspberry-pi2,Raspberry Pi,Filtering,Signal Processing,Raspberry Pi2,我正在尝试设计一个基于rasp pi的系统,它可以检测到像拍手声一样的巨大的突然声音。我能够实时捕获输入声音样本(使用一个简单的python程序),但需要一种有效的方法在这些在线样本上运行我的算法以指示尖峰。我不太熟悉用于此类应用程序的过滤器。有什么建议吗 应用高通,高于1千赫似乎工作得相当好。clap应主要包含高频成分 计算rms,例如,对高通输出求平方,在最后100个样本中求平均值以平滑 在某个时间窗口内进行标准化,例如最后N个样本。确保此窗口比rms的移动平均值长。对于当前样本,减去此缓冲

我正在尝试设计一个基于rasp pi的系统,它可以检测到像拍手声一样的巨大的突然声音。我能够实时捕获输入声音样本(使用一个简单的python程序),但需要一种有效的方法在这些在线样本上运行我的算法以指示尖峰。我不太熟悉用于此类应用程序的过滤器。有什么建议吗

  • 应用高通,高于1千赫似乎工作得相当好。clap应主要包含高频成分
  • 计算rms,例如,对高通输出求平方,在最后100个样本中求平均值以平滑
  • 在某个时间窗口内进行标准化,例如最后N个样本。确保此窗口比rms的移动平均值长。对于当前样本,减去此缓冲区的平均值,然后除以缓冲区中的标准偏差。通过这种方式,您可以检测窗口中信噪比的相对变化,这与当前振幅无关
  • 选择一个阈值SNR来声明clap

  • 你可以取rms值的移动平均值吗?如果输入值高于该值的某个阈值,它将被视为“尖峰”?我正在考虑使用循环缓冲区来收集数据inputs@adanot阈值是非常量的,因此峰值仅与过去和未来的样本相关。您的想法仍然有意义,在最简单的实现中,可以查看SecondBeforeLast、Last和Current示例,如果Last>Current&&Last>SecondBeforeLast,则可以将其视为峰值。我认为,如果采样率错误,我们可能会不断错过峰值,那么这很容易出错。