Accessibilité Mal-voyant

Présentation

Actions HanditecAM

Actions ENSAM

Connaissances

Emploi

Articles

Todo

Rechercher sur le site

...

3-La reconnaissance et la synthèse vocale : Des solutions à certains handicaps

3-1 : Introduction

“La maîtrise des interfaces vocales représente aujourd’hui un enjeu majeur dans l’univers des télécommunications. Intuitives, conviviales et ne nécessitant aucun apprentissage, ces interfaces constituent en effet un mode d’accès particulièrement apprécie des utilisateurs. Simples à mettre en oeuvre et peu coûteuses, elles séduisent aussi de plus en plus d’entreprises, auxquelles elles permettent de créer des services innovants”.

Cette phrase, citée dans par Francis Charpentier, résume bien la situation et toutes les perspectives d’avenir des systèmes à reconnaissance vocale. Qui d’entre nous n’a jamais rêvé de piloter son installation domestique à la voix ? L’homme étant par nature assez paresseux, toutes les inventions lui faisant éviter des efforts physiques lui paraîtront intéressantes. Agir sur l’éclairage, enclencher son matériel audio-vidéo, activer son système d’alarme, commander son ordinateur pourraient alors être pilotés sans aucun interrupteur, ni clavier, ni clé. Outre le rêve et l’aspect ”magique” fort légitimes inspirés par les meilleurs films de sciences-fictions, c’est bien évidemment un confort d’utilisation inégalable auquel on pense en premier lieu quand on envisage ces possibilités.

3-2 : Reconnaissance et synthèse vocale

Lorsqu’on étudie un temps soit peu les systèmes vocaux, on s’aperçoit très rapidement que deux acteurs y jouent le premier rôle : – La reconnaissance vocale (SR, Speech Recognition) – La synthèse vocale (TTS, Text To Speech) Le premier permet à la machine de comprendre et de traiter des informations fournies oralement par un utilisateur humain. Le second permet de reproduire d’une manière sonore un texte qui lui est soumis, comme un humain le ferait.

3-2-1 : Principes de fonctionnement :

3-2-1-1 :La reconnaissance vocale

3-2-1-1-1: Comment ça marche ?

Un système complet de reconnaissance vocal, appelé aussi système de transcription, repose sur des théories bien formalisées : – Analyse spectrale – Théorie de l’information – Programmation dynamique – Modèles de Markov La première partie du système de transcription, qui calcule les paramètres acoustiques, se fonde sur la production de la parole. Schématiquement, la parole est un souffle d’air, modulé au niveau des cordes vocales pour certains sons, qui traversent le conduit vocal. La forme du conduit vocal (position de la langue, de la mâchoire ou des lèvres) détermine des résonances acoustiques, caractéristiques du timbre de chaque phonème. On cherche, au moyen d’une analyse spectrale par fenêtre glissante, à conserver le timbre sonore en le séparant de la modulation des cordes vocales ; de plus, l’analyse est réalisée sur une échelle de fréquences proche de la manière dont les fréquences sont traitées par le système auditif. La deuxième partie du système de transcription, le moteur de reconnaissance, reçoit les paramètres acoustiques et produit en sortie une suite de mots. Il utilise plusieurs sources de connaissances, à savoir : – Des modèles acoustiques : une représentation du timbre des phonèmes – Une modélisation linguistique : quelles sont les phrases qui peuvent être prononcées dans la langue ? – Un dictionnaire des mots de la langue avec leur prononciation phonétique On recherche ensuite la suite de mots la plus probable correspondant aux paramètres acoustiques observés : cela s’appelle le décodage. Une réécriture probabiliste permet de décomposer le problème et de l’exprimer comme la recherche de la suite de mots maximisant conjointement la probabilité de cette phrase dans la langue (estimée par le modèle linguistique) et la probabilité que les paramètres acoustiques correspond à la phrase (estimée par la modélisation acoustique).

