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

我将AVAudioRecordermeteringEnabled=true一起使用,并且使用averagePowerForChanneldocs)获得平均分贝水平。

我正在尝试测量手机附近的环境噪声,如果我开始讲话,iPhone 8似乎会放大低噪声或将其消除。例如,如果背景音乐的绝对分贝级别为30,则iOS似乎会对其进行放大。当我开始安静说话时,dB电平会明显下降。

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

我尝试了setInputGaindocs),但是isInputGainSettable始终为假-因此,我不能采用这种方法。

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

最佳答案

您可以启用和禁用AEC,AGC-使用AudioUnitSetProperty

https://developer.apple.com/documentation/audiotoolbox/1440371-audiounitsetproperty

以下是一些相同的代码段。

lResult = AudioUnitSetProperty(lAUAudioUnit,
                                   kAUVoiceIOProperty_BypassVoiceProcessing,
                                   kAudioUnitScope_Global,
                                   输入总线
                                   &lFalse,
                                   sizeof(lFalse));

lResult = AudioUnitSetProperty(lAUAudioUnit,
                                   kAUVoiceIOProperty_VoiceProcessingEnableAGC,
                                   kAudioUnitScope_Global,
                                   输入总线
                                   &lFalse,
                                   sizeof(lFalse));

10-08 05:57
查看更多