Я разрабатываю приложение VOIP для OSX и iOS и буду использовать AudioQueue для аудиопотока. Я хочу знать, поддерживает ли AudioQueue по умолчанию подавление акустического эха или нам нужно добавить поддержку для него,
Если нам нужно реализовать , я считаю, что должна быть реализована какая-то библиотека с открытым исходным кодом, такая как Speex. Есть ли какой-либо доступный пример, показывающий интеграцию AudioQueue со Speex или любой другой библиотекой?
AEC (поддержка эхоподавления) в OSX с использованием AudioQueue
comment
Вы смогли решить свою проблему? У меня тот же вопрос.
- person Vincenzo   schedule 28.01.2017
Ответы (2)
Насколько я понимаю, для доступа к системе эхоподавления необходимо использовать Audio Units. Для этого используйте kAudioUnitSubType_VoiceProcessingIO
вместо kAudioUnitSubType_RemoteIO
.
Вы, вероятно, все равно захотите использовать Audio Units, чтобы контролировать задержку.
Вы можете использовать функцию обратного вызова рендеринга, чтобы получить данные из очереди аудио и передать их на ваш модуль ввода-вывода. Для исходящих используйте AudioUnitRender
.
person
David M.
schedule
18.03.2013
Блок ввода-вывода для обработки голоса доступен в версии 10.7 или более поздней: developer.apple.com/library/mac/#documentation/AudioUnit/
- person David M.; 20.03.2013
я использую последнюю версию OSX Sdk и установил VoiceProcessingIO, но Echo все еще идет, любые решения
- person Amitg2k12; 01.10.2015
Спасибо Дэвиду и В этом посте я понял, что для эхоподавления на iOS требуются следующие изменения:
desc.componentSubType = kAudioUnitSubType_VoiceProcessingIO
Это включит аппаратное подавление эха в соответствии с документацией Apple. а>. Однако вам все равно нужно использовать определенные флаги для описания AudioStream:
audioFormat.mFormatFlags = kAudioFormatFlagsCanonical;
person
Roozbeh Zabihollahi
schedule
26.04.2015