在我的任务中,我们的Android移动应用程序需要识别敲击声(敲击移动设备表面时)才能打开应用程序。
我尝试了一些方法,但它只能识别大约80%的敲门声(有时候我敲电话但它不会返回敲击声)并且有时它会识别其他声音如敲门声,如元音' a' ;
以下是我们使用的3种方法 -
1。通过高通过滤器识别:
2。使用13kHz到18kHz之间的总和(refer this article):
第3。使用库(refer link)
所有这些努力只能识别大约80%的敲击声,有时候它会将其他声音识别为敲击声。
我不确定敲击特性以及如何准确识别敲击(当我完全拍手机时它会识别敲击声)。非常感谢任何帮助!
答案 0 :(得分:3)
- 通过高通过滤器识别
醇>
与敲打没关系
- 使用13kHz至18kHz的量级之和(参见本文):
醇>
这是一个合理的方向,但你需要添加更多功能,特别是附近其他帧的能量。
使用库
不相关
所有方法都不起作用,因为它们与敲击属性无关。要正确检测爆震,你需要弄清楚它与其他声音的区别:
所以你需要实现以下算法:
一旦看到这两个功能,就可以发出有关检测到爆震的信号。
参考参考knock谱图:
此处还介绍了一个相关的解释算法:
Given an audio stream, find when a door slams (sound pressure level calculation?)
如果您想进一步区分声音,例如识别器点击和来自拍手的门铃,那么您可能希望为频谱实现分类器。您需要收集更多拍手和不同声音的示例,并在FFT值上应用机器学习工具包。 SVM应该可以很好地完成这项任务。