3-2-1-1-2 Modèle linguistique
La modélisation linguistique donne la probabilité d’une phrase dans la langue. Ceci est fait en général de manière très simplifiée, on suppose que : la probabilité de la phrase est le produit des probabilités de chacun des mots de la phrase sachant les mots précédents, en se restreignant à un passé de quelques mots. Ces probabilités sont estimées par comptage sur de grandes quantités de textes de référence (par exemple plusieurs années d’archives de journaux contenant des centaines de millions de mots . . .), en se limitant à un passé de 2 ou 3 mois. On ne prend donc pas en compte les dépendances grammaticales `a long terme.

3-2-1-1-3 Modèles acoustiques

La modélisation acoustique représente les phonèmes de la langue au moyen de modèles de Markov cachés. Il s’agit de petits automates probabilistes dont les états modélisent des configurations de l’appareil phonatoire. Les caractéristiques de ces modèles sont estimées sur des corpus de plusieurs centaines d’heures de parole transcrites manuellement.

3-2-1-1-4 Décodage

Ce processus consiste à rechercher le chemin optimal dans le graphe de toutes les phrases possibles. La phrase est construite comme un enchaînement de mots, eux-mêmes constitués de phonèmes chacun modélisés par un petit automate d’états acoustiques. La complexité du décodage est réduite grâce à la programmation dynamique, qui permet de réaliser le décodage dans un temps proportionnel à la durée de la phrase enregistrée, et en utilisant de nombreuses heuristiques pour réduire la taille du graphe.

3-2-1-2 Synthèse vocale

3-2-1-2-1 Comment ça marche ?
Schématiquement, un système de synthèse vocale à partir du texte peut se décomposer en deux parties. La première concerne la transformation du texte en une chaîne de regroupement phonétique appelé : phonème, la seconde est chargée de transformer cette chaîne en données acoustiques à transmettre au synthétiseur. Cette dernière étape dépend de la méthode et de la technique de synthèse choisie. La figure 1 illustre l'organisation des deux modules décrits. Classiquement, les deux modules s'enchaînent linéairement, la sortie du premier module correspondant à l'entrée du second. Un texte est donné en entrée du premier module afin d'être analysé, sur la base de connaissances syntaxiques et prosodiques (ensemble des éléments phoniques : intonation affective, particularismes régionaux, accent tonique, montée mélodique, qui caractérisent le langage parlé) attachées à la langue dans laquelle il est écrit. A l'issu de ce traitement symbolique, une chaîne contenant des phonèmes et des marqueurs prosodiques est produite en fonction des résultats des différentes analyses effectuées. Cette chaîne est elle-même analysée et mise en relation avec une modélisation acoustique de la parole. Cette modélisation sert d'interface avec le module de production, la carte son d'un ordinateur par exemple.

Il est notable que la première partie fait appel à des concepts, des théories et donc des modélisations (syntaxiques, phonologiques…) dépendant de la langue dans laquelle le texte et le signal acoustique sont entrés et émis. La seconde partie, en revanche, utilise des connaissances indépendantes de(s) langue(s) choisie(s) : c'est le traitement du signal ou des considérations phonétiques liées à des réalités physiques plus universelles. Nous pouvons remarquer également, que la tâche d'un synthétiseur est d'implémenter le passage entre la forme et la substance ; la forme est le résultat d'un effort de représentation mentale (la syntaxe par exemple), la substance appartient au monde physique et concret. Si nous approfondissons un peu et que nous nous focalisons sur le traitement linguistique. Nous pouvons dire qu'il se décompose lui-même en plusieurs modules bien définis : repérage des unités graphématiques, analyse syntaxique ou/et pragmatique (nous pouvons envisager ici l'intervention également d'un module sémantique bien qu'à ce jour aucun système n'en soit muni), calcul prosodique, et transcription graphèmes-phonèmes. Nous avons défini et décrit de manière générale ce que peut être un système de synthèse vocale, il faut maintenant dire qu'il est abusif de parler d'un système de synthèse vocale tant il existe de différences importantes et fondamentales entre les systèmes, le seul invariant étant leur but, la production de parole.

3-2-2: Applications dans le domaine de l’handicap

Différents programmes européens ont permis de mieux cerner les différents types de handicap dont souffre la population, ainsi que le nombre de personnes concernées. On dénombre actuellement en Europe 12 millions de mal-voyants dont 1 million de non-voyants, 81 millions de malentendants, dont 1 million de sourds, environ 30 millions de personnes ayant un handicap moteur des membres supérieurs et 50 millions ayant un handicap des membres inférieurs. Ces nombres ne peuvent malheureusement que croître avec le vieillissement de la population. L’intérêt des technologies vocales apparaît évident dans la mesure o`u celles-ci permettent aux personnes handicapées de retrouver une certaine autonomie et de bénéficier d’une meilleure insertion dans leur environnement tant professionnel que familial, la parole se substituant au sens défaillant.

3-2-2-1 Reconnaissance vocale

Commande d’environnement

