Comment une équipe a fait du rêve de la reconnaissance vocale une réalité

Lorsque Françoise a rejoint Google en 2005, la reconnaissance vocale n'était qu'un domaine expérimental, encore dans sa première décennie d'utilisation de la modélisation statistique pour évaluer l'exactitude d'une traduction. "Lorsque nous avons commencé à travailler sur la reconnaissance vocale chez Google, ce n'était qu'un petit projet de recherche. Il ne faut pas oublier que c'était avant l'apparition sur le marché des smartphones ou de ce genre de technologies. Le potentiel de la reconnaissance vocale telle qu'elle est utilisée aujourd'hui n'était alors pas aussi évident."

Mais la capacité de Google à traiter rapidement de grands ensembles de données via MapReduce alliée à de nouvelles méthodes de collecte de données et au besoin de proposer la recherche vocale sur les téléphones mobiles a rapidement placé ce "petit projet de recherche" au centre des préoccupations.

L'équipe de reconnaissance vocale de Google a lancé sa première application pour smartphone en 2008, suivie par l'application pour ordinateur de bureau Voice Search en juin 2011, qui n'acceptait alors que les demandes en anglais américain. Les algorithmes originaux de ces solutions pour interpréter la voix en texte étaient entraînés à partir de modèles basés sur des échantillons vocaux de GOOG-411, un produit de reconnaissance vocale expérimental original lancé en 2007 et qui servait à rechercher des numéros de téléphone américains et canadiens.

Au cours des deux années suivantes, l'équipe a développé Voice Search afin d'accepter 50 langues supplémentaires, pour que des millions d'utilisateurs à travers le monde puissent se servir de cet outil. À partir de la même structure logicielle, l'équipe a conçu divers modèles statistiques et a proposé un apprentissage propre à chaque langue pour chaque modèle, en se basant sur les bases de données de mots anonymisés collectés à partir des produits Google. Par exemple, les données textuelles anonymisées tirées de Google.com.br étaient utilisées pour l'apprentissage du modèle linguistique portugais brésilien, et les données de Google.com.mx pour l'espagnol mexicain.

Mais un nouveau problème est rapidement apparu dans les modèles de reconnaissance vocale : Voice Search s'est mis à afficher de plus en plus fréquemment des mots ne voulant rien dire, au lieu de ce que l'utilisateur avait prononcé. "Nous avons vu ces mots étranges commencer à apparaître dans plusieurs langues. Je crois que la première fois que nous avons remarqué ce problème, c'était en coréen. Cela s'est vu tout de suite, car ce mot était en caractères latins : "pp". Et qu'est-ce que cela pouvait bien être, quelque chose comme "pfpf" ? Ou le terme "kdkdkd" a commencé à apparaître en anglais, ce qui ne veut absolument RIEN dire."

Ces mots étranges étaient le premier mystère. Ils ont été rapidement suivis par un deuxième mystère : la reconnaissance vocale a commencé à orthographier incorrectement, de plus en plus fréquemment, des mots courants. Par exemple, lorsque les utilisateurs prononçaient "probably", "probly" s'affichait". Étant de langue maternelle française, Françoise était également curieuse de connaître le résultat du modèle de reconnaissance vocale du français. "J'ai été horrifiée. Ce n'était pas du français. Les résultats ressemblaient souvent à quelque chose écrit par quelqu'un soit n'ayant absolument aucune connaissance du français, soit qui n'avait peut-être même jamais appris à écrire. J'ai remarqué en particulier que le système de reconnaissance vocale avait des problèmes avec les mots composés avec trait d'union, qui sont assez fréquents en français. Il existe un grand nombre de noms de petites villes comme "Châlons-en-Champagne", qui s'affichait sous la forme "Chalonsenchampagne". Les prénoms français courants comme "Jean-François" s'affichaient sous la forme "Jeanfrancois". Cela, bien sûr, pour peu que les phonèmes aient été identifiés correctement, ce qui n'était pas souvent le cas. On se retrouvait donc plutôt avec quelque chose comme "Chalossechempain" ou "Jeafracua"."

Le système de reconnaissance vocale fait appel à trois modèles distincts : le modèle acoustique, le modèle de prononciation et le modèle linguistique. Ces trois modèles étaient entraînés séparément, puis rassemblés dans un graphique de recherche gigantesque. Pour faire simple, la reconnaissance vocale récupère une onde audio, la transmet dans ce graphique de recherche et la laisse trouver le chemin de moindre résistance, c'est-à-dire la séquence de mots présentant la probabilité d'occurrence la plus élevée.

