12

我正在开发一个应用程序,该应用程序使用 iOS 6.0 SDK 分析来自 iPhone/iPad 上内置麦克风的传入音频。

我一直在用非常低的较低频率(即低于 200 赫兹)挣扎一段时间,我(在网上)发现其他人有同样的问题,但没有任何问题的答案。

使用 iOS 音频工具的多家公司表示(在 iOS 6.0 之前)有一个内置的低频滚降滤波器会在较低频率上导致这些低信号,但这些消息来源还指出,从 iOS 6.0 开始,它应该是可以关闭输入音频信号的这种自动低频过滤

我浏览了音频单元头文件、Xcode 中的音频文档以及与音频相关的示例代码,但均未成功。我玩过 AudioUnit 的不同参数和属性(其中提到了低通滤波器等),但没有解决问题。

有人知道如何在 iOS 6.0 中关闭 RemoteIO 输入的自动低频滚降滤波器吗?

4

2 回答 2

15

在 iOS 6.0 下,可以将当前的 AVAudioSession 设置为 AVAudioSessionModeMeasurement,如下所示:

[[AVAudioSession sharedInstance] setMode: AVAudioSessionModeMeasurement error:NULL];

这消除了低频滤波。

关联:

http://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html

我希望这有帮助。

于 2013-03-20T14:13:45.733 回答
-1

我不确定是否有任何方法可以这些设备上完成此操作。大多数麦克风在低于200 HZ的频率(以及高于20 kHZ的范围内)都有困难。事实上,许多扬声器也几乎无法在该范围内播放音频。为了在<200 HZ范围内获得干净的信号,您需要足够好的硬件,我认为这有点超出 iPhone/iPad 的内置麦克风的能力。这可能就是 Apple 过滤掉这些低频声音的原因,因为它们不能保证足够好的录音足够好的回放。这里是一个链接更好地描述了旧设备(iPhone 4、iPhone 3GS 和 iPad 1)的情况。

苹果对他们会和不会让你玩的东西也非常挑剔。即使您确实发现了此过滤发生的位置,中断该代码也很可能会导致您的应用被应用商店拒绝。而且由于硬件限制,您可能无论如何都无法实现您想要的。

希望有帮助!

于 2012-11-24T19:09:03.777 回答