Отмена эхоподавления микрофона iOS и подавление шума - PullRequest
0 голосов
/ 20 октября 2019

Есть ли способ отменить предварительную обработку, такую ​​как эхоподавление и подавление шума в аудиорекордере в iOS?

Я использую AVAudioRecorder с meteringEnabled=true, и я получаю средний уровень децибел, используяaveragePowerForChannel ( документы ).

Я пытаюсь измерить окружающий шум возле телефона, и iPhone 8, похоже, усиливает низкие шумы или подавляет их, если я начинаю говорить. Например, если фоновая музыка имеет абсолютный уровень децибела 30 - iOS, кажется, усиливает его. Когда я начинаю говорить даже тихо - уровень дБ значительно падает.

Но поскольку я хочу измерять окружающий шум - мне не нужна эта предварительная обработка.

Я пытался setInputGain( docs ), но isInputGainSettable всегда ложно - поэтому я не могу использовать этот подход.

Есть ли способ отменить любое усиление или предварительную обработку, такую ​​как эхоподавление и шумподавление

1 Ответ

0 голосов
/ 21 октября 2019

Вы можете включать и отключать AEC, AGC - используя AudioUnitSetProperty

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

Вот фрагмент кода для того же самого.

lResult = AudioUnitSetProperty (lAUAudioUnit, kAUVoiceIOProperty_BypassVoiceProcessing, kAudioUnitScope_Global, lInputBus, & lFalse, SizeOf (lFalse));

LRESULT = AudioUnitSetProperty (lAUAudioUnit, kAUVoiceIOProperty_VoiceProcessingEnableAGC, kAudioUnitScope_Global, lInputBus, & lFalse, SizeOf (lFalse));

...