Сотрудник Collabora Multimedia и разработчик GStreamer Кристиан Шаллер написал в своём блоге о статусе реализации функции, выполняющей подавление эха в PulseAudio.
С эффектом эха сталкивался любой, кто пытался проводить видеокофнеренции с лэптопа, пользуясь одновременно встроенным в лэптоп микрофоном и акустической системой.
Изначально в планах было создать инфраструктуру фильтров и реализовать эту функцию как фильтр. Но поскольку необходимо работать одновременно с сигналом от микрофона и сигналом, уходящим в акустическую систему, было решено реализовать подавление эха как модуль PA, который получил название ‘module-echo-cancel’.
Для подавления эха создаётся виртуальная пара устройств, которая автоматически используется любым приложением, которое сообщает PulseAudio, что его тип — ‘phone’.
Архитектура созданного модуля такова, что в нём можно реализовывать разные подключаемые алгоритмы подавления эха. В настоящее время реализовано два алгоритма: основанный на Speex DSP и написанный Андре Адрианом.
Недостатком текущей реализации является неоптимальная работа модуля подавления эха при использовании устройств, не имеющих общий генератор синхросигнала. Т.е. если вы записываете звук с USB-микрофона или веб-камеры, подавление эха скорее всего не сработает. Это связано с конструктивными особенностями PulseAudio, которые планируется забороть совместно с разработчиками ALSA.
Функция реализована Collabora Multimedia совместно с NLnet. Кристиан пока не уточняет, в какой именно версии следует ждать подавление эха, но код уже включён в основную ветку разработки PulseAudio.
Оставить комментарий