la sortie du moteur de reconnaissance vocale développé par Mozilla , qui met en œuvre l'architecture de reconnaissance vocale éponyme, par des chercheurs de Baidu. L'implémentation est écrite en Python en utilisant la plateforme d'apprentissage machine TensorFlow et est sous la licence libre MPL 2.0. Elle fonctionne sur Linux, Android, macOS et Windows. Les performances sont suffisantes pour utiliser le moteur sur les cartes LePotato, Raspberry Pi 3 et Raspberry Pi 4.
Le package comprend également des modèles pré-entraînés, de fichiers audio et des outils de reconnaissance en ligne de commande. Des modules prêts à l'emploi pour intégrer la fonction de reconnaissance vocale dans vos programmes sont proposés pour Python, NodeJS, C++ et .NET (des modules ont été préparés séparément par des développeurs tiers pour et ). Le modèle prêt à l'emploi est uniquement disponible pour l'anglais, mais pour d'autres langues, vous pouvez la documentation fournie , collectées par le projet Common Voice.
DeepSpeech est beaucoup plus simple que les systèmes traditionnels tout en offrant une meilleure qualité de reconnaissance en présence de bruit ambiant. Le développement n'utilise pas de modèles acoustiques traditionnels ni la notion de phonèmes, mais repose plutôt sur un système d'apprentissage machine bien optimisé basé sur un réseau de neurones, permettant d'éviter le développement de composants distincts pour modéliser diverses déviations telles que le bruit, l'écho et les particularités de la parole.
L'inconvénient de cette approche est que pour obtenir une reconnaissance de qualité et entraîner le réseau de neurones, le moteur DeepSpeech nécessite un grand volume de données diverses, dictées dans des conditions réelles par différentes voix et en présence de bruits naturels.
La collecte de telles données est assurée par le projet créé par Mozilla , fournissant un ensemble de données vérifié avec 780 heures en , 325 en allemand, 173 en français et 27 heures en russe.
L'objectif final du projet Common Voice est de constituer 10 000 heures d'enregistrements de diverses prononciations de phrases types de la parole humaine, ce qui permettra d'atteindre un niveau d'erreur acceptable en matière de reconnaissance. À ce jour, les participants au projet ont déjà enregistré au total 4,3 milliers d'heures, dont 3,5 milliers ont été vérifiées. Pour former le modèle final de la langue anglaise pour DeepSpeech, 3816 heures de discours ont été utilisées, en plus de Common Voice, couvrant des données provenant des projets LibriSpeech, Fisher et Switchboard, ainsi qu'environ 1700 heures d'enregistrements transcrits d'émissions de radio.
Lors de l'utilisation du modèle anglais prêt à être téléchargé, le taux d'erreur de reconnaissance dans DeepSpeech est de 7,5 % selon une évaluation par un ensemble de tests. . En comparaison, le taux d'erreur de reconnaissance par un humain à 5,83 %
DeepSpeech se compose de deux sous-systèmes : le modèle acoustique et le décodeur. Le modèle acoustique utilise des méthodes d'apprentissage automatique profond pour calculer la probabilité d'occurrence de certains symboles dans le son fourni en entrée. Le décodeur applique un algorithme de recherche par faisceau pour convertir les données de probabilité des symboles en une représentation textuelle.
Principales DeepSpeech 0.6 (la branche 0.6 n'est pas compatible avec les versions précédentes et nécessite une mise à jour du code et des modèles) :
- Un nouveau décodeur en streaming a été proposé, offrant une réactivité accrue et ne dépendant pas de la taille des données sonores traitées. Ainsi, dans la nouvelle version de DeepSpeech, il a été possible de réduire la latence de reconnaissance à 260 ms, soit 73 % plus rapide qu'auparavant, et cela permet d'appliquer DeepSpeech dans des solutions de reconnaissance vocale en temps réel.
- Des modifications ont été apportées à l'API et un travail a été effectué pour unifier les noms de fonctions. Des fonctions ont été ajoutées pour obtenir des métadonnées supplémentaires sur la synchronisation, permettant non seulement d'obtenir une représentation textuelle en sortie, mais aussi de suivre l'association de caractères et de phrases spécifiques à la position dans le flux sonore.
- Le toolkit pour l'entraînement des modules a ajouté le support de la bibliothèque pour optimiser le fonctionnement avec les réseaux de neurones récurrents (RNN), ce qui a permis d'atteindre une augmentation significative (environ deux fois) de la performance d'entraînement du modèle, mais a nécessité des modifications dans le code qui compromettent la compatibilité avec les modèles préparés antérieurement.
- Les exigences minimales pour la version de TensorFlow ont été augmentées de 1.13.1 à 1.14.0. Le support d'une version allégée de TensorFlow Lite a été ajouté, ce qui a réduit la taille du paquet DeepSpeech de 98 Mo à 3,7 Mo. Pour une utilisation sur des appareils embarqués et mobiles, la taille du fichier empaqueté avec le modèle a également été réduite de 188 Mo à 47 Mo (la compression a été réalisée par la méthode de quantification après l'achèvement de l'entraînement du modèle).
- Le modèle linguistique a été converti dans un autre format de structures de données, permettant de mapper les fichiers en mémoire lors du chargement. Le support de l'ancien format a été interrompu.
- Le mode de chargement du fichier contenant le modèle linguistique a été modifié, ce qui a permis de réduire la consommation de mémoire et de diminuer les latences lors du premier traitement de la requête après la création du modèle. Désormais, DeepSpeech consomme 22 fois moins de mémoire et se lance 500 fois plus rapidement.
- Un filtrage des mots rares a été réalisé dans le modèle linguistique. Le nombre total de mots a été réduit à 500 000 des mots les plus populaires présents dans le texte utilisé pour l'entraînement du modèle. Cette purification a permis de diminuer la taille du modèle linguistique de 1800 Mo à 900 Mo, sans affecter significativement les taux d'erreur de reconnaissance.
- Ajout du support pour diverses de création de variations supplémentaires (augmentation) des données audio utilisées lors de l'entraînement (par exemple, ajout d'options altérées ou bruitées au jeu de données).
- Ajout d'une bibliothèque avec des liaisons pour l'intégration avec des applications sur la plateforme .NET.
- La documentation a été repensée, et elle est désormais rassemblée sur un site distinct .
Source : opennet.ru
