在iPhone上播放歌曲时通过麦克风检测噪音

Mar*_*man 13 iphone audio fft noise ios

我正在制作一个应该播放简单音轨的应用程序,让我知道在播放曲目时附近是否有噪音.这是通过在iPhone的扬声器上播放歌曲时从麦克风进行实时录制来完成的.任何不属于音乐播放的声音都被定义为噪音.

实现此功能的最简单方法是什么?

我在网上进行了相当广泛的研究,但是我找不到任何能指出这个特定问题的解决方案的东西.虽然它可能是我阅读的不同技术的组合,但最终将成为解决方案.

我已经实现的东西
同时播放歌曲和录制音频.

我尝试过的事情
注意:由于我们鼓励我们添加我们已尝试的内容,因此我添加以下部分.但我绝不是说这是解决问题的正确方法,这只是我尝试过的事情.

我攻击了aurioTouch2示例应用程序:我所做的是回放一次歌曲并记录快速傅立叶变换值(以非常低的采样率保持记录数据的数量较低).然后,当再次播放曲目时,我基本上计算(每个时间步长)使用实时回放fft数据构建的输出图形与记录的fft数据之间的相关系数(所以当你放置时看到的'波浪'线条)应用于fft模式).
这种"有点"有效.当房间内有过多的声音/噪音时,相关系数明显较低,但它不是非常敏感,也取决于记录fft数据时使用的音量.最后,我认为这可能不是最好的方法.

有人认为这是可能的吗?如果是这样,最好的方法是什么?
请询问您是否需要更多说明!

Mar*_*man 1

最后我们决定不在应用程序中执行此操作。我得到了一个演示,我首先对歌曲进行校准,收集一组最主要的频率,对环境房间噪音进行相同的操作,并在播放歌曲时在决策过程中使用这些频率。它工作得很好,尽管我觉得它仍然需要很多调整。这是我以我有限的音频相关编程知识所能做的最好的事情:)