La société Kempf conçoit et fabrique un système de commandes vocales appelé le Katalavox pour les applications suivantes : –Le contrôle de fauteuils roulants pour tétraplégiques –Le contrôle de fonctions secondaires dans l’automobile pour conducteurs handicapés physiques. Le Katalavox est utilisé par des personnes tétraplégiques, pour contrôler à la voix le fauteuil roulant électrique. Dans certains cas un autre type de microphone peut également être utilisé. Le système de reconnaissance vocale s’adapte à n’importe quelle langue. Même si quelqu’un a des difficultés de prononciation, le système est capable de reconnaître des sons distincts. Il suffit de cinq sons pour contrôler un fauteuil. Les mots de commande sont combinés pour permettre d’émuler les mouvements d’un joystick. Kempf commercialise également un système de contrôle d’environnement. Il permet à des personnes tétraplégiques d’allumer et éteindre des lampes et autres appareils dans leur maison, de contrôler la télévision et des appareils à télécommande infra-rouge, et de répondre au téléphone et composer des numéros de téléphone. Dans les voitures, le katalavox permet de contrôler à la voix les fonctions secondaires, telles que les clignotants, l’essuie-glace, le lave-glace, l’avertisseur, l’éclairage, . . Sur le même principe, la société Protéor a conçu Tetravox, un outil permettant le contrôle d’environnement à commandes vocales. Cette aide technique est utilisable en poste fixe ou sur fauteuil roulant. Elle peut remplacer n’importe quelle commande infra-rouge ; elle peut donc permettre à une personne handicapée d’actionner à distance tous les appareils récepteurs de son choix.

Communications

La reconnaissance vocale permet en outre aux personnes handicapées de communiquer facilement avec le monde extérieur. Il existe en effet de nombreux aussi capables d’envoyer des mails à ses contacts.

Commande de l’ordinateur et navigation sur Internet

La fonction commande de l'ordinateur permet de commander l'environnement et les logiciels à la voix (lancement et fermeture d’un logiciel, commande des menus, action sur les boutons, saisie dans les boites de dialogues...). Certains logiciels permettent même de commander la souris à la voix.

La reconnaissance vocale et la synthèse vocale permettent aussi de naviguer sur Internet en s’affranchissant de la souris et du clavier.

Interactive Speech commercialise un logiciel destiné aux personnes handicapées. Ce logiciel s'intègre dans le navigateur Internet de l'utilisateur, sous la forme d'une barre horizontale. L'utilisateur peut alors prononcer les liens de toute page visionnée pour les 'cliquer par la voix', et ainsi surfer sur tout le web. La personne handicapée, pour qui l'utilisation d'une souris est fatigante ou impossible, a donc accès à une très grande source d'information : le Web.

3-2-2-2 Synthèse vocale

La synthèse vocale est surtout bénéfique aux aveugles et malvoyants. Elle leur permet par exemple de réaliser les applications suivantes :

Lectures d’écran Une synthèse vocale est un système qui transmet les données apparaissant à l'écran de l'ordinateur vers un synthétiseur de telle sorte qu'elles soient émises via un haut-parleur. La synthèse vocale permet ainsi:\\

  • Aux personnes malvoyantes pour qui la lecture à l'écran est trop difficile, lente, fatigante,… malgré un système d'agrandissement
  • Aux personnes qui ne lisent pas à l'écran et qui ne pratiquent pas le braille de manière courante
  • Aux personnes aveugles qui travaillent avec une barrette braille en combinaison avec une synthèse vocale.

Consultation des messages Il existe des logiciels qui permettent aux aveugles et malvoyants de lire leurs mails grâce à la synthèse vocale. Ceci leur permet ainsi de communiquer avec le monde extérieur et de surmonter leur handicap.

3-2-3 Application au projet

3-2-3-1: Intégration dans TINTAGEL de la reconnaissance vocale

Dans le cadre de l’intégration à TINTAGEL, nous avons fait le choix de rendre la reconnaissance vocale équivalente au stick du PDA et non un module à part entière différencié de l’interface. La reconnaissance a donc pour but, à travers un vocabulaire simple (left, right, choose…), de faire comme-ci on venait d’appuyer sur un bouton lorsqu’un mot est reconnu. Cela fut possible sans copier-coller directement le code associé au click sur les boutons en faisant en sorte que la reconnaissance d’un mot modifie un élément ou un autre suivant le mot reconnu et que le bouton associé modifie le même. C’est alors la modification de l’élément en question qui démarrera le code adapté, ainsi reconnaissance et click sont équivalents. Ce principe est présenté dans l’exemple suivant :

3-2-3-2 Première solution trouvée: la SpeechListBox

L’outil SpeechListBox est fourni par Microsoft. Il s’agit d’une ListBox classique possédant, en plus, la reconnaissance vocale. Pratiquement parlant, dès qu’un mot posséder par la liste est vocalement reconnu, il est sélectionné dans la liste. Ainsi, on peut programmer le principe énoncé ci-dessus.