Le modèle acoustique

Le modèle acoustique identifie les phonèmes dont la présence dans un échantillon audio est hautement probable. Il prend une onde, la découpe en petits segments temporels, effectue une analyse de fréquence pour cette entrée particulière et génère une distribution de probabilité sur tous les états des triphones pour cette entrée particulière (les états des triphones modélisent les légères variances de l'onde d'un phone selon qu'il s'agisse du début, du milieu ou de la fin d'une séquence sonore, tout en tenant compte de la variance d'après le contexte d'autres phones proximaux). Le vecteur de fréquence de l'onde, associé à une distribution de probabilité, identifie ainsi les phonèmes dont la présence dans un échantillon audio est plus probable que pour d'autres phonèmes, fournissant ainsi une séquence de phonèmes qui existent dans cette entrée au fil du temps.

Lorsque l'utilisateur prononce "Spa", le modèle acoustique restreint les phones possibles entendus. Les phones probables pour la première lettre sont S ou F, P ou B pour la deuxième, et A ou E pour la troisième. Cela donne les probabilités suivantes : 60 % de chance qu'il s'agisse d'un S, 40 % qu'il s'agisse d'un F, etc.

Le modèle de prononciation

Parallèlement, le modèle de prononciation est appliqué. Pour résumer, il récupère les distributions de probabilité phonémique du modèle acoustique, les compare à un immense lexique définissant les séquences de phonèmes valides pour les mots d'une langue particulière, et limite les séquences de phonèmes possibles à celles qui ont un sens dans cette langue.

Le modèle acoustique a identifié certains phonèmes probables. Le modèle de prononciation indique que "s-p" est une combinaison probable en anglais, mais que les combinaisons "s-b", "f-b" et "f-p" ne se trouvent pas dans le lexique anglais. Les combinaisons "S-p-a" et "S-p-e" existent toutes deux dans le lexique anglais, et les combinaisons "S-b-a", "F-b-a" et "F-p-a" sont éliminées.

Cette liste ne peut bien évidemment pas contenir tous les phonèmes valides pour tous les mots de toutes les langues du monde. C'est pourquoi le modèle utilise un moteur statistique, qui peut générer instantanément des estimations de prononciation à partir d'une orthographe (également estimée !) pour les mots qu'il n'a encore jamais rencontrés. Il essaie d'associer cela avec des mots de la liste, sauf s'il est certain qu'il a distinctement entendu un nouveau mot, auquel cas il apprend ce nouveau mot. Ces nouveaux mots ont généralement un score de probabilité très faible. Ils ne sont donc pratiquement jamais réutilisés, sauf s'il s'agit de la correspondance la plus proche parmi tous les mots possibles du lexique.

Lorsqu'un utilisateur lance une recherche avec le mot "Hobbit", les phones "H-o-b-i-t" sont identifiés. Le modèle est pratiquement sûr d'avoir entendu "h-o-b-i-t", et non pas "h-a-b-i-t". Cela correspond à plusieurs combinaisons phonémiques possibles en anglais (contrairement à "Hbpit", par exemple, qui est impossible), il valide donc le nouveau mot. Il essaie ensuite de deviner la prononciation/l'orthographe de ce nouveau mot, "Hobbit". Si d'autres utilisateurs recherchent ensuite le mot "Hobbit", le modèle va trouver Hobbit. Mais si un utilisateur recherche "Hpbit", le modèle va également trouver Hobbit, puisque c'est le mot le plus ressemblant valide dans le lexique.

Le modèle linguistique

Grâce à la combinaison des modèles acoustiques et de prononciation, nous avons une onde audio en entrée et des mots en sortie. Mais ce n'est pas suffisamment précis pour offrir une recherche vocale fiable, car on ne peut pas simplement enchaîner un mot avec n'importe quel autre : certaines combinaisons de mots sont plus probables que d'autres. C'est là qu'intervient le modèle linguistique, la troisième composante du système de reconnaissance vocale. Il calcule les fréquences de toutes les séquences d'un à cinq mots, restreignant ainsi les séquences de mots possibles qui peuvent être formées à partie des deux modèles précédents aux combinaisons probables dans la langue considérée. L'algorithme de recherche final sélectionne ensuite la séquence de mots valide qui présente la fréquence d'occurrence la plus élevée dans la langue.

Supposons que l'utilisateur dise : "My dog ran away". Les modèles audio et de prononciation identifient diverses possibilités : My ou Mai, Dog ou Dock, Ran ou Ram, Away ou A Whey. Le modèle linguistique examine ces combinaisons et remarque qu'il a rencontré plus fréquemment "my dog ran away" que "Mai dock ram a whey" ou que "my dock ran away" ; il se limite donc à cette combinaison.

Ces trois modèles créent un graphique de recherche immense, à travers lequel les ondes peuvent être transférées pour générer quasi instantanément du texte. Où, dans cet énorme système complexe, trouver la raison de l'augmentation des problèmes évidents d'orthographe  ? Est-ce une raison différente de celle à l'origine de l'augmentation des mots qui ne veulent rien dire ?

Grâce à sa flexibilité, Google comprend les utilisateurs même lorsqu'ils font une faute de frappe.

Les modèles reposent tous sur un corpus de données considérable, par exemple toutes les recherches saisies dans YouTube ou dans Google Maps, ou simplement saisies sur Google.com. Arrêtons-nous un instant et réfléchissons à la grammaire, à l'orthographe et à la structure des phrases de la plupart des requêtes de recherche saisies.

Comme l'explique Françoise : "Grâce à sa flexibilité, Google comprend les utilisateurs même lorsqu'ils font une faute de frappe. De ce fait, de nombreuses personnes ne prennent pas la peine d'orthographier les mots correctement, ni de saisir des caractères spéciaux tels que les traits d'union." C'est très pratique pour les utilisateurs, mais pas vraiment pour la base de données linguistique, qui tire l'essentiel de ses données d'analyses statistiques des requêtes de recherche agrégées anonymisées. Si un mot mal orthographié apparaît suffisamment souvent, la probabilité que le modèle de reconnaissance vocale sélectionne, approuve et associe la version mal orthographiée d'un mot aux séquences phonémiques s'accroît. Lorsqu'à la séquence phonémique de l'entrée audio ("Hobbit") et à la représentation orthographique ne correspond aucun mot à forte probabilité dans la liste, le système de reconnaissance vocale élargit sa recherche pour trouver une séquence phonémique similaire (la séquence "hpbit" mentionnée précédemment, ou une version mal orthographiée de "habit", par exemple "hobit"). Et si ce terme mal orthographié apparaît suffisamment de fois dans les journaux de recherche, il peut être choisi par le système. De plus, les utilisateurs avalent souvent certaines syllabes ou certains phonèmes lorsqu'ils parlent ("chuis" au lieu de "je suis"). Ainsi, le modèle de prononciation associe des séquences phonémiques prononcées incorrectement avec une fréquence croissante. Au bout d'un moment, ces versions prononcées incorrectement sont suffisamment fréquentes pour devenir la version par défaut, et la prononciation correcte est considérée comme une erreur ou un bruit. C'est ainsi que le système de reconnaissance vocale se retrouve avec un mot prononcé incorrectement qui correspond vaguement à un mot mal orthographié, et génère ces termes qui ne veulent rien dire, au lieu des termes que l'utilisateur souhaitait.

Apprentissage constant du système de reconnaissance

Et qu'en est-il de "pp" et de "kdkdkd", qui ne peuvent être expliqués par des problèmes de prononciation ? Il s'avère que ces termes étranges étaient causés par un bruit de fond. "Par exemple, dans le cas de "kdkdkd", nous avons découvert dans nos données des échantillons de bruit qui ressemblaient au bruit d'un train sur des rails, et que les segments audio étaient fréquemment produits lorsque les utilisateurs étaient à bord d'un train", explique Françoise. "Nous avons conclu qu'il devait s'agir du bruit des rails du train, dont les échantillons audio, peu audibles et de faible qualité, étaient captés par le système et identifiés phonémiquement comme "kdkdkd". Le modèle de reconnaissance vocale essayait ensuite d'associer cela à un mot, et a sélectionné le terme à faible probabilité "kdkdkd" dans une série aléatoire de termes mal orthographiés qu'il a un jour consignés et ajoutés au lexique. Le modèle linguistique a probablement rejeté ce terme au départ, mais en raison des boucles de retour des journaux de résultats de la reconnaissance vocale, il a commencé petit à petit à considérer "kdkdkd' comme un mot légitime suffisamment fréquent pour être sélectionné. Les erreurs de reconnaissance vocale étaient dues à une combinaison complexe de fautes de frappe des utilisateurs, d'apprentissage automatique et d'associations au bruit de fond forcées par le modèle de prononciation, ce qui, au fil du temps, a introduit des mots mal orthographiés et mal prononcés dans la séquence d'apprentissage automatique des algorithmes.

"Le modèle de prononciation trouve de plus en plus fréquemment ces mots massacrés, si bien qu'il finit par les considérer comme hautement probables ET correspondant à l'entrée acoustique", explique Françoise. "Ainsi, tout va bien et le système continue à générer ces termes parasites sans que cela ne lui pose le moindre souci. Il consigne à nouveau ces termes, qu'il réinjecte pour l'apprentissage automatique du modèle, et ainsi de suite."

"Briser ce cercle vicieux n'a pas été une mince affaire, car il nous a fallu examiner tout le système pour trouver précisément où se trouvaient les points de défaillance. Et il nous a fallu trouver des manières astucieuses pour initialiser ces modèles et corriger les erreurs, sans perdre en performances ni en rapidité. Je n'ai vraiment pas envie de perdre deux secondes à attendre que mon téléphone transcrive le mot que je viens de prononcer."

Bien que le volume de données disponibles était vital au début du projet pour permettre le type d'association statistique requis pour une bonne précision, dans ce cas, la taille du corpus a joué contre Françoise et son équipe. "Il est extrêmement difficile de corriger ces erreurs, car dans un domaine comme celui de la reconnaissance vocale où tout est statistique, souvent nous utilisons des modèles existants, dans lesquelles nous injectons des données pour obtenir des données de plus en plus fiables. Puis nous faisons ingérer ces données au modèle de nouvelle génération. Il est donc très douloureux d'arriver au point où l'on se dit : "Je jette tout et je recommence à zéro". Cela reviendrait à dire, dans le contexte d'un moteur de recherche : Je jette l'intégralité de l'index, parce que j'ai corrigé un élément". Mais c'est ce que nous faisons, nous extirpons les erreurs chaque fois qu'elles apparaissent, maintenant que nous avons enfin découvert la cause du problème."

Chaque défi résolu/raisolu complète nos connaissances/conèssences

Il reste cependant bien d'autres défis à résoudre pour Françoise et son équipe. La reconnaissance vocale est déjà utilisée dans des produits tels que la recherche Google, Google Now, Android, et Google Voice, mais non loin du bureau de Françoise se trouvent des équipes qui intègrent la recherche vocale comme principal mode d'interaction avec un appareil, afin de proposer des technologies révolutionnaires comme les Google Glass, la montre Google, et les voitures sans conducteur. Ce qui amène de nouveaux défis : "Dans les Google Glass, le microphone ne se trouve plus devant votre bouche, et peut-être que vous marchez dans la rue et qu'il y a tout un tas de bruits qui sont captés", explique-t-elle. "Il n'est pas possible d'obtenir de bons résultats avec nos algorithmes actuels, dont les bases de données de sons et de mots sont constituées à partir de données capturées par un microphone orienté vers l'avant. De même, si vous parlez à une voiture sans conducteur ou à une montre Google, le microphone est beaucoup plus loin et dans une position complètement différente. Nous devons trouver de nouvelles manières d'adapter nos algorithmes de reconnaissance vocale à ces environnements."

Et en ce qui concerne Françoise, la taille et l'étendue de ces défis sont à la hauteur de sa passion pour la reconnaissance vocale et l'apprentissage automatique chez Google. "La reconnaissance vocale est une technologie fantastique, c'est un jouet pour moi. Bien que je travaille dessus depuis plus de 20 ans, je m'amuse toujours autant chaque jour, car il y a toujours de nouveaux problèmes à résoudre. Et bien sûr, assister à l'explosion d'une technologie sur laquelle vous travaillez depuis le début telle que la reconnaissance vocale a connu, et voir son impact sur des millions de gens chaque jour… c'est une satisfaction énorme."

Pourquoi est-elle si heureuse de travailler dans un domaine qui la passionne au sein d'une entreprise telle que Google ? "Pour bien fonctionner, la reconnaissance vocale nécessite une quantité considérable de données et de machines. Et Google est l'une des rares entreprises où ces deux conditions sont réunies à une telle échelle. L'ensemble de la chaîne, du produit aux utilisateurs, et le retour constant garantissent un rythme sans précédent pour l'apprentissage automatique et la modélisation linguistique. Je ne pense pas qu'aucune autre entreprise ne soit dans une position lui permettant de réussir tout cela."

Si je pense à mon objectif ambitieux à long terme, qui est d'améliorer la reconnaissance vocale afin qu'elle fonctionne parfaitement pour toute personne sur Terre, je pense qu'on peut y arriver. Je n'imagine pas de meilleur endroit que Google pour y parvenir.

Françoise est chercheuse chez Google, où elle dirige une équipe d'ingénieurs logiciel, de chercheurs et de linguistes qui travaillent à repousser les limites de la technologie de reconnaissance vocale.

Comment une équipe a fait du rêve de la reconnaissance vocale une réalité

Lorsque Françoise a rejoint Google en 2005, la reconnaissance vocale n'était qu'un domaine expérimental, encore dans sa première décennie d'utilisation de la modélisation statistique pour évaluer l'exactitude d'une traduction. "Lorsque nous avons commencé à travailler sur la reconnaissance vocale chez Google, ce n'était qu'un petit projet de recherche. Il ne faut pas oublier que c'était avant l'apparition sur le marché des smartphones ou de ce genre de technologies. Le potentiel de la reconnaissance vocale telle qu'elle est utilisée aujourd'hui n'était alors pas aussi évident."

Mais la capacité de Google à traiter rapidement de grands ensembles de données via MapReduce alliée à de nouvelles méthodes de collecte de données et au besoin de proposer la recherche vocale sur les téléphones mobiles a rapidement placé ce "petit projet de recherche" au centre des préoccupations.

L'équipe de reconnaissance vocale de Google a lancé sa première application pour smartphone en 2008, suivie par l'application pour ordinateur de bureau Voice Search en juin 2011, qui n'acceptait alors que les demandes en anglais américain. Les algorithmes originaux de ces solutions pour interpréter la voix en texte étaient entraînés à partir de modèles basés sur des échantillons vocaux de GOOG-411, un produit de reconnaissance vocale expérimental original lancé en 2007 et qui servait à rechercher des numéros de téléphone américains et canadiens.

Au cours des deux années suivantes, l'équipe a développé Voice Search afin d'accepter 50 langues supplémentaires, pour que des millions d'utilisateurs à travers le monde puissent se servir de cet outil. À partir de la même structure logicielle, l'équipe a conçu divers modèles statistiques et a proposé un apprentissage propre à chaque langue pour chaque modèle, en se basant sur les bases de données de mots anonymisés collectés à partir des produits Google. Par exemple, les données textuelles anonymisées tirées de Google.com.br étaient utilisées pour l'apprentissage du modèle linguistique portugais brésilien, et les données de Google.com.mx pour l'espagnol mexicain.

Mais un nouveau problème est rapidement apparu dans les modèles de reconnaissance vocale : Voice Search s'est mis à afficher de plus en plus fréquemment des mots ne voulant rien dire, au lieu de ce que l'utilisateur avait prononcé. "Nous avons vu ces mots étranges commencer à apparaître dans plusieurs langues. Je crois que la première fois que nous avons remarqué ce problème, c'était en coréen. Cela s'est vu tout de suite, car ce mot était en caractères latins : "pp". Et qu'est-ce que cela pouvait bien être, quelque chose comme "pfpf" ? Ou le terme "kdkdkd" a commencé à apparaître en anglais, ce qui ne veut absolument RIEN dire."

Ces mots étranges étaient le premier mystère. Ils ont été rapidement suivis par un deuxième mystère : la reconnaissance vocale a commencé à orthographier incorrectement, de plus en plus fréquemment, des mots courants. Par exemple, lorsque les utilisateurs prononçaient "probably", "probly" s'affichait". Étant de langue maternelle française, Françoise était également curieuse de connaître le résultat du modèle de reconnaissance vocale du français. "J'ai été horrifiée. Ce n'était pas du français. Les résultats ressemblaient souvent à quelque chose écrit par quelqu'un soit n'ayant absolument aucune connaissance du français, soit qui n'avait peut-être même jamais appris à écrire. J'ai remarqué en particulier que le système de reconnaissance vocale avait des problèmes avec les mots composés avec trait d'union, qui sont assez fréquents en français. Il existe un grand nombre de noms de petites villes comme "Châlons-en-Champagne", qui s'affichait sous la forme "Chalonsenchampagne". Les prénoms français courants comme "Jean-François" s'affichaient sous la forme "Jeanfrancois". Cela, bien sûr, pour peu que les phonèmes aient été identifiés correctement, ce qui n'était pas souvent le cas. On se retrouvait donc plutôt avec quelque chose comme "Chalossechempain" ou "Jeafracua"."

Le système de reconnaissance vocale fait appel à trois modèles distincts : le modèle acoustique, le modèle de prononciation et le modèle linguistique. Ces trois modèles étaient entraînés séparément, puis rassemblés dans un graphique de recherche gigantesque. Pour faire simple, la reconnaissance vocale récupère une onde audio, la transmet dans ce graphique de recherche et la laisse trouver le chemin de moindre résistance, c'est-à-dire la séquence de mots présentant la probabilité d'occurrence la plus élevée.

Le modèle acoustique

Le modèle acoustique identifie les phonèmes dont la présence dans un échantillon audio est hautement probable. Il prend une onde, la découpe en petits segments temporels, effectue une analyse de fréquence pour cette entrée particulière et génère une distribution de probabilité sur tous les états des triphones pour cette entrée particulière (les états des triphones modélisent les légères variances de l'onde d'un phone selon qu'il s'agisse du début, du milieu ou de la fin d'une séquence sonore, tout en tenant compte de la variance d'après le contexte d'autres phones proximaux). Le vecteur de fréquence de l'onde, associé à une distribution de probabilité, identifie ainsi les phonèmes dont la présence dans un échantillon audio est plus probable que pour d'autres phonèmes, fournissant ainsi une séquence de phonèmes qui existent dans cette entrée au fil du temps.

Lorsque l'utilisateur prononce "Spa", le modèle acoustique restreint les phones possibles entendus. Les phones probables pour la première lettre sont S ou F, P ou B pour la deuxième, et A ou E pour la troisième. Cela donne les probabilités suivantes : 60 % de chance qu'il s'agisse d'un S, 40 % qu'il s'agisse d'un F, etc.

Le modèle de prononciation

Parallèlement, le modèle de prononciation est appliqué. Pour résumer, il récupère les distributions de probabilité phonémique du modèle acoustique, les compare à un immense lexique définissant les séquences de phonèmes valides pour les mots d'une langue particulière, et limite les séquences de phonèmes possibles à celles qui ont un sens dans cette langue.

Le modèle acoustique a identifié certains phonèmes probables. Le modèle de prononciation indique que "s-p" est une combinaison probable en anglais, mais que les combinaisons "s-b", "f-b" et "f-p" ne se trouvent pas dans le lexique anglais. Les combinaisons "S-p-a" et "S-p-e" existent toutes deux dans le lexique anglais, et les combinaisons "S-b-a", "F-b-a" et "F-p-a" sont éliminées.

Cette liste ne peut bien évidemment pas contenir tous les phonèmes valides pour tous les mots de toutes les langues du monde. C'est pourquoi le modèle utilise un moteur statistique, qui peut générer instantanément des estimations de prononciation à partir d'une orthographe (également estimée !) pour les mots qu'il n'a encore jamais rencontrés. Il essaie d'associer cela avec des mots de la liste, sauf s'il est certain qu'il a distinctement entendu un nouveau mot, auquel cas il apprend ce nouveau mot. Ces nouveaux mots ont généralement un score de probabilité très faible. Ils ne sont donc pratiquement jamais réutilisés, sauf s'il s'agit de la correspondance la plus proche parmi tous les mots possibles du lexique.

Lorsqu'un utilisateur lance une recherche avec le mot "Hobbit", les phones "H-o-b-i-t" sont identifiés. Le modèle est pratiquement sûr d'avoir entendu "h-o-b-i-t", et non pas "h-a-b-i-t". Cela correspond à plusieurs combinaisons phonémiques possibles en anglais (contrairement à "Hbpit", par exemple, qui est impossible), il valide donc le nouveau mot. Il essaie ensuite de deviner la prononciation/l'orthographe de ce nouveau mot, "Hobbit". Si d'autres utilisateurs recherchent ensuite le mot "Hobbit", le modèle va trouver Hobbit. Mais si un utilisateur recherche "Hpbit", le modèle va également trouver Hobbit, puisque c'est le mot le plus ressemblant valide dans le lexique.

Le modèle linguistique

Grâce à la combinaison des modèles acoustiques et de prononciation, nous avons une onde audio en entrée et des mots en sortie. Mais ce n'est pas suffisamment précis pour offrir une recherche vocale fiable, car on ne peut pas simplement enchaîner un mot avec n'importe quel autre : certaines combinaisons de mots sont plus probables que d'autres. C'est là qu'intervient le modèle linguistique, la troisième composante du système de reconnaissance vocale. Il calcule les fréquences de toutes les séquences d'un à cinq mots, restreignant ainsi les séquences de mots possibles qui peuvent être formées à partie des deux modèles précédents aux combinaisons probables dans la langue considérée. L'algorithme de recherche final sélectionne ensuite la séquence de mots valide qui présente la fréquence d'occurrence la plus élevée dans la langue.

Supposons que l'utilisateur dise : "My dog ran away". Les modèles audio et de prononciation identifient diverses possibilités : My ou Mai, Dog ou Dock, Ran ou Ram, Away ou A Whey. Le modèle linguistique examine ces combinaisons et remarque qu'il a rencontré plus fréquemment "my dog ran away" que "Mai dock ram a whey" ou que "my dock ran away" ; il se limite donc à cette combinaison.

Ces trois modèles créent un graphique de recherche immense, à travers lequel les ondes peuvent être transférées pour générer quasi instantanément du texte. Où, dans cet énorme système complexe, trouver la raison de l'augmentation des problèmes évidents d'orthographe  ? Est-ce une raison différente de celle à l'origine de l'augmentation des mots qui ne veulent rien dire ?

Grâce à sa flexibilité, Google comprend les utilisateurs même lorsqu'ils font une faute de frappe.

Les modèles reposent tous sur un corpus de données considérable, par exemple toutes les recherches saisies dans YouTube ou dans Google Maps, ou simplement saisies sur Google.com. Arrêtons-nous un instant et réfléchissons à la grammaire, à l'orthographe et à la structure des phrases de la plupart des requêtes de recherche saisies.

Comme l'explique Françoise : "Grâce à sa flexibilité, Google comprend les utilisateurs même lorsqu'ils font une faute de frappe. De ce fait, de nombreuses personnes ne prennent pas la peine d'orthographier les mots correctement, ni de saisir des caractères spéciaux tels que les traits d'union." C'est très pratique pour les utilisateurs, mais pas vraiment pour la base de données linguistique, qui tire l'essentiel de ses données d'analyses statistiques des requêtes de recherche agrégées anonymisées. Si un mot mal orthographié apparaît suffisamment souvent, la probabilité que le modèle de reconnaissance vocale sélectionne, approuve et associe la version mal orthographiée d'un mot aux séquences phonémiques s'accroît. Lorsqu'à la séquence phonémique de l'entrée audio ("Hobbit") et à la représentation orthographique ne correspond aucun mot à forte probabilité dans la liste, le système de reconnaissance vocale élargit sa recherche pour trouver une séquence phonémique similaire (la séquence "hpbit" mentionnée précédemment, ou une version mal orthographiée de "habit", par exemple "hobit"). Et si ce terme mal orthographié apparaît suffisamment de fois dans les journaux de recherche, il peut être choisi par le système. De plus, les utilisateurs avalent souvent certaines syllabes ou certains phonèmes lorsqu'ils parlent ("chuis" au lieu de "je suis"). Ainsi, le modèle de prononciation associe des séquences phonémiques prononcées incorrectement avec une fréquence croissante. Au bout d'un moment, ces versions prononcées incorrectement sont suffisamment fréquentes pour devenir la version par défaut, et la prononciation correcte est considérée comme une erreur ou un bruit. C'est ainsi que le système de reconnaissance vocale se retrouve avec un mot prononcé incorrectement qui correspond vaguement à un mot mal orthographié, et génère ces termes qui ne veulent rien dire, au lieu des termes que l'utilisateur souhaitait.

Apprentissage constant du système de reconnaissance

Et qu'en est-il de "pp" et de "kdkdkd", qui ne peuvent être expliqués par des problèmes de prononciation ? Il s'avère que ces termes étranges étaient causés par un bruit de fond. "Par exemple, dans le cas de "kdkdkd", nous avons découvert dans nos données des échantillons de bruit qui ressemblaient au bruit d'un train sur des rails, et que les segments audio étaient fréquemment produits lorsque les utilisateurs étaient à bord d'un train", explique Françoise. "Nous avons conclu qu'il devait s'agir du bruit des rails du train, dont les échantillons audio, peu audibles et de faible qualité, étaient captés par le système et identifiés phonémiquement comme "kdkdkd". Le modèle de reconnaissance vocale essayait ensuite d'associer cela à un mot, et a sélectionné le terme à faible probabilité "kdkdkd" dans une série aléatoire de termes mal orthographiés qu'il a un jour consignés et ajoutés au lexique. Le modèle linguistique a probablement rejeté ce terme au départ, mais en raison des boucles de retour des journaux de résultats de la reconnaissance vocale, il a commencé petit à petit à considérer "kdkdkd' comme un mot légitime suffisamment fréquent pour être sélectionné. Les erreurs de reconnaissance vocale étaient dues à une combinaison complexe de fautes de frappe des utilisateurs, d'apprentissage automatique et d'associations au bruit de fond forcées par le modèle de prononciation, ce qui, au fil du temps, a introduit des mots mal orthographiés et mal prononcés dans la séquence d'apprentissage automatique des algorithmes.

"Le modèle de prononciation trouve de plus en plus fréquemment ces mots massacrés, si bien qu'il finit par les considérer comme hautement probables ET correspondant à l'entrée acoustique", explique Françoise. "Ainsi, tout va bien et le système continue à générer ces termes parasites sans que cela ne lui pose le moindre souci. Il consigne à nouveau ces termes, qu'il réinjecte pour l'apprentissage automatique du modèle, et ainsi de suite."

"Briser ce cercle vicieux n'a pas été une mince affaire, car il nous a fallu examiner tout le système pour trouver précisément où se trouvaient les points de défaillance. Et il nous a fallu trouver des manières astucieuses pour initialiser ces modèles et corriger les erreurs, sans perdre en performances ni en rapidité. Je n'ai vraiment pas envie de perdre deux secondes à attendre que mon téléphone transcrive le mot que je viens de prononcer."

Bien que le volume de données disponibles était vital au début du projet pour permettre le type d'association statistique requis pour une bonne précision, dans ce cas, la taille du corpus a joué contre Françoise et son équipe. "Il est extrêmement difficile de corriger ces erreurs, car dans un domaine comme celui de la reconnaissance vocale où tout est statistique, souvent nous utilisons des modèles existants, dans lesquelles nous injectons des données pour obtenir des données de plus en plus fiables. Puis nous faisons ingérer ces données au modèle de nouvelle génération. Il est donc très douloureux d'arriver au point où l'on se dit : "Je jette tout et je recommence à zéro". Cela reviendrait à dire, dans le contexte d'un moteur de recherche : Je jette l'intégralité de l'index, parce que j'ai corrigé un élément". Mais c'est ce que nous faisons, nous extirpons les erreurs chaque fois qu'elles apparaissent, maintenant que nous avons enfin découvert la cause du problème."

Chaque défi résolu/raisolu complète nos connaissances/conèssences

Il reste cependant bien d'autres défis à résoudre pour Françoise et son équipe. La reconnaissance vocale est déjà utilisée dans des produits tels que la recherche Google, Google Now, Android, et Google Voice, mais non loin du bureau de Françoise se trouvent des équipes qui intègrent la recherche vocale comme principal mode d'interaction avec un appareil, afin de proposer des technologies révolutionnaires comme les Google Glass, la montre Google, et les voitures sans conducteur. Ce qui amène de nouveaux défis : "Dans les Google Glass, le microphone ne se trouve plus devant votre bouche, et peut-être que vous marchez dans la rue et qu'il y a tout un tas de bruits qui sont captés", explique-t-elle. "Il n'est pas possible d'obtenir de bons résultats avec nos algorithmes actuels, dont les bases de données de sons et de mots sont constituées à partir de données capturées par un microphone orienté vers l'avant. De même, si vous parlez à une voiture sans conducteur ou à une montre Google, le microphone est beaucoup plus loin et dans une position complètement différente. Nous devons trouver de nouvelles manières d'adapter nos algorithmes de reconnaissance vocale à ces environnements."

Et en ce qui concerne Françoise, la taille et l'étendue de ces défis sont à la hauteur de sa passion pour la reconnaissance vocale et l'apprentissage automatique chez Google. "La reconnaissance vocale est une technologie fantastique, c'est un jouet pour moi. Bien que je travaille dessus depuis plus de 20 ans, je m'amuse toujours autant chaque jour, car il y a toujours de nouveaux problèmes à résoudre. Et bien sûr, assister à l'explosion d'une technologie sur laquelle vous travaillez depuis le début telle que la reconnaissance vocale a connu, et voir son impact sur des millions de gens chaque jour… c'est une satisfaction énorme."

Pourquoi est-elle si heureuse de travailler dans un domaine qui la passionne au sein d'une entreprise telle que Google ? "Pour bien fonctionner, la reconnaissance vocale nécessite une quantité considérable de données et de machines. Et Google est l'une des rares entreprises où ces deux conditions sont réunies à une telle échelle. L'ensemble de la chaîne, du produit aux utilisateurs, et le retour constant garantissent un rythme sans précédent pour l'apprentissage automatique et la modélisation linguistique. Je ne pense pas qu'aucune autre entreprise ne soit dans une position lui permettant de réussir tout cela."

Si je pense à mon objectif ambitieux à long terme, qui est d'améliorer la reconnaissance vocale afin qu'elle fonctionne parfaitement pour toute personne sur Terre, je pense qu'on peut y arriver. Je n'imagine pas de meilleur endroit que Google pour y parvenir.

Françoise est chercheuse chez Google, où elle dirige une équipe d'ingénieurs logiciel, de chercheurs et de linguistes qui travaillent à repousser les limites de la technologie de reconnaissance vocale.