取消iOS麦克风回声消除和噪音抑制

Mic*_*ely 5 avaudiorecorder ios avaudiosession

有没有办法取消iOS录音机中的回声消除和噪声抑制等预处理?

我正在使用AVAudioRecorderwith ,并且使用(docsmeteringEnabled=true )获得平均分贝级别。averagePowerForChannel

我正在尝试测量手机附近的环境噪音,如果我开始说话,iPhone 8 似乎会放大低噪音或将其抵消。例如,如果背景音乐的绝对分贝级为 30 - iOS 似乎会放大它。当我开始小声说话时,分贝水平显着下降。

但由于我想测量环境噪声 - 我不需要这种预处理。

我尝试过setInputGain文档)但isInputGainSettable总是错误的 - 因此,我不能采用这种方法。

有没有办法取消任何放大或预处理,例如回声消除和噪声抑制?

Mic*_*ely 0

应用程序需要的是在禁用音频通道上的 AGC(自动增益控制)滤波器后访问未处理的音频。要访问原始和未处理的音频,请在 iOS 中打开测量模式。

正如此处的 iOS 文档中所示,“测量”模式是一种指示您的应用程序正在执行音频输入或输出测量的模式。

此模式适用于需要最大限度减少系统提供的输入和输出信号处理量的应用程序。如果在具有多个内置麦克风的设备上录音,则使用主麦克风。

在录制之前,我用来修改它(使用nativescript)的javascript代码是这样的:

// Disable AGC
const avSession = AVAudioSession.sharedInstance();
avSession.setCategoryModeOptionsError(AVAudioSessionCategoryRecord, AVAudioSessionModeMeasurement, null);
Run Code Online (Sandbox Code Playgroud)