On en parlait récemment, l’IA de Microsoft est meilleure que des humains pour de la compréhension écrite. Ce coup-ci on va revenir sur de la reconnaissance vocale, même si la publication date d’un peu plus d’un an : sans surprise, Microsoft détient la palme.

On en profitera pour faire le point sur l’état actuel dans ce domaine et sur les méthodes employées par les équipes de recherche.

Une véritable prouesse de Microsoft avec la reconnaissance vocale

Que ce soit pour de la pure saisie (dictée de texte) ou pour permettre de nouvelles interactions avec les utilisateurs, la reconnaissance vocale est un enjeu majeur de l’informatique et de l’IA depuis les années 2000 et l’avènement des assistants mobiles.

C’est dans cette période (1993) qu’est né le Linguistic Data Consortium, dont l’objectif est de fournir des jeux de données aux entreprises pour tester leurs algorithmes de reconnaissance (à l’image de PASCAL pour les images). Utilisant celui de l’année 2000, Microsoft a obtenu un score largement supérieur à celui que des êtres humains obtiennent habituellement en transcrivant les fichiers audio.

A l’aide de nombreux algorithmes de deep-learning croisés entre eux pour optimiser chaque étape de l’analyse vocale (depuis l’entrée à la transformation du signal en passant par le suivi de la personne qui parle au modèle de sortie), l’entreprise se place même en première position mondiale avec ses résultats de seulement 5.9% d’erreur sur certaines portions clés (devant IBM).

valeur estimée reconnaissance vocale« On ne verra pas l’adoption (de la reconnaissance vocale) tant qu’on n’aura pas atteint des taux d’erreur extrêmement faibles » déclairait Anne Moxie, Analyste Senior chez Nucleus Research. Aujourd’hui, la valeur estimée de ce marché est de 1.4 milliard de dollars, mais on s’attend à atteindre les 7.1 milliards en 2024 !

Aspect technique : qu’est-ce qui se cache derrière

Comme d’habitude, on va à présent voir ensemble ce qui se cache derrière la prouesse technologique de Microsoft.

reconnaissance vocale grand vocabulaire
Exemple de système de reconnaissance vocale

A titre de rappel, les réseaux de neurones convolutionnels, abrégés en CNN (convolutional neural network), sont des systèmes qui s’appuient sur la reconnaissance de motifs (on parle de filtres) grâce à un outil mathématique : la convolution. Ils sont principalement utilisés pour la classification d’images, où des centaines de schémas sont appliqués aux images afin d’en extraire toute l’information et de différencier chiens et chats !

D’autre part, les réseaux de neurones récurrents, abrégés en RNN (recurrent neural network), utilisent les informations passées pour prédire l’avenir. Par exemple, ils vont utiliser l’information d’hier pour en déduire ce qu’il faudra dire aujourd’hui. Ils sont beaucoup utilisés, surtout en génération de texte (on utilise les mots qui précèdent pour prédire les suivants, sur votre smartphone notamment). Un algorithme très souvent utilisé dans ce domaine est le Long Short-Term Memory (LSTM).

Le système est ainsi découpé en 6 couches :

1. Modèle acoustique : 2 CNN (VGG + ResNet) et 1 RNN (LSTM)

Le premier CNN est d’architecture VGG, qui s’appuie sur des filtres plus petits mais plus profonds que les convolutions classiques, et applique au total 5 couches de convolutions avant la partie « pooling » (cf le focus sur les MobileNets). Le second est de type ResNet, une architecture qui ajoute cette fois une transformation linéaire de chacune de ses couches d’entrée en ses sorties, en utilisant également l’activation de normalisation de batch.

2. Mécanisme d’attention : 1 CNN (LACE)

