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