Se ha publicado el lanzamiento del motor de reconocimiento de voz DeepSpeech 0.9 desarrollado por Mozilla, que implementa la arquitectura de reconocimiento de voz del mismo nombre propuesta por investigadores de Baidu.
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.
Sobre DeepSpeech
DeepSpeech consta de dos subsistemas: un modelo acústico y un decodificador. El modelo acústico utiliza técnicas de aprendizaje automático profundo para calcular la probabilidad de que ciertos caracteres estén presentes en el sonido de entrada.
El decodificador utiliza un algoritmo de búsqueda de rayos para transformar los datos de probabilidad de caracteres en una representación textual. 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 su lugar, se utiliza un sistema de aprendizaje automático bien optimizado basado en una red neuronal, que elimina la necesidad de desarrollar componentes separados para modelar diversas anomalías como el ruido, el eco y las características del habla.
El kit ofrece modelos entrenados, archivos de sonido de muestra y herramientas de reconocimiento de línea de comandos.
El modelo terminado se suministra solo para inglés y chino. Para otros idiomas, puede aprender el sistema usted mismo de acuerdo con las instrucciones adjuntas, utilizando los datos de voz recopilados por el proyecto Common Voice.
Cuando se utiliza el modelo listo para usar del idioma inglés que se ofrece para descargar, el nivel de errores de reconocimiento en DeepSpeech es del 7.06% cuando se evalúa mediante el conjunto de pruebas LibriSpeech.
A modo de comparación, la tasa de error de reconocimiento humano se estima en 5,83%.
En el modelo propuesto, el mejor resultado de reconocimiento se logra con una grabación limpia de una voz masculina con acento americano en un ambiente sin ruidos extraños.
Según el autor de la biblioteca de reconocimiento de voz continuo de Vosk, las desventajas del conjunto Common Voice son la unilateralidad del material de voz (el predominio de hombres de 20 a 30 años y la falta de material con la voz de mujeres, niños y ancianos), la falta de variabilidad del vocabulario (repetición de las mismas frases) y la distribución de grabaciones MP3 propensas a la distorsión.
Entre los inconvenientes de DeepSpeech se encuentran el bajo rendimiento y el alto consumo de memoria en el decodificador, así como importantes recursos para entrenar el modelo (Mozilla usa un sistema con 8 GPU Quadro RTX 6000 con 24GB VRAM en cada una).
La desventaja de este enfoque es que para obtener un 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 ruidos naturales.
Dichos datos son recopilados por el proyecto Common Voice creado en Mozilla, que proporciona un conjunto de datos verificado con 1469 horas en inglés, 692 en alemán, 554 en francés, 105 horas en ruso y 22 horas en ucraniano.
Al entrenar el modelo final en inglés para DeepSpeech, además de Common Voice, se utilizan adicionalmente datos de los proyectos LibriSpeech, Fisher y Switchboard, así como aproximadamente 1700 horas de grabaciones de programas de radio transcritos.
Entre los cambios en la nueva rama, se destaca la posibilidad de forzar el peso de las palabras seleccionadas durante el proceso de decodificación.
También se destaca el soporte para la plataforma Electron 9.2 y una implementación opcional del mecanismo de normalización de capas (Layer Norm) al entrenar la red neuronal.
Descargar y obtener
El rendimiento es suficiente para utilizar el motor en placas LePotato, Raspberry Pi 3 y Raspberry Pi 4, así como en los teléfonos inteligentes Google Pixel 2, Sony Xperia Z Premium y Nokia 1.3.
Se ofrecen módulos listos para usar para Python, NodeJS, C ++ y .NET para integrar funciones de reconocimiento de voz en sus programas (los desarrolladores de terceros tienen módulos preparados por separado para Rust, Go y V).