DeepSpeech: el motor de reconocimiento de voz de Mozilla
Actualmente Mozilla no solo trabaja en su popular navegador web, sino que también tiene bajo su manto una variedad de proyectos, de los cuales el día de hoy hablaremos sobre DeepSpeech. Este es un motor de reconocimiento de voz que implementa la arquitectura homónima de reconocimiento de voz propuesta por los investigadores de Baidu.
DeepSpeech se destaca por ofrecer diferentes modelos entrenados, archivos de audio de muestra y herramientas de reconocimiento de línea de comandos, para integrar la función de reconocimiento de voz en sus programas. Para ello se ofrecen módulos listos para usar para Python, NodeJS, C ++ y .NET, aunque también desarrolladores externos prepararon módulos por separado para Rust y Go.
El modelo terminado se entrega solo para el idioma inglés, pero para otros idiomas de acuerdo con las instrucciones adjuntas, se puede entrenar el sistema utilizando los datos de voz recopilados por el proyecto Common Voice.
Sobre DeepSpeech
DeepSpeech es mucho más simple que los sistemas tradicionales y al mismo tiempo proporciona una mayor calidad de reconocimiento en presencia de ruido extraño.
El desarrollo no utiliza modelos acústicos tradicionales y el concepto de fonemas; en cambio, utilizan un sistema de aprendizaje automático bien optimizado basado en una red neuronal, que elimina la necesidad de desarrollar componentes separados para modelar diversas desviaciones, como el ruido, el eco y las características del habla.
La otra cara de este enfoque es que para obtener reconocimiento y entrenamiento de alta calidad de una red neuronal, el motor DeepSpeech requiere una gran cantidad de datos heterogéneos dictados en condiciones reales por diferentes voces y en presencia de ruido natural.
El proyecto Common Voice creado en Mozilla es responsable de recopilar dichos datos, proporcionando un conjunto de datos comprobados con 780 horas en inglés, 325 en alemán, 173 en francés y 27 horas en ruso.
El objetivo final del proyecto Common Voice es la acumulación de 10 mil horas con grabaciones de varias pronunciaciones de frases típicas del habla humana, que alcanzarán un nivel aceptable de errores de reconocimiento. En la forma actual, los participantes del proyecto ya han dictado un total de 4.3 mil horas, de las cuales 3.5 mil han pasado la prueba.
Al enseñar el modelo final de inglés para DeepSpeech, se usaron 3816 horas de discurso, excepto para Common Voice que abarca datos de proyectos de LibriSpeech, Fisher y Switchboard, además de incluir alrededor de 1700 horas de grabaciones de programas de radio transcritos.
Cuando se utiliza el modelo inglés listo para descargar, el nivel de error de reconocimiento en DeepSpeech es del 7,5% cuando se evalúa con el conjunto de pruebas LibriSpeech. A modo de comparación, el nivel de errores en el reconocimiento humano se estima en 5.83%.
DeepSpeech consta de dos subsistemas: un modelo acústico y un decodificador. El modelo acústico utiliza métodos de aprendizaje automático profundo para calcular la probabilidad de la presencia de ciertos caracteres en el sonido de entrada. El decodificador usa un algoritmo de búsqueda de rayos para convertir los datos de probabilidad de caracteres en una representación de texto.
Sobre la nueva versión de DeepSpeech
Actualmente DeepSpeech se encuentra en su versión 0.6 en la cual se destacan los siguientes cambios:
- Se propone un nuevo decodificador de transmisión que proporciona una mayor capacidad de respuesta y no depende del tamaño de los datos de audio procesados.
- Se han realizado cambios en la API y se ha trabajado para unificar los nombres de las funciones. Se han agregado funciones para obtener metadatos adicionales sobre la sincronización, lo que permite no solo recibir una representación de texto en la salida, sino también rastrear el enlace de caracteres y oraciones individuales a una posición en la secuencia de audio.
- El soporte para usar la biblioteca CuDNN para optimizar el trabajo con redes neuronales recurrentes (RNN) se agregó al kit de herramientas para módulos de entrenamiento.
- Los requisitos mínimos para la versión TensorFlow se han elevado de 1.13.1 a 1.14.0.
- Se agregó soporte para la edición ligera TensorFlow Lite, que reduce el tamaño del paquete DeepSpeech de 98 MB a 3.7 MB.
- El modelo de lenguaje se ha transferido a otro formato de estructuras de datos, lo que permite asignar archivos a la memoria en el momento del arranque.
- El soporte para el formato anterior ha sido descontinuado.
La implementación está escrita en Python utilizando la plataforma de aprendizaje automático TensorFlow y se distribuye bajo la licencia gratuita MPL 2.0. El trabajo es soportado en Linux, Android, macOS y Windows. Hay suficiente rendimiento para usar el motor en las placas LePotato, Raspberry Pi 3 y Raspberry Pi 4.