是否可以在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));