不使用机器学习的吹声识别

信息处理 fft 声音的 声音识别
2022-02-25 00:34:44

我正在 Unity 中构建一种体验,它可以识别用户何时对着麦克风吹气。我有一个工作实现,可以识别高于某个响度阈值的声音,但我想更进一步,只识别打击声。

我目前的实现是:

我从 1 秒的声音片段中提取 FFT 信息并确定所涉及的频率范围。这个想法是吹的声音比典型的语音覆盖更多的频率(基于它的频谱图),所以我预计它的频率范围接近 100%。这个实现会拾取频率范围接近 100% 的其他声音和语音,我想这是可以预料的,但这就是我目前所拥有的。

正如您在频谱图中看到的那样,很容易看出吹气声发生在哪里。虽然语音看起来更加锯齿状,但吹气的声音似乎具有非常一致的模式。语音和吹气声谱图。

我做过的研究:

  • 我首先尝试按照这篇学术研究论文中的步骤进行操作。虽然我学到了很多关于数字声音的知识,但我也意识到它依赖于机器学习,我想避免这种情况。
  • 我分析了上面的频谱图,并根据 1 秒声音片段的频率范围半成功地实现了声音识别。我为此实现使用了 FFT 信息。
  • 我试图将音频样本的频率直方图视为 n 维向量。我根据这篇文章的一个答案计算了音频样本和预先录制的吹气声音的点积结果不一致,所以我放弃了这个想法。
  • 我发现了一个与我的情况最相似的问题。这些评论帮助我巩固了我的信念,即机器学习在这种情况下会是一种过度杀伤力。答案似乎表明分类算法是一种解决方案,如果我没记错的话,那就是机器学习。(如果我错了,请纠正我)

我的问题是:

我可以从音频剪辑/FFT 中提取哪些其他音频特征来更准确地识别吹气?

我可以直观地看到频谱图中的吹气声,这让我相信可以在不使用机器学习的情况下通过算法识别它。

我对声音处理相对较新,因此非常感谢任何信息。

0个回答
没有发现任何回复~