Акустическое эхоподавление во Flash / Flex с использованием собственных библиотек - PullRequest
7 голосов
/ 04 февраля 2010

Я должен внедрить AEC в приложении Flex для видеоконференций. Я знаю, что это не может быть сделано непосредственно во Flash. Я подумываю написать собственное приложение или библиотеку, которая будет выполнять AEC вне Flex.

Насколько я знаю, Adobe Connect Pro использует некоторую внешнюю библиотеку, которая поддерживает AEC. Я хотел бы следовать этому направлению и сделать что-то похожее.

В моей голове появляются две возможности:

1) Независимый пользовательский фильтр AEC.

Пользовательский фильтр AEC будет работать в фоновом режиме и будет обрабатывать все данные с микрофона и звуковой карты и выполнять AEC. Эхо-сигнал будет данными, которые должны быть воспроизведены, но задержаны во временном буфере, что-то вроде этого: aec (input, delayed_input, output).

Я не знаю, работает ли он, потому что микрофонный вход Flash не знает о моем пользовательском входе и не совпадает с динамиками. Но как это сделать в WinXP / Vista, когда AEC находится на системном уровне?

2) Фильтр AEC взаимодействует с NativeProcess Flex.

Фильтр будет запускаться NativeProcess. Приложение Flex передает звук с микрофона, полученный удаленный голос на фильтр и возвращает голос с удаленным эхом, а затем Flex выводит его на динамики. Будет ли это правильно?

Если метод 2) в порядке, у меня есть следующие вопросы:

  1. Я начну с AEC Speex, так в каком формате должны передаваться данные из Flex? Если я выберу кодек Flex Speex для сжатия звука, могу ли я передать его непосредственно в библиотеку speex?
  2. Будет ли исполнение в порядке? Я думаю, что вызов библиотеки NativeProcess для каждого буфера звукового кадра может занять много времени.
  3. Почему в AS3 нет реализации AEC, которую можно использовать непосредственно из Flash? Насколько я знаю, для выполнения AEC у вас должны быть данные эха и данные микрофона (во Flash 10 есть прямой доступ к микрофону). Определенно есть что-то, что перестает делать это, но я пока не знаю, что это:)
  4. Есть ли какая-нибудь бесплатная реализация AEC или библиотека DSP с in, кроме Speex, которую я могу использовать?

PS Я теперь эксперт по Flash / Flex, извините за некоторые глупые вопросы:)

Заранее благодарен за помощь, ternyk

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Хорошие новости - теперь он встроен во Flash Player 10.3 :) Прочитайте примечания к выпуску и убедитесь, что вы скомпилированы с Flex 4.5 SDK

1 голос
/ 31 мая 2011

В Java возможен AEC, и вы можете получить доступ к функциям Java в AIR, используя Merpi. Может быть, вы должны попробовать это.

Спасибо

...