我的目标是能够使用 Python 检测通过 PC 扬声器发出的特定噪音。这意味着以下内容,在伪代码中:
- 声音正在通过扬声器播放,例如游戏等应用程序
- 我的“要检测的音频”声音发生了,我想检测到它并采取行动
例如,我想检测的特定声音可以在这里找到。
如果我把它分解,我相信我需要两件事:
- 一种对正在流式传输到音频设备的音频进行采样的方法——也许基于此?或潜在的声音设备 - 但我无法通过查看他们的 api来确定如何完成这项工作?
- 一种将每个样本与我的“要检测的音频”声音文件进行比较的方法。
检测不需要精确 - 它只需要接近。比如会有很多其他的噪音同时发生,所以它更能在各种声音的音频流中检测到“要检测的音频”的足迹。
对此进行调查后,我发现了这篇关于 SO 的帖子以及这篇关于 Chromaprint 的有趣文章中提到的技术。Chromaprint 文章使用 fpcalc 生成指纹,但因为我的“音频检测”在 1 - 2 秒左右,fpcalc 无法生成指纹。我需要一些可以在更小的时间空间工作的东西。
我的问题是 - 有人可以帮助我解决我的问题的两个部分:
- 如何使用 python 对 PC 上的音频设备进行采样
- 我应该如何尝试这种比较(最好有一个小例子)
提前谢谢了。