Поделитесь, пожалуйста, своим опытом использования программных эхокомпенсаторов на Android:
- Встроенный (тот что появился в v3.0, как я слышал)
- речь
- WebRTC
- И т.п.
Поделитесь, пожалуйста, своим опытом использования программных эхокомпенсаторов на Android:
Я только заканчиваю работу над AEC на Android, я попробовал speex/android-built-in-ec/webrtc-aec и webrtc-aecm (управление эхом на мобильном телефоне) и, наконец, выбрал модуль AECM, и есть несколько советов:
delay
, вы должны следовать ее описанию в audio_processing.h strictly
, если вы рассчитаете правильное значение задержки, все будет в порядке.ИЗМЕНИТЬ
После долгой работы с WebRTC AECM (или APM) я все еще не могу заставить его работать идеально на Android. Я думаю, что AECM нуждается в большей оптимизации, но Google, похоже, не планирует этого. В любом случае, я буду уделять внимание Google WebRTC и его производительности AECM (или AEC) на Android.
(Обновлено 23 июня 2020 г.) См. файл README моего проекта GitHub. , мое вышеприведенное решение было осуждено мной много лет назад. Я не хочу вводить в заблуждение других.
Есть две проблемы, связанные с AEC на Android:
ПРОЦЕССОР. Большинство алгоритмов AEC плохо работают при низком уровне ЦП.
Echo Path — многие приложения VoIP на Android вводят эхо-задержку, которая выше, чем может обрабатывать бесплатный алгоритм (эффективно).
В итоге я предлагаю вам сначала измерить задержку эха (т. е. хвост эха) в вашем VoIP-приложении. Если оно не превышает 16-64 мс, вы можете попробовать использовать одно из упомянутых выше бесплатных решений.
Еще одно замечание: я считаю, что Speex не будет хорошо работать на мобильных устройствах, поскольку, насколько я знаю, у него нет версии с фиксированной точкой.