Le module gratuit actuellement fourni par Microsoft est en anglais et d’une qualité, semble-t-il, pour l’instant médiocre, mais il ne s’agit encore que de ses débuts. Son avantage est une utilisation relativement simple d’apparence mais le code utilisé par Microsoft est très complexe et au-delà de nos compétences d’où de grandes difficultés pour l’adapter à notre programme. L’inconvénient majeur est que cet outil n’est pas adaptable au PDA, d’où la nécessité de trouver autre chose.

3-2-3-3 Intégration dans TINTAGEL de la synthèse vocale

Indication de la situation du menu Information de l’état des appareils Signalisation des appareils contrôlés dans une pièce

Dans l’application utilisant la SpeechListBox précédemment citée, est également intégré un module de synthèse vocale permettant de situer l’utilisateur dans le menu, lui permettant ainsi de s’assurer de la reconnaissance du mot prononcé et de savoir où il se situe dans le menu.

Une autre utilisation de la synthèse vocale qui aurait pu être faite était la prononciation de l’état (allumé ou éteint) des différents appareils, permettant ainsi à l’utilisateur de connaître l’état des lieux sans avoir à parcourir tout le menu.

Une dernière utilisation aurait pu être la signalisation de la liste des appareils contrôlés dans chaque pièce, permettant ainsi à l’utilisateur de se remémorer cette liste sans avoir, à nouveau, à parcourir tout le menu.

3-2-4 La commande vocale

Ils existent trois notions à maîtriser lorsque l’on désire programmer une commande vocale sous VisualBasic.Net. La première est les contextes de reconnaissances, la deuxième est la grammaire et la dernière est les règles de grammaire.

3_2_4_1 Le contexte de reconnaissance.

Leur rôle est fondamental. Elles définissent les conditions d’utilisations de la reconnaissance vocale. Notre application a pour but essentiel d’allumer un appareil, de l’éteindre, de faire varier une intensité de chauffage ou d’éclairage. Nous pouvons donc définir un contexte de reconnaissance pour chacune de ces utilisation particulières : « allumer un appareil », « éteindre un appareil » ;… auquel nous pourrons rajouter des fonction secondaires telles « éteindre l’application ». Les usages du contexte de reconnaissance sont multiples. Tout d’abord, ils servent à délimiter les champs de fonctionnement. Le contexte de reconnaissance est identifié par le premier mot reconnu par l’ordinateur. Ainsi, si l’ordinateur capte le mot « allumer », il se mettra automatiquement dans le contexte de reconnaissance « allumer un appareil ». Ainsi, le nombre des mots accepté, les états intermédiaires et les événements son réduits ce qui facilite l’utilisation. Le contexte de reconnaissance possède aussi une liste de mots et les évènements qui sont liés à la reconnaissance.

3_2_4_2 La grammaire

La grammaire est une notion très simple à appréhender. Il s’agit d’une liste de mots qui sont intégrés dans un contexte de reconnaissance. Ces mots correspondent à ce que le programme s’attende à entendre une fois que le contexte est reconnu. Il faut souligner un point de fonctionnement de la reconnaissance vocale. Lorsqu’il perçoit un mot, il va faire des hypothèses avant de choisir un mot. Lorsqu’on implémente des grammaires, il devient beaucoup plus facile pour l’ordinateur d’identifier les mots puisqu’il ne fera des hypothèses qu’à partir de la liste de mots de la grammaire. Ainsi lorsque le mot « allumer » est reconnu, l’ordinateur transite vers un état d’attente. Il va attendre la prononciation d’un autre mot qui apparaît dans la liste des salles de la maison.

Les règles grammaticales
Nous l’avons vu, la prononciation et la reconnaissance d’un mot provoquent un évènement. Cet évènement peut être la transition de l’ordinateur d’un état vers un autre ou le déclenchement d’une commande X10. Dans le contexte « allumer un appareil », l’ordinateur attend que l’on prononce le nom d’une salle de la maison. Lorsque ceci est effectué, l’ordinateur transite vers un nouvel état d’attente où cet fois ci le mot à prononcer sera le nom d’un appareil enregistré comme étant présent dans la pièce précédemment citée. Ce dernier mot, prononcé et reconnu, fait transiter le logiciel vers un état final qui aboutit au lancement d’une procédure afin de commuter l’appareil désigné sur marche.

