0

我的目标是能够使用 Python 检测通过 PC 扬声器发出的特定噪音。这意味着以下内容,在伪代码中:

声音正在从扬声器中播放出来,例如游戏等应用程序,ny“音频检测”声音发生了,我想检测到,并采取行动

我想检测的特定声音可以在这里找到

如果我把它分解,我相信我需要两件事:

  1. 一种对正在流式传输到音频设备的音频进行采样的方法我实际上有这个工作 - 代码在这里找到:https ://gist.github.com/renegadeandy/8424327f471f52a1b656bfb1c4ddf3e8 - 它基于sounddevice 示例情节- 我将其与音频环回设备结合使用。这允许我的代码接收带有播放给扬声器的数据的回调。
  2. 一种将每个样本与我的“要检测的音频”声音文件进行比较的方法。检测不需要精确 - 它只需要接近。比如会有很多其他的噪音同时发生,所以它更能在各种声音的音频流中检测到“要检测的音频”的足迹。

对此进行调查后,我发现了这篇关于 SO 的帖子以及这篇关于 Chromaprint 的有趣文章中提到的技术。Chromaprint 文章使用 fpcalc 生成指纹,但因为我的“音频检测”在 1 - 2 秒左右,fpcalc 无法生成指纹。我需要一些可以在更小的时间空间工作的东西。

有人可以帮我解决上面详述的问题#2吗?

根据我在audio_callback函数中使用 sounddevice 的采样,我应该如何尝试这种比较(最好是一个小例子)。提前谢谢了。

4

0 回答 0