Attirer l’attention d’un ordinateur et entamer une conversation

Avec l’essor des assistants virtuels à commande vocale au fil des ans, la vue de personnes parlant à divers appareils électriques en public et en privé est devenue plutôt courante. Bien que ces interfaces vocales soient résolument utiles dans diverses situations, elles s’accompagnent également de complications. L’un d’eux sont les phrases de déclenchement ou les mots de réveil que les assistants vocaux écoutent lorsqu’ils sont en veille. Tout comme dans Star Trek, où prononcer « Ordinateur » attirerait l’attention de l’ordinateur, nous avons également notre « Siri », « Cortana » et une gamme de phrases de déclenchement personnalisées qui activent l’interface vocale.

Contrairement à Star Trek, cependant, nos assistants virtuels ne savent pas quand nous désirons vraiment interagir. Incapables de distinguer le contexte, ils répondront avec plaisir à quelqu’un à la télévision en mentionnant leur phrase déclencheur. Cela peut être suivi d’un bon de commande ridicule ou d’un autre méfait. La réalisation ici est la complexité des interfaces basées sur la voix, tout en manquant toujours de tout sens de la conscience de soi ou de l’intelligence.

Un autre problème est que le processus de reconnaissance vocale lui-même est très gourmand en ressources, ce qui limite la quantité de traitement pouvant être effectuée sur l’appareil local. Cela conduit généralement les assistants vocaux comme Siri, Alexa, Cortana et d’autres à traiter les voix enregistrées dans un centre de données, avec des implications évidentes en matière de confidentialité.

Dis juste mon nom

Radio Rex, un ravissant jouet des années 20 pour petits et grands (Crédit : Emre Sevinç)
Radio Rex, un ravissant jouet des années 20 pour petits et grands (Crédit : Emre Sevinç)

L’idée d’un mot déclencheur qui active un système est ancienne, l’un des premiers exemples pratiques connus datant d’environ cent ans. Cela se présentait sous la forme d’un jouet appelé Radio Rex, qui comportait un chien robot qui s’asseyait dans sa petite niche jusqu’à ce que son nom soit appelé. En ce moment, il sautait dehors pour saluer la personne qui l’appelait.

La façon dont cela a été mis en œuvre était simple et plutôt limitée grâce aux technologies disponibles dans les années 1910 et 1920. Il utilisait essentiellement l’énergie acoustique d’un formant correspondant à peu près à la voyelle [eh] dans « Rex ». Comme l’ont noté certains, un problème avec Radio Rex est qu’il est réglé sur 500 Hz, ce qui serait le [eh] voyelle lorsqu’elle est prononcée par une voix masculine adulte (moyenne).

Cela signifiait tragiquement que pour les enfants et les femmes, Rex refusait généralement de sortir de sa niche, à moins qu’ils n’utilisent une voyelle différente correspondant à la gamme de fréquences de 500 Hz pour leur gamme vocale. Même alors, ils étaient susceptibles de se heurter à l’autre problème majeur de ce jouet, à savoir celui de la pression acoustique nécessaire. Essentiellement, cela signifiait que des cris pourraient être nécessaires pour faire bouger Rex.

Ce qui est intéressant à propos de ce jouet, c’est qu’à bien des égards, le vieux Rex n’est pas trop différent de la façon dont fonctionnent Siri et ses amis d’aujourd’hui. Le mot déclencheur qui les réveille du mode veille est interprété de manière moins grossière, utilisant un microphone et un matériel et un logiciel de traitement du signal plutôt qu’un engin mécanique, mais l’effet est le même. En mode de recherche de déclenchement à faible puissance, le logiciel de l’assistant compare en permanence les formants des échantillons sonores entrants pour une correspondance avec la signature sonore du ou des mots déclencheurs prédéfinis.

Une fois qu’une correspondance a été détectée et que le mécanisme se met en marche, l’assistant sortira de sa maison numérique en passant à son mode de traitement vocal complet. À ce stade, un assistant autonome – comme on peut le trouver dans les voitures plus anciennes, par exemple – peut utiliser un simple modèle de Markov caché (HMM) pour essayer de reconstituer l’intention de l’utilisateur. Un tel modèle est généralement entraîné sur un modèle de vocabulaire assez simple. Un tel modèle sera spécifique à une langue particulière et souvent à un accent et/ou dialecte régional pour augmenter la précision.

Trop grand pour la niche

Les composants internes du jouet Radio Rex.  (Crédit : Emre Sevinç)
Les composants internes du jouet Radio Rex. (Crédit : Emre Sevinç)

Même s’il serait bien d’exécuter toute la routine de traitement du langage naturel sur le même système, le fait est que la reconnaissance vocale reste très gourmande en ressources. Pas seulement en termes de puissance de traitement, car même une approche basée sur HMM doit passer au crible des milliers de chemins probabilistes par énoncé, mais aussi en termes de mémoire. Selon le vocabulaire de l’assistant, le modèle en mémoire peut aller de dizaines de mégaoctets à plusieurs gigaoctets, voire téraoctets. Ce serait évidemment plutôt peu pratique sur le dernier gadget whizbang, smartphone ou smart TV, c’est pourquoi ce traitement est généralement déplacé vers un centre de données.