Les mécanismes d’attention sont simplement le fait de concevoir nos algorithmes pour mettre en avant des caractéristiques. Par exemple, pour ajouter une description à une image, on peut procéder de deux manières. Soit on entraîne un LSTM sur toute l’image pour prédire les mots un par un et former la description (ce qui n’est pas performant ni pertinent du tout), soit on découpe l’image en plusieurs morceaux qui seront décrits séparément (comme le ferait un humain : au fond, on voit une montagne, avec devant une rivière qui coule).

LACE fait donc partie de ces CNN qui s’appuient sur ce fameux mécanisme d’attention, en se caractérisant par son « expansion de contexte par couche avec attention ». A noter qu’il s’agit d’une variante des Time Delay Neural Network (TDNN), très utilisés en reconnaissance vocale (pour classifier les phonèmes par exemple) car ils permettent d’ignorer les décalages temporels dans les schémas à détecter.

3. Optimisation des paramètres du modèle : Treillis libres (MMI)

Pour améliorer les paramètres du modèle et obtenir un meilleur score, un objet mathématique, les « treillis« , a été utilisé à l’aide de la fonction objectif MMI (Maximum Mutual Information).

4. Amélioration des données : Utilisation de l’adaptation basée sur le i-vecteur

Le i-vecteur est une notion apparue en 2013 afin d’améliorer la reconnaissance vocale. Il s’agit d’ajouter en entrée du réseau des vecteurs identités (i-vector) qui sont des signatures de parties de l’audio (généralement de bouts de phonèmes), qui permettent, à terme, d’identifier les interlocuteurs.

5. Retour sur le score du modèle de langage : multiples RNN (LM)

Les Language Model (LM) RNN (RNNLM) sont à double sens : certains vont de l’avant et d’autres à l’envers, pour assurer de meilleurs résultats d’analyse.

6. Aide à la décision dans la transcription : plusieurs CNS et BSS

Dernière étape, un système de combinaison de réseaux de confusion (CNS) est couplé avec un système de recherche du meilleur sous-ensemble (BSS) pour trancher parmi les propositions des réseaux et ne garder que la meilleure.

Nouveautés depuis la publication

exemple reconnaissance vocale en deux temps
Ancienne méthode pour aborder un assistant personnel

Si la reconnaissance vocale n’est pas jeune, les techniques ont beaucoup évoluées. De plus en plus de start-up se lancent dans l’aventure, bien souvent partant sur des modèles dits « end-to-end » lorsqu’il s’agit de fournir une réponse en sortie.

En effet, le véritable enjeu derrière la reconnaissance vocale est évidemment les chatbots et les assistants personnels, qui investissent chaque année davantage nos vies (Hey Google, Alexa, Siri…) : si jusqu’à présent on découpait le travail entre « transcrire ce qui a été dit » puis « répondre », les nouveaux modèles end-to-end répondent directement à l’utilisateur (comme un humain le ferait).

On citera notamment cet article de Google expliquant ce qu’il se cache derrière et comment la performance de Microsoft de l’année dernière pourrait être dépassée, en particulier vis-à-vis des erreurs de prononciation. Quoi qu’il en soit, les derniers pourcents d’erreur, comme à l’accoutumée, seront très difficile à atteindre.

PARTAGER
Article précédentJournée entreprises autour de l’IA à Bordeaux
Article suivantQuelle distance choisir en machine learning
Lambert R.
Ingénieur d'Etudes et Data Scientist depuis plusieurs années, mes travaux et mon parcours scolaire (master en mathématiques fondamentales) m'ont amené aux abords de l'intelligence artificielle. Aujourd'hui j'écris des articles en data science, deep learning, big data et intelligence artificielle pour PenseeArtificielle.fr, dans le but de promouvoir et vulgariser les promesses d'avenir qu'offrent ces domaines de pointe.

1 commentaire

  1. […] Ensuite, chaque segment rattaché à des portions de texte est annoté à partir d’un ensemble d’étiquettes disponibles et caractérisant les politiques : on associe des classes aux segments et non de manière générique, approche que l’on a vu tout récemment dans notre article sur la reconnaissance vocale. […]