iPhone 麦克风的硬件限制

Posted

技术标签:

【中文标题】iPhone 麦克风的硬件限制【英文标题】:Hardware limitations with iPhone Microphone 【发布时间】:2015-08-05 15:55:46 【问题描述】:

我正在使用EZAudio FFT 来分析 iPhone “听到”的音频。我正在聆听嵌入到音乐中的高音(17 kHz+)。当iPhone听到没有音乐的声音时,它完美地记录了数据并且听到了音调。然而,当音乐播放时,声音不再被听到——或者只有八分之一的声音被听到。同样,我使用 EZAudio 来分析声音。我有一部 android 手机,上面有一个类似的应用程序(显示传入音频波的 Hz 图表),但 Android 手机可以听到这些声音。

为什么 Android 手机会听到这些尖锐的声音,而 iPhone 却听不到?是因为 EZAudio 的缺陷还是因为麦克风质量更高?

【问题讨论】:

大多数消费级麦克风在大约 15 kHz 以上的频率响应非常差。 它可以很好地听到音高,只是在嘈杂的音乐中不太好。然而安卓可以。你觉得我能做些什么来解决这个问题吗? 您需要首先确定问题 - 例如。这可能是模拟输入上的 AGC 和音乐的存在导致感兴趣的音调水平下降。尝试捕获一些缓冲区并使用例如做一些离线分析。 MATLAB 或 Octave。 【参考方案1】:

答案很可能是自动增益控制 (AGC)。这在麦克风上默认启用,对于电话或录音很有用。

在 17kHz 时,您可能已经处于麦克风不是特别敏感的频率,但是,在其他频率没有音频的情况下,AGC 将增加麦克风的增益。一旦出现其他频率,增益就会再次降低,并且 17kHz 信号会出现在噪声中。

查看 EZAudioFFT 源代码,它似乎没有将 AVAUdiosession 设置为使用测量模式(禁用 AGC 和麦克风上的 HPF)。

您可以通过以下方式实现:

NSError *pError = nil;
[[AVAudioSession sharedInstance] setMode:AVAudioSessionModeMeasurement];

【讨论】:

以上是关于iPhone 麦克风的硬件限制的主要内容,如果未能解决你的问题,请参考以下文章

iOS 硬件授权检测:定位服务通讯录日历提醒事项照片蓝牙共享麦克风相机等

在 iPhone 5 上选择后置麦克风

将电压施加到 iPhone 的麦克风端口

iPhone/iPad上的双通道录音:耳机+内置麦克风

用于从 iphone 麦克风流式传输音频的多点连接

台式机上如何配置并使用苹果iPhone的耳机麦克风 并且麦克风开启降噪功能