Lorsque la précision est considérée comme une priorité encore plus importante – comme avec l’assistant Google lorsqu’une requête complexe lui est posée – l’approche HMM est généralement abandonnée pour la nouvelle approche de la mémoire longue à court terme (LSTM). Bien que les RNN basés sur LSTM traitent beaucoup mieux les phrases plus longues, ils s’accompagnent également d’exigences de traitement et d’utilisation de la mémoire beaucoup plus élevées.

Avec l’état de l’art actuel de la reconnaissance vocale qui évolue vers des modèles de réseaux neuronaux de plus en plus complexes, il semble peu probable que ces exigences système soient dépassées par le progrès technologique.

Comme point de référence de ce qu’un système bas de gamme de base au niveau d’un ordinateur monocarte comme un Raspberry Pi pourrait être capable de faire avec la reconnaissance vocale, nous pouvons regarder un projet comme CMU Sphinx, développé à l’Université Carnegie Mellon. La version destinée aux systèmes embarqués s’appelle PocketSphinx et, comme ses versions plus grandes, utilise une approche basée sur HMM. Dans la FAQ Spinx, il est explicitement mentionné que les grands vocabulaires ne fonctionneront pas sur les SBC comme le Raspberry Pi en raison de la RAM et de la puissance CPU limitées sur ces plates-formes.

Lorsque vous limitez le vocabulaire à environ un millier de mots, cependant, le modèle peut tenir dans la RAM et le traitement sera suffisamment rapide pour apparaître instantané pour l’utilisateur. C’est bien si vous souhaitez que l’interface vocale n’ait qu’une précision décente, dans les limites des données de formation, tout en n’offrant qu’une interaction limitée. Dans le cas où l’objectif est, par exemple, de permettre à l’utilisateur d’allumer ou d’éteindre une poignée de lumières, cela peut être suffisant. D’un autre côté, si cette interface s’appelle ‘Siri’ ou ‘Alexa’, les attentes pour une telle interface sont beaucoup plus élevées.

Essentiellement, ces assistants virtuels sont censés agir comme s’ils comprenaient le langage naturel, le contexte dans lequel il est utilisé, et répondre d’une manière cohérente avec la manière dont l’interaction humaine civilisée moyenne devrait se produire. Sans surprise, c’est un défi difficile à relever. Le déchargement de la partie reconnaissance vocale vers un centre de données distant et l’utilisation d’échantillons vocaux enregistrés pour former davantage le modèle sont des conséquences naturelles de cette demande.

Pas d’intelligence, juste de bonnes suppositions

Quelque chose dans lequel nous, les humains, sommes naturellement assez bons, et avec lequel nous sommes de plus en plus harcelés pendant notre temps scolaire, s’appelle le « marquage de la partie du discours », également appelé marquage grammatical. C’est là que nous quantifions les parties d’une phrase en ses constituants grammaticaux, y compris les noms, les verbes, les articles, les adjectifs, etc. Cela est essentiel pour comprendre une phrase, car le sens des mots peut changer énormément en fonction de leur classification grammaticale, en particulier dans des langues comme l’anglais avec son utilisation courante des noms comme verbes et vice versa.

En utilisant le balisage grammatical, nous pouvons alors comprendre le sens de la phrase. Pourtant, ce n’est pas ce que font ces assistants virtuels. À l’aide d’un algorithme de Viterbi (pour les HMM) ou d’une approche RNN équivalente, la probabilité est plutôt déterminée que l’entrée donnée corresponde à un sous-ensemble spécifique du modèle de langage. Comme la plupart d’entre nous le savent sans aucun doute, il s’agit d’une approche qui semble presque magique lorsqu’elle fonctionne et vous fait réaliser que Siri est aussi stupide qu’un sac de briques lorsqu’il ne parvient pas à obtenir une correspondance appropriée.

Alors que la demande d’interfaces vocales « intelligentes » augmente, les ingénieurs travailleront sans aucun doute sans relâche pour trouver des méthodes plus ingénieuses pour améliorer la précision du système actuel. La réalité dans un avenir prévisible semble rester celle de l’envoi de données vocales à des centres de données où de puissants systèmes de serveurs peuvent effectuer l’ajustement de courbe de probabilité requis, pour comprendre que vous demandiez « Hey Google » où se trouve le glacier le plus proche. Peu importe que vous demandiez en fait le magasin de vélos le plus proche, mais c’est la technologie pour vous.

Parlez facilement

Peut-être un peu ironique à propos de l’ensemble de l’expérience d’interaction entre le langage naturel et l’ordinateur est que la synthèse vocale est plus ou moins un problème résolu. Dès les années 1980, le Texas Instruments TMS (de renommée Speak & Spell) et les puces vocales General Instrument SP0256 Linear Predictive Coding (LPC) utilisaient une approximation assez grossière du tractus vocal humain afin de synthétiser une voix à consonance humaine.

Au cours des années qui ont suivi. LPC est devenu de plus en plus raffiné pour une utilisation dans la synthèse vocale, tout en trouvant également une utilisation dans le codage et la transmission de la parole. En utilisant la voix d’un humain réel comme base pour un appareil vocal LPC, les assistants virtuels peuvent également basculer entre les voix, permettant à Siri, Cortana, etc. de sonner comme le genre et l’ethnie qui plaisent le plus à un utilisateur final.

Espérons que dans les prochaines décennies, nous pourrons faire fonctionner la reconnaissance vocale ainsi que la synthèse vocale, et peut-être même accorder à ces assistants virtuels un minimum de véritable intelligence.