gpt4 book ai didi

android - 在android中通过声音识别敲击(拍手)

转载 作者:行者123 更新时间:2023-11-29 17:44:47 34 4
gpt4 key购买 nike

在我的任务中,我们的 Android 移动应用程序需要识别敲击声(当敲击移动设备表面时)以打开应用程序。

我尝试了一些方法,但它只能识别大约 80% 的敲门声(有时我敲手机但它不返回它是敲门声)并且有时它会识别其他声音为敲门声,例如元音“a”。

这是我们使用的 3 种方法 -

<强>1。通过高通滤波器识别:

<强>2。使用从 13kHz 到 18kHz 的幅度总和 (refer this article):

<强>3。使用库 ( refer link )

所有这些努力只能识别大约 80% 的敲击声,有时它会将其他声音识别为敲击声。

我不确定爆震特性以及如何准确识别爆震(当我准确拍打手机时它会识别爆震)。非常感谢任何帮助!

最佳答案

  1. Recognize by hight pass filter

与敲门无关

  1. Using sum of magnitude from 13kHz to 18kHz (refer this article) :

这是一个合理的方向,但您需要添加更多特征,尤其是附近其他帧中的能量。

Using library

不相关

您所有的方法都不起作用,因为它们与爆震特性无关。要正确检测爆震,您需要弄清楚它与其他声音的区别:

  1. 敲门时间很短
  2. 爆震频率位于频谱的较高部分。

所以需要实现如下算法:

  • 在帧上拆分音频
  • 为每一帧创建 FFT 变换
  • 分析每一帧和相邻帧的 FFT 变换,并使确保以下内容:
    • 帧的光谱能量集中在上部
    • 帧的能量明显高于相邻帧的能量

一旦您看到这两个特征,您就可以发出检测到爆震的信号。

引用资料见爆震谱图:

Knock spectrogram

此处还介绍了相关算法及其解释:

Given an audio stream, find when a door slams (sound pressure level calculation?)

如果您想进一步区分声音,例如识别器的咔哒声和敲门声与拍手声,那么您可能需要为频谱实现一个分类器。您将需要收集更多拍手和不同声音的示例,并在 FFT 值上应用机器学习工具包。 SVM 应该可以很好地完成这项任务。

关于android - 在android中通过声音识别敲击(拍手),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27420163/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com