Les services vocaux par Fabien SCAGNELLI

La reconnaissance vocale

Les différents types de reconnaissance vocale

Pour utiliser les services vocaux, on utilise souvent de la reconnaissance vocale. La reconnaissance vocale est une science faite de statistiques, qui utilise le traitement des signaux sonores pour les comparer avec des sons de références contenus dans une grammaire, et trouver celui qui se rapproche le plus du son d'origine. Si le son d'origine ne se rapproche d'aucun des sons de référence, on dit que le résultat de la reconnaissance vocale est un rejet.

Les mots isolés

On distingue plusieurs types de reconnaissance vocale. Il y a la reconnaissance vocale de mot isolé. Un seul mot doit être prononcé.

Les mots enrobés

Dans ce cas, on autorise l'utilisateur à prononcer un phrase, mais seul certains mot-clés seront compris par le système.

Le langage pseudo-naturel

Ici, l'utilisateur peut prononcer une phrase entière, mais elle ne sera pas comprise entièrement par le système. Seules certaines structures de phrase simples peuvent être analysées.

Le langage naturel

Dans ce dernier cas, c'est la phrase entière qui est comprise. Le temps de la phrase, les tournures grammaticales peuvent être analysés, pour une comprehension optimale.

La reconnaissance des mots

Pour reconnaitre les mots, le signal sonore est comparé à une liste de mots dictés phonétiquement. Grâce a des probabilités, et des scores de similitude attribués a chaque mot, on peut retrouver le ou l'ensemble de mot qui correspondent au mieux au signal sonore.

Lorsque l'on ne veut reconnaitre qu'un seul mot, et que le résultat de la reconnaissance en renvoie plusieurs, il faut faire une étape de désembiguisation. Cela consiste à faire choisir à l'utilisateur quel mot il voulait dire parmis la liste de mots.

Le fichier qui contient l'ensemble de tout les mots reconnaissables par le service s'appelle une grammaire vocale.

Pour reconnaitre les mots, plusieurs algorithmes sont applicables :

La reconnaissance du langage naturel

La grammaire vocale

Pour le langage naturel, la grammaire vocale ne contient pas qu'une liste de mots, mais aussi les constructions grammaticales propre à la langue. On y trouve pour chaque mot, la probabilité des mots qui peuvent le suivre. On appelle ce fichier un bigram.

Par exemple, dans une phrase française correctement constituée construite à partir d'un vocabulaire de 6 mots {Je, Il, Veux/Veut, Voudrait/Voudrais, Danser, Chanter}, si le mot "danser" est cité, il se trouve dans 70% des cas à la fin de la phrase.

Ce fichier est créé à partir d'une liste de phrase les plus fréquemment cités dans le contexte du service. On appelle cette liste un corpus.

Ainsi, la reconnaissance vocale peut nous retourner les résultats suivants : "je voudrais danser", "il veut chanter", ou bien juste le mot "chanter". Le système peut aussi renvoyer (mais dans des probabilités beaucoup moins élevées) des phrases du type : "veux je il chanter voudrait".

L'analyse syntaxique

Lorsque l'on fait du langage naturel ou pseudo-naturel, un analyse syntaxique est nécessaire pour comprendre ce que veux la personne. On transforme la phrase détectée par la reconnaissance vocale en des mots de commande interprétables par le service.

En réalité, le système détecte différents mots principaux selon des fichiers de règles, tels que les noms de villes ou divers adverbes. Ainsi, plusieurs phrases peuvent donner le même résultat de commande.

Voici quelques exemples si l'on est le lundi 1er janvier 2007 :

Le résultat de l'analyse synthaxique de toute ces phrases est le même, par exemple : METEO[PARIS,02/01/2007]

L'analyse syntaxique se fait en deux étapes. Tout d'abord, on tague les mots importants, c'est-à-dire que l'on rajoute un signe particulier à ces mots, pour les distinguer. Par exemple, on fait précéder tous les noms de villes par "V_", et tous les noms représentant la météo par "M_". Cela ce fait grâce à des fichiers de correspondances.

Paris => V_Paris
Nice => V_Nice
Brest => V_Brest
Météo => M_Météo
Temps => M_Temps

On obtient à la fin de cette étape des phrases avec des tags aux mots importants. Par exemple, la phrase "Le temps de Paris" devient "Le M_temps de V_Paris".*

Ensuite, on applique les fichiers de règles. Cette fois-ci, le but est de détecter les mots avec des tags, et de renvoyer un résultat avec un format bien précis, compréhensible par le service.

Pour cela, on applique des règles du type : M_%M1% # V_%V1% = METEO[%V1%]

Cela veut dire que si la phrase contient un mot tagué par "M_" et un deuxième tagué par "V_", alors on retourne le résultat METEO[], où est le mot tagué par "V_" (sans le tag). Par exemple, la phrase taguée "Le M_temps de V_Paris" devient "METEO[Paris]".

L'architecture d'un service en langage naturel



Les outils >>