2013-03-18 4 views
6

Я разрабатываю приложение VOIP на OSX и iOS и буду использовать AudioQueue для аудиопотока, что хотите знать, по умолчанию AudioQueue поддерживает акустическое эхоподавление или нам нужно добавить поддержку для него,
Если нам необходимо реализовать, я полагаю, что некоторая открытая библиотека источника должна быть реализована как Speex есть ли пример доступные показывает интеграция звуковых сообщений с Speex или любой другая библиотекаAEC (поддержка эхоподавления) в OSX с использованием AudioQueue

+1

Вы могли решить вашу проблему? У меня такой же вопрос. – Vincenzo

ответ

13

насколько я могу найти , вы должны использовать аудиоустройства для доступа к эхоподавлению системы. Вы делаете это, используя kAudioUnitSubType_VoiceProcessingIO вместо kAudioUnitSubType_RemoteIO.

Возможно, вы захотите использовать аудиоустройства, чтобы контролировать вашу задержку.

Вы можете использовать функцию обратного вызова рендеринга для получения данных из очереди аудио и передать ее в блок ввода-вывода. Для исходящих используйте AudioUnitRender.

+0

спасибо Дэвиду, но я на OSX не в iOS, это сработает? – Amitg2k12

+1

Модуль ввода-вывода для обработки речи доступен на 10,7 или новее: https://developer.apple.com/library/mac/#documentation/AudioUnit/Reference/AUComponentServicesReference/Reference/reference.html#//apple_ref/doc/uid/ TP40007291 –

+0

Я нахожусь на последнем OSX Sdk и устанавливаю VoiceProcessingIO, но все же Echo идет, любые решения – Amitg2k12

-1

Благодаря David и This post, я понял, необходимо внести следующие изменения для эхоподавления на прошивкой:

desc.componentSubType = kAudioUnitSubType_VoiceProcessingIO 

Это позволит аппаратное подавление эха в соответствии с apple documentation. Тем не менее, вам все еще нужно использовать определенные флаги для описания AudioStream:

audioFormat.mFormatFlags = kAudioFormatFlagsCanonical; 

 Смежные вопросы

  • Нет связанных вопросов^_^