Сделанный! Немного впечатлен собой.
Нашему продукту необходима функция эхоподавления, были определены три возможных технических решения,
1) использовать MCU для обнаружения аудиовыхода и звука в аудиосигналах, написать алгоритм для расчета силы двух сторон звукового сигнала в зависимости от силы аудиовыхода и звука между двумя дополнительными переключениями каналов, чтобы достичь эффект полудуплексного вызова, но сейчас на рынке присутствует эффект полнодуплексного вызова, полудуплекс сделает продукт менее конкурентоспособным
(2) Используйте алгоритм эхоподавления от поставщика ЦП, фактическое тестовое устранение эха недостаточно чистое из-за настройки всех настраиваемых параметров и многочисленных обсуждений с поставщиком, что далеко от ожидаемого эффекта. По отзывам поставщиков, необходимо улучшить корпус, чтобы изолировать микрофон как можно дальше от динамика. Но нет возможности изменить корпус из-за конструкции идентификатора, качества звука и требований к громкости.
(3) Загрузите из Интернета алгоритмы эхоподавления с открытым исходным кодом, такие как webrtc и speex, и перенесите их в продукт после кросс-компиляции.
4) Приобретите алгоритмы у компании, которая специализируется на аудиоалгоритмах, но каждый продукт потребует дополнительных затрат, что значительно снизит конкурентоспособность продукта.
После взвешивания вариантов я решил провести углубленное исследование решения с использованием алгоритмов с открытым исходным кодом;
Итак, я загрузил серию кодов эхоподавления с github, gitee и других сайтов, как на C, так и на Matlab.
Синтезируйте два голоса с октавами, чтобы создать часть сцены двойного разговора с голосом, захватываемым микрофоном на ближнем конце, а также опорным голосом на дальнем конце.
Затем запустите загруженный онлайн код для эхоподавления, проанализируйте выходной звук и выберите среди них алгоритм, который работает лучше всего.
Судя по результатам, алгоритм AEC обработки аудио через webrtc неудовлетворителен, эхоподавление не является чистым, а в сцене двойного разговора наблюдается явное проглатывание слов. Алгоритм обработки звука webrtc AEC3 чистый, но он сильно подавляет звук другого конца двустороннего разговора, и звук становится прерывистым и неестественным;
В речи есть небольшое эхо, лучше всего найти реализацию алгоритма aec на языке Matlab, устранение эха очень чистое, двойная речь - лишь небольшое явление глотания слов.
Затем я использую Visual Studio для компиляции и отладки открытого исходного кода аудиообработки aec webrtc, обращаюсь к приведенному выше алгоритму aec Matlab для изменения кода, использую онлайн-отладку для установки точек останова, одношаговый запуск и другой анализ значение оператора меняется шаг за шагом, и в конечном итоге данные получаются, и результаты алгоритма aec языка Matlab идентичны. Полученные окончательные данные точно такие же, как результат алгоритма aec в Matlab;
Сегодня, скомпилировав продукт, усиление микрофона и динамика было отрегулировано до разумного значения, а затем был произведен реальный вызов для проверки эффекта эхоподавления, результаты оказались на удивление хорошими.
Таким образом, есть надежда разработать продукт, продажи которого превысят небольшой целевой показатель.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3