RNNoise: Done su ruido para el entrenamiento de la red neuronal de Mozilla


Espectrograma antes de la reducción de ruido, habla humana grabada a 15 dB SNR


Espectrograma de sonido después del procesamiento por la red neuronal RNNoise

La reducción de ruido ha seguido siendo un tema urgente de la investigación científica desde al menos los años 70 del siglo pasado . A pesar de las mejoras significativas en la calidad de los sistemas, su arquitectura de alto nivel prácticamente no cambió. La técnica de estimación espectral se basa en una estimación de ruido espectral, que a su vez funciona utilizando un detector de actividad de voz (VAD) o un algoritmo similar. Cada uno de los tres componentes requiere un ajuste perfecto, y son difíciles de configurar. Por lo tanto, los logros de Mozilla y Xiph.org en el aprendizaje profundo son muy importantes. El sistema híbrido RNNoise que crearon ya demuestra un buen resultado en la reducción de ruido (vea el código fuente y la demostración ).

Al crear RNNoise, los desarrolladores buscaron obtener un algoritmo pequeño y rápido que funcione de manera efectiva en tiempo real incluso en la Raspberry Pi. Y tuvieron éxito, y RNNoise muestra un mejor resultado que los filtros modernos más modernos y sofisticados.


La estructura de alto nivel de la mayoría de los algoritmos de reducción de ruido.

Las redes neuronales se han utilizado previamente para suprimir el ruido; en los últimos años, esta es un área de investigación popular. Pero la mayoría de ellos sugiere el uso en aplicaciones de reconocimiento automático de voz, donde el retraso y la potencia de procesamiento no son factores determinantes. En contraste, el proyecto Mozilla se enfoca en aplicaciones en tiempo real, como videoconferencia, y en procesamiento de sonido con una frecuencia de muestreo completa de 48 kHz.

Para lograr este objetivo, Mozilla aplicó un enfoque híbrido que utiliza simultáneamente métodos conocidos de reducción de ruido y capacitación en profundidad para reemplazar aquellos componentes que son difíciles de configurar en los sistemas convencionales. La esencia del método se muestra en el diagrama de flujo.


Diagrama de flujo de procesamiento de señal

Este enfoque híbrido difiere de las redes de extremo a extremo, donde la red neuronal se encarga de absolutamente o casi todo el procesamiento de sonido. Por supuesto, tales sistemas han demostrado ser efectivos, pero los desarrolladores de RNNoise los consideran demasiado complejos y requieren muchos recursos. Por ejemplo, en la red de reducción de ruido RNN de Google (2012), estima directamente los valores de frecuencia. Para procesar el sonido a 8 kHz, utiliza 6144 bloques en capas ocultas y unos 10 millones de indicadores de peso. La escala de voz de 48 kHz con tramas de 20 ms crea un sistema demasiado complejo con más de 400 señales de salida (de 0 a 20 kHz). definitivamente no será tirado por la Raspberry Pi. El objetivo de Mozilla era hacer que el modelo fuera simple y rápido, por lo que adoptaron un enfoque híbrido. Además, generalmente abandonaron el trabajo directo con muestras y espectro, y en su lugar dividieron el espectro en 22 rangos, y los analizaron, y no 480 valores espectrales (complejos) que de lo contrario tendrían que analizarse. Estos 22 rangos corresponden a la percepción humana del sonido por el oído, de acuerdo con la escala psicoacústica de los ladridos . Se utiliza una distribución similar en el códec Opus, y aquí Mozilla tomó prestado el modelo base, ajustándolo ligeramente.



Este enfoque ha demostrado ser efectivo. El programa consume solo una parte modesta de los recursos informáticos del procesador ARM Cortex-A53 que funciona a 1.2 GHz (Raspberry Pi 3).

Las pruebas comparativas mostraron que el uso de una red neuronal mejora significativamente la calidad de la reducción de ruido. Los diagramas muestran la reducción de ruido de las conversaciones de fondo (izquierda), los automóviles (en el centro) y el ruido de la calle (derecha) en comparación con la biblioteca SpeexDSP basada en MMSE .



Ahora los desarrolladores están pidiendo a todos los usuarios que donen su ruido con fines científicos, es decir, para entrenar la red neuronal. Puede grabar ruido en línea. Le piden que haga esto en cualquier entorno donde sea posible una conversación de voz, es decir, literalmente en cualquier lugar: puede ser su automóvil, oficina, calle o cualquier lugar donde pueda comunicarse por teléfono o computadora. En la página de grabación de ruido, simplemente haga clic en el botón "Grabar" y permanezca en silencio durante 1 minuto. Para entrenar la red neuronal, también debe indicar en qué entorno particular grabó el silencio (ruido).

Un artículo científico (pdf) que describe RNNoise aún no se ha enviado para su publicación en una revista científica.

Source: https://habr.com/ru/post/es407161/


All Articles