Implémentation d`un système de reconnaissance de la parole sur un
Transcription
Implémentation d`un système de reconnaissance de la parole sur un
1 Rapport de TER Implémentation d’un système de reconnaissance de la parole sur un processeur embarqué Alexandre Aminot, 11 mai 2011 Résumé—Ce rapport décrit les travaux que j’ai réalisés lors de mon Travail Encadré de Recherche (TER). Après avoir présenté le contexte de cette étude, je présente les différents problèmes que j’ai rencontrés ainsi que les résultats obtenus. Ces derniers sont plutôt positifs car j’ai pu implémenter et mettre en œuvre un système de reconnaissance de la parole sur le système embarqué prévu. actuellement le produit e-lio qui dispose d’un microphone à liaison Blutooth. L’acquisition du signal de parole par le dispositif e-lio en vue de la reconnaissance n’a pas été validée par GETALP. L’objectif qu’il m’a été donné est de faire un test de faisabilité de cette acquisition et de la coupler sur e-lio avec un système de reconnaissance de la parole que je devais installer. Mon travail de recherche s’est déroulé dans le cadre du projet Sweet-Home[1] conduit par Michel Vacher au sein de l’équipe GETALP du Laboratoire d’Informatique de Grenoble (LIG). Ce travail concerne l’analyse des sons et de la parole et est en rapport avec l’aide aux personnes âgées seules à domicile. L’un des buts de ce projet est d’améliorer les systèmes domotiques actuels par l’ajout de fonctionnalités d’interaction plus naturelles entre l’utilisateur et son environnement. La reconnaissance de la parole apparaît comme la modalité d’interaction naturelle pour ce genre d’application. Les précédents travaux entrepris au sein de l’équipe GETALP ont montré l’intérêt de l’information audio pour la reconnaissance d’activités dans un habitat intelligent. Cependant, pour une évaluation puis une utilisation en milieu réel, il sera nécessaire d’implanter les systèmes de reconnaissance sur des processeurs légers embarqués. Pour bien comprendre le contexte de mon travail encadré de recherche, je vulgarise les notions utilisées pour faire de la reconnaissance de parole puis j’explique le logiciel utilisé et le système e-lio. J’explique ensuite le travail réalisé en vous présentant la procédure que j’ai suivie et les résultats de chaque étape. Enfin je conclus sur les résultats de ma recherche et sur mon TER. Ces systèmes embarqués posent de nombreuses contraintes notamment en ce qui concerne la précision, les données et le calcul. Cette étude est menée dans le cadre d’une collaboration industrielle avec la société TECHNOSENS. Cette société commercialise I. Contexte La reconnaissance de la parole est une discipline déjà ancienne. Voici quelques explications, la parole est un son émis par le locuteur, c’est à dire une variation de pression acoustique plus ou moins rapide et plus ou moins forte qui est captée par un microphone placé à proximité. La source d’énergie utilisée pour produire les sons est l’air contenu dans les poumons. Le flux d’air sous pression parvient à travers la trachée jusqu’au conduit vocal, aux fosses nasales, aux organes d’articulation (langue, lèvres. . .) qui vont avoir chacun leur rôle dans la production de la parole. La parole captée par le microphone est caractérisée par un spectre de fréquences acoustiques qui couvre des fréquences allant de 50 Hz à 8 kHz environ suivant la personne En effet, imaginez-vous demandant à votre cafetière nouvelle génération un café court sans sucre et que 10 minutes plus tard, elle vous fasse un café long avec sucre. L’interprète est mauvaise et le résultat est obtenu après un retard important. L’interaction par la parole serait peu intéressante. qui parle. Les lignes téléphoniques classiques qui coupent les fréquences plus basses que 300 Hz et plus hautes que 3,3 kHz modifient la perception dans le cas des personnes ayant une voix très grave ou très aiguë. Un exemple est la figure 3, sur laquelle est affiché l’évolution du spectre lorsque le locuteur prononce la phrase “Bonjour“. Les mots constituant une phrase peuvent se décomposer en une succession de phonèmes qui constituent eux-mêmes les sons élémentaires des mots. Les phonèmes sont en général différents d’une langue à l’autre. Chaque phonème est influencé par le phonème qui le précède et par celui qui le suit, c’est le phénomène de coarticulation. Les sons élémentaires de parole peuvent être classés en fonction de trois variables essentielles : le voisement (activité des cordes vocales), le mode d’articulation (type de mécanisme de production) et le lieu d’articulation (endroit de resserrement du conduit vocal). Le français comprend 12 voyelles orales émises seulement par la bouche, 4 voyelles nasales correspondant à la mise en parallèle des cavités nasales avec la bouche. Il comprend 6 consonnes occlusives correspondant à une ouverture brusque du conduit vocal après son obstruction, 6 consonnes fricatives produites par un rétrécissement local du conduit vocal, 2 consonnes liquides, 3 nasales et 4 semi-consonnes. Pour obtenir un système robuste il faut s’affranchir des problèmes suivants : – bruit présent lors de l’enregistrement, – parole spontanée différente de phrases lues en studio, les corpus de parole spontanée sont presque inexistants alors qu’ils sont indispensables pour obtenir les modèles de langage adaptés, – vocabulaire important plus difficile à reconnaître qu’un ensemble de mots restreint et limités à un domaine particulier, – reconnaissance multilingue. Dans le cadre de mon TER, je vais devoir vérifier que l’échantillonage du microphone bluetooth de l’e-lio est suffissant et vérifier (après implémentation) que l’unité de calcul de l’e-lio permet de réaliser la reconnaissance de parole dans des temps convenables. A. Logiciel de reconnaissance de la parole Le logiciel utilisé pour faire de la reconnaissance de la parole est le CMU Sphinx 3. Il comprend un ensemble d’outils développés à l’Université de Carnegie Mellon. Sphinx 3 est la dernière version réalisée par le Carnegie Mellon en C++. Une nouvelle version a été réalisée, mais en Java, ce qui ne correspondait pas aux besoins du laboratoire. Sphinx a été choisi car la communauté des utilisateurs est très active avec une liste de diffusion réactive, et, le logiciel est aussi open-source. Sphinx utilise un modèle acoustique, un dictionnaire acoustique (développé par Getalp) et un modèle de langage. Le modèle acoustique permet de reconnaître les phonèmes (en français il y en a 36 : 16 voyelles et 20 consonnes). Le dictionnaire acoustique réalise la correspondance entre les mots et les phonèmes. Un mot est une séquence de phonèmes. Le modèle de langage controle l’assemblage des mots reconnus. Dans mon cas j’ai utilisé un modèle acoustique déjà créé par le laboratoire car l’apprentissage est un processus de calcul long (plusieurs jours). Il faut noter qu’il n’est pas adapté à ma voix, ce qui aurait pu améliorer la reconnaissance des mots. En revanche, le modèle de langage utilisé est un petit ensemble de la langue française adapté à l’application (300 mots). Ce qui permet d’axer le logiciel vers les mots que nous voulons reconnaître. Au niveau d’un système embarqué, d’autres problèmes viennent se greffer : – la fréquence d’échantillonage , – la quantification (nombre de bits sur lequel est codé le signal), – la vitesse de calcul. 2 – Création du système complet de reconnaissance de la parole – Implémentation du système complet sur elio B. Test microphone et résultats Fig. 1. Pour réaliser les tests, j’ai enregistré des mots existants dans le corpus de mots que le modèle de langage permet de reconnaître. Par exemple : “Bonjour”,“Appellez le samu”,“la chaise est tombée”,“le café est trop chaud”. Les tests sont réalisés dans une salle sans bruit en plaçant le microphone à une vingtaine de centimètre de la bouche. Pour accéder au microphone, TECHNOSENS a installé la librairie Alsa[3] sur l’e-lio. C’est un driver de carte son. Il permet d’accéder au microphone en utilisant le logiciel arecord. Le microphone étant connecté en bluetooth, TECHNOSENS a du configurer Alsa, et a choisi de nommer le microphone “bluez”. Donc pour y accéder il faut utiliser : Le produit e-lio de Technosens B. Le système e-lio Le système e-lio est développé et commercialisé par TECHNOSENS depuis 2010. Il est composé de trois éléments : une unité centrale connectée à internet et à un écran, une webcam connectée en usb à l’unité centrale, et une télécommande (comprenant un microphone) connectée en bluetooth à la webcam. Actuellement il permet des services du type visiophonie, téléphonie, messages, photos, rappels automatiques. Plus techniquement, le microphone intégré à la télécommande permet d’enregistrer des signaux en 8khz sur 16bits en little endian. L’unité centrale est de type Intel 386 32bits. La distribution Gentoo[2](modifiée par TECHNOSENS) est installée dessus. Le minimum est installé pour faire marcher les services et un accès en ssh est disponible. arecord -D bluez La commande que j’ai citée ci-dessus permet d’enregistrer des signaux échantillonnés à 8khz par défaut. Mais les modèles acoustiques Sphinx dont je dispose ont été prévus pour ne fonctionner qu’avec des signaux échantillonnés à 16Khz. Pour adapter le signal, il faut utiliser le logiciel sox : sox fic_in.wav -r 16000 fic_out.wav Il est possible de demander à Alsa de forcer le microphone à enregistrer avec une fréquence de 16khz (avec l’option -r16000), mais ici le microphone est analogiquement bloqué à 8khz, donc il n’est pas possible d’améliorer la fréquence d’enregistrement. Cela pose problème pour faire de la reconnaissance de la parole car il manque de l’information. Le spectre du signal de la figure 2 montre bien que de l’information est coupée par rapport au signal de la figure 3. Ces deux figures représentent le spectre d’enregistrement du mot “Bonjour”. La figure 2 a été enregistrée avec le microphone de l’e-lio, et la figure 2 avec un microphone pouvant enregistrer en 16kz. Vous pouvez voir au centre de la figure 2 que l’information du phonème “j” est à moitié coupée. II. Travail réalisé Mon travail a été de faire un test de faisabilité de l’acquisition du microphone et de la coupler sur e-lio avec un système de reconnaissance de la parole que je devais installer. Pour expliquer le travail réalisé lors de mon ter, je vais commencer par vous énoncer la procédure que j’ai suivie puis la description de chaque étape. A. Procédure – Test d’enregistrements utilisant le microphone e-lio avec la reconnaissance sur ordinateur – Interfaces pour les enregistrements La figure 2 montre aussi un pic au début de l’enregistrement. Si on écoute le signal 3 faire attention lors d’une future automatisation des enregistrements. Un document donnant plus d’informations sur les résultats est disponible en annexe. Au final, même si l’information est tronquée à cause d’un échantillonage à 8khz, il est quand même possible de faire de la reconnaissance de la parole dessus. Par contre, cela demande un signal ne contenant pas d’autre bruit que la parole. En réalité, il existe des algorithmes qui n’extraient que la parole d’un signal, mais il faudrait vérifier si c’est possible d’en implémenter un dans un système embarqué (surtout en parallèle d’un système de connaissance de la parole). Une autre possibilité pour avoir un pourcentage de mots reconnus plus élevé est soit d’enregistrer avec un microphone pouvant échantillonner en 16 kHz, soit d’utiliser des modèles acoustiques prévus pour un échantillonnage à 8 kHz.. Fig. 2. Spectre d’un enregistrement avec le mot “Bonjour” et les caratéristiques par défault C. Interfaces pour les enregistrements Pour faciliter les tests et permettre à quelqu’un qui ne connait pas e-lio de faire des tests, j’ai réalisé d’une part un script automatique et d’autre part une interface graphique. Fig. 3. Spectre d’un enregistrement avec le mot “Bonjour” et un microphone 16khz Le script automatique (en Annexe) permet de lancer un enregistrement sur e-lio, et de récupérer sur sa machine un signal prêt à être reconnu (en 16khz et sans le “toc” de début de signal). Pour le lancer, il faut avoir un accès ssh à e-lio et taper : ./enregistre.sh TEMPS NOM_FIC.wav attentivement, on remarque que c’est un “toc”.Il apparait sur tous les signaux enregistrés. Il est créé par l’activation du microphone. Celui-ci est très gênant pour la reconnaissance de la parole (voir tableau 4. Il est possible de le supprimer avec sox : L’interface graphique a été développée à partir d’une interface TCL/TK développée à GETALP. L’interface de base est utilisée pour faire de la reconnaissance de la parole en utilisant Sphinx et le microphone par défaut sur une machine personnelle. Je l’ai simplifiée et adaptée pour qu’elle enregistre directement les signaux à partir du microphone sur e-lio (voir fig 5). Il faut aussi avoir un accès ssh à e-lio pour faire marcher l’interface. Pour lancer l’enregistrement il suffit de cliquer sur le bouton enregistrer (cercle rouge) puis, pour finir l’enregistrement, il faut cliquer sur le bouton arrêter (carré vert). L’interface lance ensuite Sphinx (sur la machine personnelle), qui décode le signal récupéré de e-lio. Enfin le logiciel affiche le(les) mot(s) reconnu(s). Techniquement, l’interface lance un arecord sur e-lio puis, lors de l’appuie sur le bouton stop, un kill arecord (avec le bon signal pour éviter de mal quitter arecord, ce qui bloquerait le microphone). sox fin_in_with_toc.wav fic_out.wav trim 5824s (ici la commande va supprimer les 5824 premiers échantillons (samples)). Voici les résultats en pourcentage de mes tests pour faire de la reconnaissance de la parole avec Sphinx installé sur ma machine personnelle et le microphone e-lio. e-lio 8khz brut e-lio 8khz coupé Fig. 4. % de mots reconnus 0% 86% Résultats du test de faisabilité Remarque : lors de mes tests, j’ai essayé de lancer Sphinx sur un .wav ne contenant qu’un son très cours. Le logiciel s’est mis à boucler. Il faudra y 4 pour analyser le signal. PortAudio est une librairie qui permet d’abstraire les drivers de cartes son. La transformée en ondelettes a été choisie car elle permet d’étudier le signal d’entrée en ayant une bonne résolution fréquentielle et temporelle. 2) Le “decoder”: Il est piloté par un script bash. Il récupère les signaux enregistrés avec le recorder, les enlève de la file, puis fait appel à Sphinx. Il récupère ensuite les résultats et les affiche sur la sortie standard. 3) Adaptation sur e-lio: Sur ma machine personnelle (Ubuntu), le logiciel fonctionne très bien et donne de bons résultats. En effet, dès que je parle le “recorder” enregistre bien la phrase et le “decoder” m’affiche bien les mots que j’ai prononcé. Pour l’adapter à e-lio, j’ai d’abord installé la partie “decoder” (Sphinx + bash). Les résultats sont satisfaisants car lorsque je lance le “decoder” et que j’ajoute manuellement des fichiers.wav dans la file d’attente des signaux, j’obtiens bien en sortie les mots reconnus. Et tout cela dans un temps assez court (2-3secondes). Fig. 5. Interface pour faire de la reconnaissance de la parole à partir du microphone e-lio D. Système de reconnaissance de la parole Pour l’implémentation d’un système de reconnaissance de la parole dans e-lio, mon choix a été de faire un logiciel qui permet d’enregistrer les phrases automatiquement et de lancer la reconnaissance de la parole dessus. Il est composé de 2 parties, voir figure 6. La première est un recorder qui détecte la parole puis enregistre la séquence de mots et enfin les stocke dans une pile. La deuxième est un décoder qui est lancé en “parallèle”. Il attend les nouvelles séquences pour pouvoir lancer le logiciel de reconnaissance de la parole et afficher les mots reconnus. Les mots reconnus pourrait après être traités pour lancer des actions sur e-lio. Mais cela sort du cadre de mon TER. Fig. 6. Pour installer la partie “recorder”, il a fallu installer les librairies PortAudio et lnsnd. Mais pour faire fonctionner correctement le recorder j’ai eu plusieurs difficultés. Tout d’abord, le premier problème a été l’accès au microphone d’e-lio. PortAudio sélectionnait le mauvais driver de carte son, OSS à la place de Alsa. Il a donc fallu adapter le code pour que PortAudio sélectionne obligatoirement Alsa. Le deuxième problème a été posé par un bug de PortAudio. Lorsqu’on affiche les drivers de la carte son et que le programme fait une boucle autour, PortAudio génère une segmentation fault. Le troisième problème est que PortAudio ne sélectionnait pas le bon microphone. Lors que je parlais devant le microphone, le “recorder” ne détectait pas que je parlais. En effet PortAudio prend le microphone par défaut du driver de la carte son. Il a donc fallu configurer Alsa pour qu’il prenne par défaut le microphone connecté en bluetooth. Logiciel de reconnaissance 1) Le “recorder”: A partir des travaux de Frédéric Aman, j’ai modifié le recorder original pour qu’il boucle à l’infini et qui puisse générer des .wav numérotés dans un dossier précis. Pour détecter la parole, le logiciel enregistre tout le temps des échantillons. Si le seuil est dépassé, le logiciel écrit dans le .wav les quelques échantillons précédents et tous les échantillons suivants jusqu’à ce que le signal repasse sous le seuil. Pour détecter si l’échantillon dépasse le seuil, le logiciel utilise une transformée en ondelettes de Daubechies. Le logiciel est réalisé en C, utilise PortAudio[4] pour accéder au microphone et utilise la transformée en ondelettes Après ces configurations, le logiciel détecte bien quand je parle et termine l’enregistrement au bout d’un moment. Malheureusement il n’enregistre qu’un “psht”, et pas du tout le son de ma voix. Je vois deux possibilités, PortAudio attend un signal échantillonné à 16khz et reçoit un signal échantillonné à 8khz donc les calculs deviennent faux, et/ou le seuil dans le logiciel “recorder” n’est pas approprié au microphone e-lio. Je n’ai pas eu le temps de plus approfondir ces deux possibilités 5 lors de mon TER. Pour pouvoir réaliser quelques tests tout en gardant le concept du recorder+decoder, j’ai mis en place un script qui remplace le decoder et qui permet d’enregistrer manuellement un signal et de le mettre dans la file d’attente. l’existant. Par exemple, lors de mes tests de faisabilité, plutôt que de comparer des signaux avec un “toc” au départ et sans le “toc” (qui est un résultat connu) j’aurais du regarder s’il y avait la possibilité de mettre sur un système embarqué un algorithme qui n’extrayait que les signaux de la parole. Je pense que la réponse à cette question est beaucoup plus utile que la comparaison de résultats avec les “toc”. Si c’était à refaire je pense que je changerais ma procédure. Plutôt que passer du temps à développer sur ma machine personnelle, je passerais directement sur e-lio le logiciel Sphinx, et chercherais les différentes possibilités pour améliorer la reconnaissance de la parole. Au final, ce TER m’a fait découvrir la recherche grâce à un projet concret. Il m’a été bénéfique et je le trouve très complémentaire avec l’enseignement d’ingénieur. Cela a changé ma façon de voir un problème et m’a motivé à me diriger vers un métier de recherche. E. Résultats Exécuté sur e-lio, le logiciel de reco reste assez rapide (2 à 3 secondes). Cela ne permet pas de faire du temps réel, mais dans un contexte où le logiciel ne doit pas reconnaître tout le temps des mots, la vitesse est acceptable. (comme par exemple reconnaître un mot lorsqu’on appuie sur un bouton). Par contre, pour être utilisé en temps réel, il faudrait surement changer le logiciel de reconnaissance (Sphinx) et en prendre un plus simplifié et plus rapide. Au niveau de la reconnaissance en elle-même, j’ai les mêmes résultats (car le logiciel installé sur e-lio est le même que sur ma machine). C’est-à-dire, que la reconnaissance de la parole est possible avec le microphone 8khz si le signal est nettoyé. Remerciments Je remercie Mme Moranchini, M. Portet et M. Vacher, sans qui je n’aurais pas pu faire ce TER. Je remercie de plus M. Vacher pour son encadrement et le temps qu’il m’a toujours accordé. III. Conclusion Mes résultats sont positifs, car ils montrent la possibilité de faire de la reconnaissance de parole sur un système embarqué qui au départ n’était pas fait pour. Cette étude a permis de mettre en évidence 3 problèmes importants à résoudre : – la fréquence d’échantillonnage basse imposée au départ a priori par le Blutooth qui devra être augmentée ou qui imposera la génération de modèles acoustiques adaptés – le découpage temporel précis du signal pour conserver une bonne précision de l’algorithme de reconnaissance – le temps de calcul qui doit rester court et imposera une optimisation du temps de calcul du système ou le choix d’un système de reconnaissance plus simple, et par la même, plus rapide. Références [1] M. Vacher, “Projet SWEET-HOME ANR,” http: //sweet-home.imag.fr/, 2009, online, accessed 15april-2011. [2] Gentoo, “Gentoo Web Site,” http://gentoo.org/, online, accessed 8-mai-2011. [3] AlsaProject, “Alsa Official Website,” http://www. alsa-project.org, 2008, online, accessed 1-mai-2011. [4] R. Bencina and P. Burk, “PortAudio–an open source cross platform audio API,” in Proc. 2001 Intl. Computer Music Conf.(ICMC-01). Citeseer, 2001. Avec le recul et en écrivant ce rapport, j’ai remarqué que je me suis trop ciblé sur le développement de l’application en elle-même, que ma vision des choses était réduite. Je voulais une réalisation concrète. Je crois que j’ai fait comme lors d’un projet fait en école, essayer de réaliser un projet avec un but “unique”. Le pire, c’est que ce but unique, c’est moi qui me le suis donné. Alors qu’en fait j’aurais dû faire l’inverse : essayer de chercher toutes les possibilités du projet, le comparer avec 6 Annexe Resultats des tests de faisabilité le fichier de sortie de Sphinx : Les fichiers du type : *_8000.wav sont les fichiers avec le “toc”, les fichiers du type : *_8000_tronq.wav ont été ttronqué et non plus le “toc”. Pour chaque fichier, la première ligne est le résultat attendu, et la deuxième ligne est le résultat trouvé par Sphinx. AH BON (USER−AH_BON_8000) EUH EUH (USER−AH_BON_8000) Words : 2 C o r r e c t : 0 E r r o r s : 2 P e r c e n t c o r r e c t = 0.00% E r r o r = 100.00% Accuracy = 0.00% Insertions : 0 Deletions : 0 Substitutions : 2 AH BON (USER−AH_BON_8000_TRONQ) UN FLEUVE (USER−AH_BON_8000_TRONQ) Words : 2 C o r r e c t : 0 E r r o r s : 2 P e r c e n t c o r r e c t = 0.00% E r r o r = 100.00% Accuracy = 0.00% Insertions : 0 Deletions : 0 Substitutions : 2 APPELEZ LE SAMU (USER−APPELEZ_LE_SAMU_8000) ∗∗∗ ET VOILA (USER−APPELEZ_LE_SAMU_8000) Words : 3 C o r r e c t : 0 E r r o r s : 3 P e r c e n t c o r r e c t = 0.00% E r r o r = 100.00% Accuracy = 0.00% Insertions : 0 Deletions : 1 Substitutions : 2 a p p e l e z l e samu (USER−APPELEZ_LE_SAMU_8000_TRONQ) a p p e l e z l e samu (USER−APPELEZ_LE_SAMU_8000_TRONQ) Words : 3 C o r r e c t : 3 E r r o r s : 0 P e r c e n t c o r r e c t = 100.00% E r r o r = 0.00% Accuracy = 100.00% Insertions : 0 Deletions : 0 Substitutions : 0 ∗∗∗ ∗∗∗ BONJOUR (USER−BONJOUR_8000) OUVRE EUH EUH (USER−BONJOUR_8000) Words : 1 C o r r e c t : 0 E r r o r s : 3 P e r c e n t c o r r e c t = 0.00% E r r o r = 300.00% Accuracy = −200.00 Insertions : 2 Deletions : 0 Substitutions : 1 b o n j o u r (USER−BONJOUR_8000_TRONQ) b o n j o u r (USER−BONJOUR_8000_TRONQ) Words : 1 C o r r e c t : 1 E r r o r s : 0 P e r c e n t c o r r e c t = 100.00% E r r o r = 0.00% Accuracy = 100.00% Insertions : 0 Deletions : 0 Substitutions : 0 ∗∗∗ ∗∗∗ LA CHAISE EST TOMBEE (USER−LA_CHAISE_EST_TOMBEE_8000) SPHERE EST ELLE DONC MAIS VOILA (USER−LA_CHAISE_EST_TOMBEE_8000) Words : 4 C o r r e c t : 0 E r r o r s : 6 P e r c e n t c o r r e c t = 0.00% E r r o r = 150.00% Accuracy = −50.00% Insertions : 2 Deletions : 0 Substitutions : 4 l a c h a i s e e s t tombee (USER−LA_CHAISE_EST_TOMBEE_8000_TRONQ) l a c h a i s e e s t tombee (USER−LA_CHAISE_EST_TOMBEE_8000_TRONQ) Words : 4 C o r r e c t : 4 E r r o r s : 0 P e r c e n t c o r r e c t = 100.00% E r r o r = 0.00% Accuracy = 100.00% Insertions : 0 Deletions : 0 Substitutions : 0 LE CAFE EST TRES CHAUD (USER−LE_CAFE_EST_TRES_CHAUD_8000) IL SE VEUT LE VERROU (USER−LE_CAFE_EST_TRES_CHAUD_8000) eWords : 5 C o r r e c t : 0 E r r o r s : 5 P e r c e n t c o r r e c t = 0.00% E r r o r = 100.00% Accuracy = 0.00% Insertions : 0 Deletions : 0 Substitutions : 5 le c a f e e s t t r e s chaud (USER−LE_CAFE_EST_TRES_CHAUD_8000_TRONQ) le c a f e e s t t r e s chaud (USER−LE_CAFE_EST_TRES_CHAUD_8000_TRONQ) Words : 5 C o r r e c t : 5 E r r o r s : 0 P e r c e n t c o r r e c t = 100.00% E r r o r = 0.00% Accuracy = 100.00% Insertions : 0 Deletions : 0 Substitutions : 0 TOTAL Words : 30 C o r r e c t : 13 E r r o r s : 21 TOTAL P e r c e n t c o r r e c t = 43.33% E r r o r = 70.00% Accuracy = 30.00% TOTAL I n s e r t i o n s : 4 D e l e t i o n s : 1 S u b s t i t u t i o n s : 16 7