¡Hecho! Un poco impresionado conmigo mismo.
Nuestro producto necesita la función de cancelación de eco, se identificaron tres posibles soluciones técnicas,
1) use MCU para detectar señales de audio de salida y entrada de audio, escriba un algoritmo para calcular la intensidad de los dos lados de la señal de sonido, de acuerdo con la intensidad de la salida de audio y el audio intermedio entre los dos cambios de canales opcionales, para lograr el efecto de llamada semidúplex, pero ahora en el mercado hay efecto de llamada full-duplex, el efecto semidúplex hará que el producto sea menos competitivo
(2) Utilice el algoritmo de cancelación de eco del proveedor de CPU, la eliminación de eco de prueba real no es lo suficientemente limpia debido al ajuste de todos los parámetros ajustables y muchas discusiones redondas con el proveedor, lejos del efecto esperado. La respuesta del proveedor es mejorar la carcasa para aislar el micrófono lo más posible del altavoz, pero no hay espacio para cambiar la carcasa debido al diseño de identificación, la calidad del sonido y los requisitos de volumen.
(3) Descargue los algoritmos de cancelación de eco de código abierto, como webrtc y speex, de Internet y transpórtelos al producto después de la compilación cruzada.
4) Comprar los algoritmos de una empresa que se especializa en algoritmos de audio, pero cada producto requeriría costos adicionales, lo que reduciría en gran medida la competitividad del producto.
Después de sopesar las opciones, decidí hacer una investigación en profundidad sobre la solución de utilizar algoritmos de código abierto;
Entonces, descargué una serie de códigos de cancelación de eco de github, gitee y otros sitios, tanto en C como en matlab.
Sintetiza las dos voces con una octava para generar una sección de una escena de doble conversación con la voz de captura del micrófono cercano y la voz de referencia del extremo lejano.
Luego ejecute el código descargado en línea para la cancelación del eco, analice el audio de salida y elija el algoritmo que funcione mejor entre ellos.
Según los resultados, el algoritmo AEC del procesamiento de audio webrtc no es bueno, la cancelación del eco no es limpia y es evidente que se tragan palabras en la escena de doble discurso. El algoritmo AEC3 del procesamiento de audio webrtc es limpio, pero suprime en gran medida el sonido del otro extremo del doble discurso, y el sonido es intermitente y poco natural;
El speex tiene un ligero eco, lo mejor es encontrar una implementación en lenguaje matlab del algoritmo aec, la eliminación del eco es muy limpia, el doble discurso solo produce un ligero fenómeno de deglución de palabras.
Luego, uso Visual Studio para compilar y depurar el código fuente abierto de webrtc audioprocessing aec, consulte el algoritmo aec de matlab anterior para modificar el código, uso la depuración en línea para establecer puntos de interrupción, ejecución de un solo paso y otros análisis de el valor de la declaración cambia paso a paso y, finalmente, los datos y los resultados del algoritmo aec del lenguaje matlab son idénticos. Los datos finales obtenidos son exactamente los mismos que el resultado del algoritmo aec en matlab;
Hoy en la compilación del producto, la ganancia del MIC y del ALTAVOZ se ajustó a un valor razonable, y luego la llamada real para probar el efecto de la cancelación de eco, los resultados son sorprendentemente buenos.
Por lo tanto, existe la esperanza de diseñar un producto que pueda alcanzar ventas por encima del objetivo pequeño.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3