Les solution envisagées pour notre logiciel
Nous avons vu ci dessus de quelle manière on pouvait programmer la reconnaissance vocale et nous avons illustré nos propos par l’exemple d’une commande directe des appareils par la voix de l’utilisateur. Cette solution nous a semblée a priori attirante puisqu’elle semblait extrêmement instinctive pour l’utilisateur. Cette solution présentait pourtant un désavantage majeur : elle nécessitait un outil mieux adapté que la version actuelle de Microsoft Speech SDK. En effet, ce logiciel gratuit de développement n’est disponible qu’en anglais, japonais et chinois. Nous avons donc tout naturellement songé à installer la version anglaise sur nos ordinateurs de développement. Malheureusement, les versions de reconnaissance vocale ne semblaient comprendre que très partiellement les mots que nous lui prononcions en anglais. L’utilisation d’une commande directe des appareils nécessitait de plus une diction correcte de phrases telles « switch on-saloon-light » pour « allumer-salon-lampe » ou « switch off-kitchen-radiator » pour « éteindre-cuisine-radiateur ». Ces dernières étaient encore moins bien reconnues par le logiciel et les résultats devenaient totalement aléatoires. Nous avons donc songé à une solution plus simple tant au niveau de la programmation qu’au niveau de l’utilisation. Le principe n’était pas de commander directement les appareils mais plutôt de commander l’interface graphique par la voie. Cette solution présente plusieurs avantages. Tout d’abord, elle ne nécessite qu’un seul contexte de reconnaissance, à savoir « manipuler l’interface graphique ». De plus la grammaire ne comportait qu’une liste réduite de mots (« select left », « select right », (select choose ») ce qui favorise la compréhension des mots prononcés. Le but de ces différentes commandes est de simuler un clic de stylet ou de souris, action impossible à accomplir pour une personne présentait peu de coordination des membres supérieurs et de celles atteinte de déficiences visuelles. L’état initial et l’état final ne sont séparés que par un mot de transition ce qui évite la prononciation de phrases entières et tend à fiabiliser la reconnaissance vocale. La solution appliquée

Cette solution n’a pu être implémenter que sur un PC est non sur un Pocket PC car l’ensemble des outils, est notamment la SpeechListBox, fournis par Microsoft Speech SDK n’est pas disponibles sur un PDA. Nous sommes parvenus à obtenir une interface gérable par la voix. Lorsque le mot prononcé est correctement obtenu, nous obtenons les actions souhaitées sur les boutons et nous parvenons à obtenir une action coordonnée. Malheureusement, et en dépit d’une liste de mots des plus réduites, le logiciel semble encore peiner à reconnaître les directives, effectue des hypothèses erronées et finalement lance des procédures non souhaitées. La solution la plus simple mais aussi la plus paradoxale pour obtenir un résultat probant de la reconnaissance vocale a été de faire prononcer les directives par l’outil de synthèse vocale fourni avec Microsoft Speech SDK. L’ordinateur reconnaît la voix anglaise qu’il produit lui-même. Nous avons alors penser à utiliser cette outil de reconnaissance vocale afin que le logiciel nous fournisse des informations sous formes audibles. Ces informations auraient pu être de nature variée : état du PDA, état des appareils, etc… Nous nous sommes limités à demander au logiciel à nous retourner l’état de l’interface.

La reconnaissance des directives « select left » ou « select right » entraînent respectivement la simulation d’un clic sur le bouton gauche ou sur le bouton droit. A chaque clic sur une des flèches, l’intitulé du gros bouton supérieur change et indique le nom d’une pièce. La commande vocale est programmée pour prononcer l’intitulé du bouton à chaque fois que ce dernier change. Ainsi l’utilisateur prononcera l’ordre « select choose » lorsque qu’il aura entendu le nom de la salle qu’il désire contrôler.

Une fois que la pièce désirée a été choisie, l’intitulé du bouton supérieur change de nature, il indique alors l’association pièce appareil. Comme précédemment l’utilisateur fait défiler les appareils disponibles et la voix de synthèse prononce leur nom successivement. Ainsi même un utilisateur mal ou non voyant peut utiliser son installation domotique.

Les perspectives d’avenir de la commande vocale

Elles sont essentiellement liées à l’évolution du logiciel Microsoft Speech SDK. Nous pouvons espérer que dans un futur proche, ce logiciel intègre la langue française et soit implantable sur un PDA ce qui permettraient de rendre cette tache nomade.


<< | RapportDuPDM2005 | >>


Administration - Vue - Imprimer

L'utilisateur du site reconnaît avoir pris connaissance des conditions d'utilisation et de droits d'usage , en accepter et en respecter les dispositions.
Copyright © Association Gadz.org & PmWiki - Page mise à jour le 22/06/2005 09:34