有没有办法取消iOS中录音机中的回声消除和噪声抑制等预处理?
我将AVAudioRecorder
与meteringEnabled=true
一起使用,并且使用averagePowerForChannel
(docs)获得平均分贝水平。
我正在尝试测量手机附近的环境噪声,如果我开始讲话,iPhone 8似乎会放大低噪声或将其消除。例如,如果背景音乐的绝对分贝级别为30,则iOS似乎会对其进行放大。当我开始安静说话时,dB电平会明显下降。
但是由于我想测量环境噪声-我不需要这种预处理。
我尝试了setInputGain
(docs),但是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));