![记录检测到声音的次数](https://linux22.com/image/1448779/%E8%AE%B0%E5%BD%95%E6%A3%80%E6%B5%8B%E5%88%B0%E5%A3%B0%E9%9F%B3%E7%9A%84%E6%AC%A1%E6%95%B0.png)
我想记录麦克风在真实环境中检测到特定声音的次数(在我的情况下为 4 秒)。可以是实时的,也可以是预先录制的文件。它应能够处理音量差异(由于与声源的距离不同)和多普勒效应导致的音调差异(当声源靠近或远离麦克风时)。
确切声音:http://www.exeng.se/upl/Hemglass_-_Torturing_Swedes.mp3
提前致谢
答案1
你的问题很难回答。你是在问是否有软件应用程序可以执行此功能吗?你是在问如何创建软件来实现此功能吗?
显然,您已经研究过这个问题,意识到声音在不同的现实情况下会有所不同,这使得检测更具挑战性。
你可能熟悉以下应用程序沙赞,它可以通过手机麦克风识别音乐。我发现它能够在嘈杂的环境中、失真或压缩/受限的音频以及其他伪影中很好地识别歌曲,这令人惊讶。显然,有一些算法被用来解决这些音频缺陷。
任何试图回答您的问题的人都必定会提出以下问题(或想法):
- 您对准确度的要求是什么?换句话说,应用程序是否需要能够处理额外的噪音或其他妨碍轻松识别的因素?
- 您是否熟悉音频处理,例如最终用户可能使用的声音伪造或者大胆? 如果您熟悉计算机如何存储和处理音频,您将可以更轻松地评估现有软件的质量或性能,或者至少在创建自己的软件时占得先机。
- 使用哪种麦克风?根据麦克风的质量和位置,给出的建议可能有所不同。就此而言,声音发射器可能也很重要。它会是手机吗?还是其他电子设备?距离多远?发射器总是同一个设备,还是会有所不同?了解这些事情将有助于缩小关注范围,看看您是否需要简单或复杂的解决方案。
- 你在问题中提到了多普勒效应,这引发了一个问题:探测器或发射器的传播速度可能是多少。换句话说,很多预计会出现多普勒频移,应用程序应该在什么限度内对其进行校正?
- 您提到发出的声音可能是预先录制的或“实时”的,这表明一个人可能使用某种按键或按钮发出声音。(这类似于电话系统中 DTMF 音调的工作方式,如下所述。)这也意味着音调的持续时间和声音中的间隙可能会有所不同。
- 如果您打算编写自己的软件,您可能需要将这个项目分解为小步骤,并找出您不确定的具体步骤。具体的编程问题可以在StackOverflow.com。但绝对避免一次性询问整个项目!
有很多软件应用程序和电子设备可以检测音调,例如DTMF 音(来自电话系统),您可能希望以此作为起点进行研究(基于样本音频中的单音音调)。
我希望上述几点有助于集中注意力,也许会鼓励您编辑问题以提供更多细节。关于数字系统音频识别的主题已经写了很多书。祝您的项目好运。