,/\.
,ËPnR"t
Ecole Pour l'tnformatique les Techniques Avancées
106-112 bd de l'Hopital - 75013 PARIS Té1. 44.08.00.20 - Fax. 40.0s.03.61
Promotion 1990/91
.,\
tI
THoMSoN-CSF
DIVISION SYSTEMES DEFENSE ET CONTROLE Service AE
Responsable de filière : M. A. ADJAOUTE Responsable de stage : M. G. CHARDRON
SYSPEO
Rapport de stage
TaeLe DES MATIERES
AVANT-PROPOS
.................2
A - PREAMBLE..........
.............3
B . PRESENTATION NE THOMSON.CSF A.1- Présentation de la division :......... A.2 - Présentation du service AE........... A.3 - Utilisation de la commande vocale actuelle 1.
. PRESENTATION
2-
DU SUJET DE
STAGE
.......5 ......6 ........6 ................. 8
ENVTRONNEMENT 2.1 - Le simulateur 2.1.1 - Les mobi1es............... 2.1.2 - Les sources............... 2.1.3 - Les plots 2.1.4 - Les pistes 2.2 - Le STRAPP. 2.3 - Les VLX........
2 .LARECONNAISSANCE DE LA 2.1 - L'environnement 2.2 -Principes et 2.3 -
............... 5
PAROLE...
DATAVOX.............. fonctionnement Utilisation
3 . L,q, RECONNAISSANCE DES MOTS ENCHAINES
...............
TOLERANCE........ DATAVOX........ nombres..
4 - LES BESOINS EN 4.1 - Les chiffres sous 4.2 -Une syntaxe pour les
MODELE.......... syntaxe............ syntaxe
5 - RBcsBRcHE ET cHoIX DruN 5.1 - DATAVOX et Ia 5.2 - DATAVOX sans la
.............8 ...................... I ...------.."-- 9
...'.'.....'-..9 ...............-. 10 ................ 10 ....... 10 ..... 11 ............. ................ ................ ........---
11 11 11
12
..... L4 .... L7 .......17 ...........17 ...- 19 ......... 19 ......--.--......20
PROPOSEES............
..................21 analytiques............... ........,,,...21 .........23 SYSPEO.............
6 - LES SOLUTIONS 6.1 - Similitude avec les méthodes 6.2 -L'approche de
SYSPEO fait... :........... :.......... phrase
7 - DESCRIPTION DE 7.1- Ce qu'il 7.1 .1 - Au démarrage 7.1.2 - A l'utilisation 7.2 - L'analyse de Ia
1
-1-
..................25 .....25 -'..-.....-.- 25
",......'..'..26 ........27
Rapport de stage
SYSPEO
7.2.1 - Nécessité d'une
wntaxe............... SYSPEO.. lexicaux.....
7.2.1 .1 - La syntaxi de 7.2.1.2 - Les groupes
syntaxique
d'un réseau
7.2.2.3 - Iz réseau retenu pour
7.2.3 - Nécessité d'un squelette 7.2.3.1-
......28 ...... 30
.............. 3I Izs automates déterminirte.s.............. ......31 Izs réseaux de transitionr.................. .........................32
7.2.2 - Nécessité 7.2.2.1 7.2.2.2 -
..............28
SYSPEO......
............
Construction
liaisons.. squelettes.....
.........33
................3-l ........................35
7.2.3.2 - Utilité de la matrice des ........... 36 7.2.3.3 - Elimination de certains ......37 7.2.3.4 - Une amélioration pour rétablir un bon sque\ette.............................37
......... 7.2.5 - Nécessité d'un reca1a9e............. 7.2.4 - Nécessité des permutations 7.2.4.1 -
Principe....
7.2.5 .1 - Principe des
îlots
s................. 7.2.5.3 -Lasuppression............,.. 7.2.5.4 - Le choix ente supposition et suppression
..............38 ......38
................ 39 ................ 39
7.2.5.2 - La supposition d'élémen
......40 ....,....................41 ...................42 7.2.5.5 - Ixs équivalences phonétiques et synonymique,ç.................. .............43 7.2.5 .6 - La résolution des ambigùités de calage et de cheminement .............44 7.2.5.7 - L'apprentissage des erreurs ....................46
syntaxe.... Perspectives.............. 7.3.2 - Problèmes de niveaux 7.3 .3 - Principes 7.3.4 - Limitations............... 7.5 -Le moniteur. 7.5.1 - Nécessité d'une syntaxe propre 7.5.2 - La cohérence des informations ............... 7.5 .3 - La base de temps 7.5 .4 - Pré-validation d'un ordre -Le 7.6 contrôleur aérien 7.6.1 - Les paramètres utiles 7.6.2 - Les contraintes de base.......... 7.7 -Le simulateur 7.7.1 - Format du messape 7.3 -L'accés à la 7.3
.I
-
STAGE Spécifications théoriques........... contexte SYSPEO.............. Limitations
8 . LN BILAN DU 8.1 8.2 - Apports 8.3 - Environnement humain et 8.4 - Evolutions de 8.5 9-
C0NCLUSrON.......
.........46 ............... 46 .,............47 ..,............. 48 ...............49 .......50 .................50 ...................51 .... 51
........ 53
...........53 ...............54 ................... 54 .....56 ..................56 ..........57 .....57 ................... 57 ....58 .........58 .........59 ..............60
ANNEXE
-2-
SYSPEO
Rapport de stage
SYSPEO compilation.......... fichiers............... clavier..... lexicaux équivalences syntaxe............. annexe moniteur.............
.....62 ........62 ...................62 ........... 63 ...........63 ...............64 ........... 65 ........ 66 ........66
DONNEES............. tables....... -Le réseau 2.2 2.3 - Les liaisons entre les tables et le réseau 2.4 -Lesliaisons entre phrase, table et réseau. 2.5 - Les 3 piles de la reconnaissance. 2.5.1 - Les liaisons ente les piles
.................... 67
1 . L'ENVIRONNEMENT DE
1.1 - Les options de 1.2 - Environnement des 1.4 - Les ordres 1.6 - Le fichier des groupes 1.7 - Les fichiers des 1.8 - Le fichier de Ia 1.9 - Le vocabulaire 1.10 - La syntaxe du 2 - STRUCTURES DE 2.1 - Les
.....67 ............69 ................ 70 ............70 ..........7L ....... 72 piles,phrase et réseau...............i....-...........-...73 25.2 - Les liaisons entre
3-
TRACEDiEXECUTION..........
4 . LISTING DES STRUCTURES DE DONNEES ET FICHES
-3-
..............74
SADT
................ 78
SYSPEO
Rapport de stage
AVANT-PROPOS Je tiens à remercier Monsieur Georges Chardron de m'avoir accueilli dans son équipe commande vocale pour un stage effectué du 7 lanvier au 28 Juin à la THOMSON-CSF de Bagneux, Département Défense Aérienne et Côtière, Division Défense et Contrôle, qui s'est déroulé sous sa responsabilité. Mes remerciements vont également à Gilles Récamier et Max Landi pour leur aide et leurs conseils précieux ainsi qu'à toutes les autres personnes côtoyées qui ont oeuwé pour le bon déroulement de ce projet.
-4-
Rapport de stage
SYSPEO
A - PREAMBLE The six months training carried out as part of the project in voice recognition and vocal operating bring me to propose an approch to solve the following three points : ease the learning process of the voice recognition unit, permit a recognition of a syntaxless (or more or less syntax free) sentences
from an
operator, assist this very operator in two manners : - make him learn by experience the corroct phraseology, - make him follow a task list accordins to his training.
For this application, I had to
:
get technics and theories about natural language processing and grammar compiling. get familiar with the actual voice recognition product proposed by VECSYS and called
DATAVOX. precise the specifications book including the wishes of my heads of department.
The actuel vocal driven product used to simulate an air traffic conrol is operational (presented at the Bourget air show 91). The air traffic controler uses a microphone to give orders to tracks displayed on a high resolution color display. The orders are processed and send throught an air traffic simulator which make them operative before sending back the result to a real tracking system which tries to extract ffacks from radar like sources. These referenced tracks are then sent to the last equipment in charge of the control display. The DATAVOX product which can recognize flow sentences in a quite noisy environment is pretty reliable and well accepted as an human machine interface. In add, the result is similar to the real environment an so, the simulation process is very realistic.
Unfortunately, and in spite of the standardized syntax in use between air controlers and pilots, a relative freeddom of speech is in habits. This hability is yer forbidden with the VECSYS's technic voice processing for this one is global and strongly syntax dependant and not the result of a fine analyse of the phonetic signal segmentation. In add, the controler student is often embarrased in front of a machine which can refused (and she does most of the time in strictnessless expressions) to understand him. Therefore, the air controler who will use this interface shoud have to be aware of the exact syntax of all commands he can use, since increasing the basic grammar in aim to include many more expressions will also increase the learning process time in higher proportions. So, as a teaching approch needs a relative freedom of speech from the conffoler student, the DATAVOX environment had to be used in a particular syntax free situation, lowering then all the realiability in direct mtio with the amount of vocal references learnt.
_6_
SYSPEO
Rapport de stage
Then, the conversion voice --> sentence could be done with minimum constraints but complex mecanism had to be also apply in aim to : - correct the resulting sentence filtering all the misrecognized items - reduce the expression to the autorized one described in a grammar - explain to the learner the mistakes made - interpret the final result. On the basis of this parser, differents specialised units could then be add as
- an mstructor unlt - a gmmmar-acces unit - a simulator interface unit which as been done so far...
-6-
:
a
Rapport de stage
SYSPEO
B - PNESENTATION DE THOMSON.CSF TFIOMSON-CSF est le quatrième goupe mondial d'électronique et systèmes de défense avec un chiffre d'affaire de plus de 36 milliards de francs dont 60Vo à i'étranger. Il emploi 63000 personnes dans plus de 110 centres industriels répartis dans le monde entier.
La branche Système de Détection, Contrôle et Communication réunit les compétences nécessaires pour assurer la réalisation des systèmes C3I.
- Détection et identification - Informatique et visualisation - Communication Ces compétences constituent le métier des 5 unités qui la composent
:
- Division Systèmes Défense et Contrôle (SDC) - Division outils Informatique (DOI) - Division télécommunication (DTC) - LMT Radio Professionnelle.
Les activités des unités de la branche Système de Détection, Contrôle et Communication couwent les domaines d'application des systèmes : - Défense aérienne - Contrôle du trafic aérien - Détection du champ de bataille - Electronique navale de combat. - Information du commandement. - Contrôle et sécurité. - Contrôle industriel - Communication du champ de bataille - Communications spécialisées - Radio-surveillance et contre-mesures.
A.1 - Présentation de la division
:
læs activités de la Division Système Défense et Contrôle couvrent les applications de la détection électromagnétique et optronique aérienne et de surface. La division conçoit les systèmes et produit les moyens de détection et d'identification pour les domaines de la défense aérienne, du contrôle du trafic aérien, de la détection du champ de bataille et de l'électronique navale de combat.
- "tI-
Rapport de stage
SYSPEO
personnes réparties dans 4 centres situés à Bagneux, Meudon, Sartrouville et Rouen. Le chiffre d'affaire de la Division et de I'ordre de 5 milliards de francs dont plus de 80Vo dus à I'exportation.
La division emploi près de 5000
læs activités SDC couvrent 4 domaines
:
- Systèmes de contrôle du trafic aérien et maritime, aides à la navigation. - Systèmes de défense aérienne et de commandement. - Champs de bataille / Cenrres d'essais. - Svstèmes navales de combat et de commandement.
A.2 - Présentation du service AE - Systèmes de défense aérienne - Logiciels - Affaire France - Partie visu (VLX et moniteurs haute définition). - Partie TSQ (commande de batteries de missiles). - Partie opérationnelle, détection basse altitude
- Strapp - Stac - Simulateur de trafic - Commande vocale. - Exportation - Radar
A.3 - Utilisation de la commande vocale actuelle L'utilisation de la commande vocale touche trois points essentiels
:
-
Mise en condition réelle d'un contrôleur aérien face à une situation simulée sur des équipements traditionnels (ou futuristes). Le contrôle des pistes ne se fait alors plus par le jeu d'un curseur (en incrustation) et d'un clavier (pour les commandes) mais à la voix, d'une façon naturelle et en utilisant le vocabulaire du contrôle aérien.
-
Faciliter la création de scénarios par un dialogue (avec synthèse vocale) entre le moniteur et I'ordinateur en utilisant un vocabulaire ici encoro spécifique. Plus besoin est de sélectionner les balises ou les points de passages aux travers de multiples menus ou par des commandes clavier abstraites.
-
Eviter une gestion graphique complexe (gain appréciable en ergonomie) puisque les applications de reconnaissance vocale s'interfacent entre le locuteur et une autre application au mécanisme d'entrée-sortie conventionnel.
-B-
Rapport de
stage
SYSPEO
Note : Il est important ici de remarquer que les gains de temps ne sont pas systématiques et qu'il convient de savoir choisir les besoins. La commande vocale peut en effet devenir handicapanæ si elle est
:
- trop rigide (syntaxe) - trop verbeuse (en attributs ou conjonctions) - inadaptée (l'action doit être rapide et s'énonce difficilement).
De même la synthèse vocale peut devenir pénible si elle est omniprésentel et également de veiller à ne pas envahir indûment I'espace sonore du locuteur.
I
il
convient
Ceci a été remarquée lors des premières démonstrations de Syspéo tant au niveau des messages d'erreurs que des ordres du moniteur. Pour cette raison, seules les validations ont été conservées en synthèse vocale, les autres informations apparaissant à l'écran. Cette remarque peut être rapprochée de l'étude menée sur un échantillon de conducteurs automobile ayant testé une conduite assistée par ordinateur et unanimes pour reprocher I'omniprésence de la machine et I'agacement suscité.
-9-
Rapport de stage
1
SYSPEO
. PRESENTATION
DU SUJET DE STAGE
Le travail proposé était d'écrire une application à I'intention d'élèves contrôleurs aérien leur pefinettant de gérer par commande vocale2 un trafic simulé sur une zone sous contrôle radar tout en leur apprenant, par assistance automatique, la phraséologie en vigueur. L'application devait offrir les fonctionnalités suivantes
:
-
Permettre de changer facilement le contexte et les méthodes de travail de I'application sans modifier le progmmme
-
Réduire le temps d'apprentissage du vocabulaire par la machine. Assouplir la reconnaissance de phrases. Reconnaître des commandes énoncées sous formes de phrases. Préciser les erreurs syntaxiques et sémantiques en se basant sur une grammaire. Proposer des exemples de commandes issus de la grammaire.
Par la suite, des besoins annexes se sont fait sentir et ont été implémentés
-
:
Monitoring de l'élève par une séquence prédéfinie d'ordres et suivi des réactions. Gestion et contrôle de la plausibilité des commandes à I'intention de pistes aériennes. Interfaçage avec un simulateur de trafic aérien par liaison série. Représentation graphique du traitement sur le réseau.
L'application devait être écrite en langage
C pour pouvoir utiliser efficacement
les
bibliothèques de fonctions d'accès aux cartes de reconnaissance vocale et de traitement du signal.
2 . ENVIRONNEMENT La commande vocale s'insère dans un environnement existant dédié à la poursuite et la détection de pistes à basse altitude. Cet environnement (prototypes d'applications et perfectionnements matériels) est testé sur plate-forme grâce à des outils de simulation de matériels existants de façon à représenter un centre opérationnel réel.
2.1 - Le simulateur Le contrôle aérien en mode réel suppose un certain nombre d'équipements (radars, systèmes de poursuite, écrans de surveillance, unités de communication, etc...) et un trafic de mobiles
2 basées sur un langage
artificiel à vocabulaire restreint.
-
10
-
SYSPEO
Rapport de stage
à gérer. Pour vérifier le fonctionnement des équipements à tester, un tel simulateur doit s'occuper de générer une situation aérienne cohérente sur plusieurs modes.
,ooorlooo'ffiffi"
ry\ tffiEl Tffi
^ml *\
Visu
Haute
commandeVocare PO+Datavox ÉF.HEEË]) " "-ffi
IHHIËHHJ'\ ffiEfififr\ fl Ecran tactile / 7 sélectiOnS
dérinition définition
/
pixels
COmmanOeS
ç62
/ r:::::i::::Si
m
ùlâtë
ù tlri:
ëÈX.,.+,,.ôM.'.51
ô I
Y
Pstes
.
l.t : Environnement
:r:i
2
f-r>Æffiffim é srruaron
,plots + pistes
v
Figure
z.lJ
f\*
disoosition
Hiiiiiiiiiifàdgf.$iiiiiiry -{tlrjj!i!lÈ!}z
de la commande vocale.
- Les mobiles
Une source est un mobile aérien identifié par un indicatif et associé à un
scénario
d'évolutions découpé en phases (montée, virage, descente, atterrissage, etc...). Sa trajectoire est déterminée par un passage au dessus de points particuliers (balises) à des instants précis (conditionnant sa vitesse).
2.I.2 - Les sources Cette situation représentée par I'ensemble des mobiles et leur position est analysée par des extracteurs radar simulés et caractérisés présents en certains points du territoire. I-es informations brutes de certains radars sont directement envoyées au STRAPP, les autres étant traitées par des centres opérationnels (CDC) se chargeant de les traduire en pistes. læs divers centres opérationnels étant également reliés au STRAPP, des informations de type pistes lui sont également envoyées.
- 11 -
SYSPEO
Rapport de stage
2.1.3 - Les plots
Un écho radar est traité par le calculateur interne au radar et transformé en une information comportant un azimut, une distance et/ou un IFF. Trois type de plots sont à considérer
:
- plots primaires : écho radar azimut + distance - plots secondaires : IFF ou mode C (altitude en site donnée par le mobile) - plots associés : primaire + secondaire
2.1.4 - Les pistes
Un système de poursuite travaille sur des informations de type plots pour en extraire des pistes. Une fenôtre est associée à chacune d'elles dans laquelle devra apparaître le prochain écho radar pour la piste poursuivie. La piste est représentée à l'écran sous une forme proche
de celle obtenue sur des écrans conventionnels (historique simulé puisque le principe de rémanence est absent des écrans) accompagné d'une symbolique nouvelle plus représentative. Des calculs effectués sur I'historique du mobile permettent de comparer l'écho réel avec les prédictions et valider le recalage de la piste.
Cette technique perrnet d'éliminer
les
parasites ou les échos d'objets immobiles ou non assimilables. Des possibilités de décrochage sont cependant possible en cas
- vitesse trop élevée ou basse de l'écho - disparition trop longue de l'écho (passage dans la zone aveugle du radar) - coïncidence de plusieurs échos de mobiles.
historique
La piste est la représentation finale de I'identification d'un mobile aérien sur la console du contrôleur.
2.2 - Le STRAPP
Le STRAPP (qui signifie STRida APProche) est un système de traitement d'information issues des cenffes opérationnels, des centres locaux d'aérodrome (CLA) ou de radars. Il assure la cohérence des informations en provenance de plusieurs radars basse altitude et transforme les données plot du radar en pistes avant de les associer avec celles envoyées par les CDC et CLA.
-12-
Rapport de stage
SYSPEO
2.3 - Les VLX Etude THOMSON autofinancée sur un nouveau type de console de visualisation de défense aérienne visant à remplacer à terme les écran traditionnels de type IP-16 à balayage cavalier. L'écran est de type haute définition en technologie RASTER. De ce fait, il est possible d'y incruster des images radar vidéo directe ou pré-traitées (extraction des plots).
2. LA RECoNNAISSANcE
DE LA PARoLE
2.1 - L'environnement DATAVOX
DATAVOX est un produit de la société VECSYS3 qui se compose de trois modules matériels, d'un logiciel de reconnaissance de la parole et d'un programme de configuration assurant la compilation des syntaxes, la gestion des vocabulaires et des locuteurs et I'initialisation des cartes avec un environnement de reconnaissance.
Matériel
Logiciel
: - Carte Rdf 1000
- Carte Tds 95/25 - ASA 116
:
- AMADEUS
Reconnaissance des formes.
Traitement du signal à 40 MHz. Convertisseur AID pour I'acquisition et la restitution de la parole.
Logiciel de reconnaissance de formes (acoustiques).
2.2 - Principes et fonctionnement L'environnement DATAVOX (et surtout le logiciel AMADEUS) fonctionne sur un principe de reconnaissance de références acoustiques quelconques connectées. Ce n'est donc pas une reconnaissance acoustico-phonétique pour trois raisons essentielles :
- Rapidité de la reconnaissance d'un signal identifié dans un datagramme même bruité - Résolution des problèmes de coarticulation. - Fiabilité de reconnaissance des entités courtes par traitement en contexte4. l,es inconvénients d'un tel procédé sont ceux que les recherches en traitement du langage naturel tentent de supprimer, à savoir
:
- Impossibilité de s'écarter de la syntaxe pré-établie. - Nécessité pour un locuteur d'utiliser son propre vocabulaire 3 En collaboration
avec le
appris.
LIMSI et le CNRS.
4 La coarticulation intervient. ici dans la reconnaissance d'une référence courte alors qu'elle ne gène pas, priori dans celle d'une référence plus longue
-
1a
tt) -
a-
Rapport de stage
SYSPEO
- Limitation de la taille du vocabulaire. - Impossibilité de traiter le langage naturel avec une grammaire
carte RDF
<-iitlg:::i
contextuelle.
syntaxe
,r/
I
^
I
utilisateurs
I
| d'un création -=> réseau
4
^\
apprentissage de phrases
/
utilisateur 1.2- Etapes de développement d'une application DATAVOX
2.3 - Utilisation Comme présenté sur la figure 1.2, la création d'une application de reconnaissance vocale suppose I'enchaînement suivant :
i
ndicatif-statio n-o
rdre
indicatif-1-bravog --r-9ravoY L-miral S <-------
itation-marsan *'t'Ï\ tr/
\
ordre-----r-decollage Y I iff stand-by Figure 1.3: Exemple d'une syntaxe sous DATAVOX
-
Définition d'une syntaxe (1) en utilisant l'éditeur intégré à DATAVOX. Cette syntaxe reprend les principes d'une grammaire générative hors contexte contenant donc :
-14-
SYSPEO
Rapport de stage
- Un axiome - Des sous-syntaxes - Des terminaux.
-
Cette syntrxe est ensuite compilée et un apprentissage (2) est alors nécessaire pour les références terminales uniquement. Les mots prononcés (trois fois) dans le micro sont traduits en une représentation temps-fréquence-intensité affichée à l'écran (figure 1.4).
fréqusnc€ l{i'
l*'
4l'
1l
.'!ill'lir
t'i,
.i
*,
Itt :i! z,lli
slgnal analoglque Hgure 1.4 : Spectre en fÉquences (sonagnnme) obtenu par translormations de Fourrier sur un signal analogique.
La compilation des références acoustiques se fera ensuite en plusieurs passes incluant des moyennages et une paramétrisation du signal. Le but du moyennage du signal échantillonné vient de la constatation que lors d'une analyse globale d'un signal, il importe de faire coincider deux images pour reconnaître un mot. Or, la prononciation d'un même mot par un même locuteur deux fois de suite diffère fortement pour des critères comme :
-
la vitesse d'élocution (signal plus ou moins compressé) le registre sonore (fondamental déplacé en fréquences) le timbre ou I'accentuation (formants altérés) les altérations diverses (présence de parasites, bruit de fond, amputation d'une partie du signal...)
Pour ces raisons, un prototype construit sur la moyenne de trois signaux pour une même Éférence permet d'inclure un maximum de différences pour éviter de figer un modèle non représentatif des autres.
La syntaxe servira ensuite de base
à une
consolidation du réseau (3) incluant la coarticulation
-15-
Rapport de stage
SYSPEO
entre les références les plus courtes5. L'application de reconnaissance pour un locuteur est ensuite créée (4) et celui-ci peut alors tester I'application en prononçant des phrases syntaxiquement correctes.
3 . Ln RECoNNAISSANcE DES MoTS ENcHAINES Le système AMADEUS fonctionne sur un principe de programmation dynamique
(Sakoe, Chiba) appliquée à la reconnaissance globale de la parole. Les références du vocabulaire sont mémorisées au préalable lors d'une phrase d'apprentissage monolocuteur. La reconnaissance consiste ensuite en une comparaison de l'image acoustique du mot à reconnaître avec celles mémorisées. Cette étape essaie de tenir compte de facteurs perturbateurs tels que : - Les bruits de fond
- Les hésitations du locuteur - Les altérations élocutoires diverses.
Bien que le moyennage sur trois références apprises ait permis d'obtenir un prototype relativement représentatif (pour le locuteur donné), un puissant mécanisme de recalage temporel doit être mis en oeuvre pour rattraper les différences non mémorisées. Pour fiabiliser cette approche, une programmation dynamique à deux niveaux permettra
-
:
D'isoler les mots candidats dans une séquence sans espacement (mots enchaînés) comportant donc principalement des altération s coarticulatoires. De sélectionner parmi le treilli obtenu ceux autorisés par la syntaxe.
Pour cette dernière raison, la syntaxe est un élément essentiel de la fiabilité de reconnaissance de DATAVOX. En effet, la coafiiculation, qui dans I'analyse syntaxicophonétique pose beaucoup de problèmes, est prise en compte ici par I'apprentissage de références en contexte6. Ce mécanisme, absent de I'environnement de SYSPEO, sera à la base de ses principales limitations.
Si I'on cherche à représenter
le
processus de reconnaissance, on peut imaginer une fenêtre de taille variable balayant le signal vocal et servant de zone de schématiquement
comparaison avec les valeurs du réseau. Le couplage étant faible, I'algorithme de comparaison permet de refrouver les mots dans le signal et de recaler les fenêtres pour les prochains. læs altérations phonologiques dues à la coarticulation (voisement et labialisation) sont pris en compte pour la reconnaissance des entités courtes.
5 Ceci est réalisé par une longue phase d'apprentissage des mots enchaînés ou prononcer une phrase construite par le logiciel sur la base de la syntaxe.
le locuteur est invité
à
6 C"tt" étape de I'apprentissage consiste, pour le logiciel DATAVOX, à préparer un ensemble de phrases tirées de la syntaxe pour lesquelles la coarticulation et la syntaxe devront jouer un rôle important lors de la reconnaissance. Ainsi, les références courtes pourront être reconnues isolément mais écalement insérées dans un continuum sonore rigidifié (en terme de combinaisons) par la syntaxe.
- 16 -
Rapport de stage
SYSPEO
r iff stand-by iïilil t,
mira15
,
{fl|t1/*-"h4[^"{14lrr
bravo9
* marsan
déco llage
Figure 1.5 : Signaux pour les différents mots du vocabulaire.
[æs parasites pouvant apparaître entre les mots ou altérer ces derniers ne gênent pas vraiment
dans la mesure ou il est possible d'identifier le mot prononcé par comparaison du signal altéré avec les différentes possibilités en un point du réseau. La fenêtre est ensuite recalée plus loin. Ce recalage implique donc une prédiction. Cette amélioration apportée par le modèle de cohorte (Marslen, Wilson), permet une reconnaissance d'un mot avant sa terminaison effective.
ollage
ilf
bravo9
marsan
décollage
Figure 1.6 : Exemple d'extraction de mots par segmentation dans un signal vocal continu.
.l
ô,
- 1l -
stand-by
Rapport de stage
SYSPEO
Ceci permet donc de valider une séquence longue (plusieurs phonèmes) bien commencée et mal ou non terminée à la condition qu'il n'y ait pas d'ambigi.iité formelleT. Certains mots prononcés peuvent ainsi être ignorés s'ils n'appartiennent pas à la syntaxe commencée. De même, les références terminales oubliées sont rajoutées à la condition qu'aucun choix arbitraire ne doit être fait. La force de cette technique vient de la tolérance aux hésitations, bruits de fond, perturbations du signal et autes altérations liées à la vitesse d'élocution, I'intensité vocale ou l'intonation qui peuvent être différentes8 de celles utilisées pendant I'apprentissage. La comparaison entre le signal identifié et celui enregistré à I'apprentissage produit un seuil qui est lié à la référence reconnue. Libre ensuite à I'application de rejeter certains mots au seuil trop élevé ou une phrase avec un seuil moyen trop fort.
La faiblesse du modèle déterministe est cependant liée à la dépendance syntaxiqueg et
à
I'absence d'un mécanisme de retour arrière perrnettant de choisir une autre branche du réseau en cas d'échec. Ceci est particulièrement flagrant avec une syntaxe volontairement ambiguë :
Figure 1.7 : Exemple de reconnaissance erronée d'une phrase.
Ici, I'ambigùité apparue avec I'hésitation homophone de deux a orienté la reconnaissance vers une branche syntaxique erronée. Le reste du signal doit donc être rejeté. Ce type d'erreur est 7 Sitourrrr-à-gaucheestuneréférenceduvocabulaire,tourner-a...permettradelareconnaître(etlerecalage sur la suite du signal se fera correctement). Maintenant, si la référence tourner-à-droite est également connue du vocabulaire, il y aura ambigtiité de reconnaissance et donc rejet.
8 C"tte différence doit être légère pour les entités courtes (dans le temps) puisque la coarticulation ne suffit pas toujours à lever les ambigûités de reconnaissance (cap et quatre, deux et noeuds, etc...) par contre, peut être élevée si les références sont longues (on peut alors parler de vocabulaire multi-locuteur si I'apprentissage à été réalisé par un locuteur et
amélioré par d'autres pour tous les mots posant des problèmes
reconnaissance.)
9 Il est impossible
d'inverser deux mots et d'être reconnu.
-18-
de
Rapport de stage
SYSPEO
normalement évité par I'utilisation de seuils d'acceptabilité pour une référence et si deux a été correctement appris, I'image sonore de I'hésitation recewa à la comparaison avec deux un score trop faible et la fenêtre sera suffisamment agrandie pour reconnaître marsan et choisir la bonne branche de la syntaxe. L'hésitation sera rejetée puisque la syntaxe pourra êffe respectée avec le reste du signal (décollage).
4 . LES BESOINS EN TOLERANCE L'inconvénient de I'analyse globale avec recalage interdit donc un éloignement syntaxique. Ainsi, une phrase est soit correcte, soit rejetée. Dans ce dernier cas, il n'est pas possible de connaîffe la cause de I'erreur. Il apparait donc intéressant, dans un but initialement pédagogique de pouvoir assister le locuteur lors de I'utilisation de I'application : - En précisant les éléments de vocabulaire manquants. - En éliminant les références superflues. - En reconstruisant la phrase sur le modèle syntaxique autorisé.
4.1 - Les chiffres sous DATAVOX
la coarticulation pour les références courtes en contexte augmente considérablement le temps d'apprentissage à cause du grand nombre de combinaisons possible des chiffres entre eux pour exprimer une grandeur (les chiffres étant toujours des références courtes). Pour cette raison, un fichier spécial multi-locuteurs multi-références est utilisé conjointement aux références monolocuteur apprises. Le principe repose là encore sur un moyennage obtenu pour cette sous-syntaxe (voir le point 4.2) par un apprentissage d'un ensemble d'utilisateurs de sexe, de timbre et d'accent différents. Cette approche permet donc une bonne reconnaissance (90 Vù10 uu"" un temps d'apprentissage considérablement diminué, bien qu'il faille encore insérer cette sous-syntaxe dans le contexte syntaxique de I'application. L'intégration de
Le principe de reconnaissance repose ici sur I'utilisation d'algorithmes de classification qui associent plusieurs modèles acoustiques pour une même référence et permettent de préciser I'appartenance à une classe pour un élément à reconnaître.
4.2 - Une syntaxe pour les nombres Pour fiabiliser la reconnaissance des nombres sans se soucier du surplus de temps imposé par I'apprentissage, il faudrait se définir une syntaxe lourde mais incluant tous les cas d'association. Dans I'exemple ci-dessous, la syntaxe perrnet d'appréhender tous les cas
10
A co*pater avec un tâux
de reconnaissance de 99Vo pour des références longues en contexte.
-lv-
Rapport de stage
SYSPEO
possible de coarticulation mais autorise certaines inégularités (dix trois, soixante dix deux ou encore vingt et trois). Il importe évidemment de définir une grammaire aussi rigide que possible non pas pour que ces formulations incorrectes soient rejetées mais pour qu'elles ne soient jamais produites en cas de mauvaise prononciation (un hasardelx vingt...trois par exemple ne devrait pas donner vingt et trois).
dizaine-1--dix
|-vingt l--tronie
Fquarsnle l-cinquante
|-soixante--dix
tL-quatrevingl-Élir nombrê-1-99
nombre.l -99
onzê douze
cent-fïbro-l-es
lreize quaiorzo quinze ssize
disit-cenllïbro.1-ee un
*"*""ï
9t
-un
dgux
dizainefigit
trois qualre cinq stx sepl huit
nombre-l1-16
digil
neuf
Figure 1.8 : Exemple de syntaxe DATAVOX permettant de recùnnaître 1a00 entiers.
Une autre approche consisterait à n'utiliser que des digits, limitant ainsi le nombre total de permutations mais rendant alors le dialogue beaucoup plus artificiel.
Une syntaxe anglaise combinant les deux procédés a été tentée, mais le résultat s'est avéré décevant pour certaines valeurs (différencier 2-6.3 eL 2-63 ou 203) et la fiabilité eénérale était nettement désradée.
-(u-
Rapport de stage
SYSPEO
5 . RECHERCHE ET CHOIX D'UN MODELE 5.1 - DATAVOX et la syntaxe Dans le système classique d'utilisation de I'environnement DATAVOX, la syntaxe est sous le contrôle du matériel et du logiciel AMADEUS. Il apparaît donc indispensable de pouvoir conserver les capacités de ffaitement des signaux tout en supprimant les contraintes syntaxiques (voir figure 1.9).
de reconna rec0nnatssance
w'
canes 0e rec0nnalssance canes 0e reconnarssance
TIIII datavox avec syntaxe
bravo9 décollage
dalavox sans
bravo9 décollage
syntaxe
+
analyse syntaxique
tolérante
répétez
!
Veuillez préciser un indicatit !
Environnement mixte coopératif
Environnement actuel
Figure 1.9 : Recherche d'un environnement fiable et pédagogique.
Avec I'environnement actuel, c'est à dire, un PC et une application DATAVOX, il n'y a pas moyen d'allier fiabilité et souplesse d'utilisation dans le sens ou une phrase non reconnue est perdue. Pour combler cette lacune, une solution plus chère mais facilement réalisable consisterait à utiliser deux environnements DATAVOX, l'un ayant la syntaxe à sa charge et plus prioritaire que le second, ne pouvant lui reconnaître que des mots d'un vocabulaire (en I'occurence le même) et confiant I'analyse syntaxique à une application annexe. Toutes les phrases prononcées seraient systématiquement envoyées aux deux applications, la seconde entrant en action dès que la première ne saurait résoudre.
-21 -
Rapport de stage
SYSPEO
5.2 - DATAVOX sans la syntaxe
-
I1 est Possiblell d'utiliser I'environnement DATAVOX pour écrire une application de reconnaissance vocale libre. Dans ce cas, la syntaxe est absente et tous les mots du vocabulaire peuvent se suivre sans conffaintes d'enchaînement ou de nombre. On tombe alors dans un cas de couplage maximal et les risques d'erreurs au moment de la reconnaissance deviennent élevés à cause du grand nombre de choix possible (comparer la figure 1.10 avec les figures 1.6 et 1.7). De plus, un mot peut être coupé en deux ou plus si des groupes de syllabes identifient des références appris es.
lÏ| a
r s a n
s t a It i I I
s e r ;" I
a q
le
stantrbY
reconnu
\>
stabiliser bravog iff-stand-by
: Exemple exagéré des problèmes de reconnaissance de mots isolés avec un sysfème conçu paur travailler avec l'aide d'une syntaxe.
Figure 1.10
Les inconvénients de cette méthode sont du reste assez gênants
-
:
La fiabilité de la reconnaissance est inversement proportionnelle à la taille du vocabulaire. Les références courtes sont difficilement reconnues suite à I'impossibilité de s'aider de la coarticulation pour élargir la zone du signal à traiter. Des mots non prononcés peuvent s'intercaler dans la phrase reconnue. Des mots prononcés peuvent être remplacés par d'autres. Une référence longue prononcée peut être décomposée en références courtes apprises si les images spectrales concordent avec les segments.
11 bien que non préconisé par VECSYS
!
-2?,-
Rapport de stage
-
SYSPEO
læs seuils de reconnaissance perdent leur signification.
Par conffe, les avantages permettent de répondre à une partie des besoins
:
Absence de rejets dès lors que le vocabulaire devient important et que les références courtes (en terme de phonèmes) sont nombreuses. Bonne reconnaissance sur les références longues. Apprentissage plus rapide. Syntaxe détachée et donc modifiable à volonté sans répercussion sur I'apprentissage.
Comme il a été précisé dans le paragraphe 4, le principe de la segmentation d'un signal consiste en une analyse dynamique des spectres appuyée sur une syntaxe. C'est cette dernière qui permet de résoudre. Sans elle, un choix arbinaire est fait dans le treilli de mots candidats à une reconnaissanco pour un début de signal (lié à la compilation de I'environnement de reconnaissance). Celui-ci pourra ôtre élu avoc un score très bon ! Le recalage temporel sur la suite du signal entraînera alors soit :
-
une élimination du signal restant jusqu'au prochain segment reconnu. une reconnaissance en cascade de références non prononcées mais pouvant être extraits (coarticulations incluse s) du si gnal re stant.
La
connaissance de ce mécanisme perrnettra, avec I'habitude ou un apprentissage automatique (voir le paragraphe 7.2.5.7 traitant ce sujet) de retrouver une référence à partir de sa segmentation arbitraire puisque cette dernière aura de fortes chances d'être identique puisque le réseau de reconnaissance est figé. Cependant, I'expérience à montré que la phrase prononcée revenait tellement bruitée que toute velléité de retraitement été vouée à l'échec.
6 - LES SOLUTIONS PROPOSEES 6.1 - Similitude avec les méthodes analytiques. Iæs méthodes analytiques classiques de traitement de la parole visent à décomposer un signal vocal en une suite en phonèmes (voyelles et semi-voyelles plus consonnes voisées, fricatives et plosives) pour en reformer les mots prononcés. Son objectif est de rassembler suffisamment dinformations d'ordre général sur les détails pour permettre un traitement et une reconnaissance multi-locuteurs sans apprentissage préalable. L'analyse du sonagramme permettra donc de retrouver les phonèmes prononcés parmi la trentaine qui compose la langue française. Malheureusement, cette technique n'est pas aussi simpliste à cause des problèmes de coarticulations qui modifient la sonorité d'un phonème en fonction de son contexte. l,e continuum sonore n'est pas aisé à segmenter sur la base d'images acoustiques de phonèmes même multi-référencés. La solution communément admise consiste à générer un treilli de pseudo-phonèmes plausibles confié à une analyse de niveau supérieur.
-23-
Rapport de stage
SYSPEO
La phase suivante intervient pour appliquer un certains nombre de règles phonologiques établies par les linguistes. Ces règles s'apparentent à une syntaxe sur les phonèmes. Elle permettent de prédire I'apparition d'élément phonétiques nouveaux ou les influences mutuelles: - disparition - fusion - assimilation
L'idée d'utiliser un système expert pour I'exploitation de ces règles est du coup très séduisante car il permet de modifier aisément la connaissance en fonction du secteur d'implantation du système (accents régionaux, type de locuteur, etc...).
La sortie du module phonologique, qui à traité le treillis de phonèmes brutes, est confié au module lexical sous forme d'un nouveaux treillis de phonèmes pour tenir compte des ambigûités non résolues. Son but est de tenter une association des groupes de phonèmes en mots. La validité de la succession des mots ainsi formé est alors confié à I'analyseur syntaxique qui propage son traitement vers le module sémantique puis pragmatique qui rétabli la phrase dans son contexte et y associe les éléments sémantiques sous-jacents.
De plus, est souvent difficile de faire la différence enffe syntaxe et sémantique puisque qu'elles s'inter-agissent
:
- EIle prend sa voiture parce-qu'elle n'a plus de pain. - EIle prend sa voiture parce-qu'elle n'a plus d'essence.
Ici, la syntaxe est identique et seule la sémantique peut lier le sujet de la subordonnée au sujet du complément (cas 2) ou de la principale (cas 1). Le niveau pragmatique saura alors lier elle à Laurence plutôt qu'à Céline pour peu que la première ait plus de chance d'être concernée par I'action au vu du contexte.
L'inconvénient de I'analyse ascendante (KEAL, MYRTILLE I) tient au volume croissant d'informations transitant vors les niveaux supérieurs à tel point que son tomps de traitement devient prohibitif.
L'autre approche (analyse descendante, HWIM) consiste à faire un parallèle avec le mécanisme humain de compréhension. Un début de phrase syntaxiquement correcte conrient des éléments sémantiques qui réduisent la dynamique de la suite et plus la phrase se complète (subordonnées incluses), plus le sens se précise et moins il y aura d'erreurs de compréhension même si des fautes sont détectées en fin de message12. Pour cela, le poids des modules de bas niveau est inversement proportionnel au degré de traitement de la phrase. Malheureusement, cette méthode est très sensible à certaines erreurs ou tournures et s'équilibre généralement autour du module syntaxique Pour remédier à ces problèmes, le processus n'est plus simplement ascendant ou descendant mais mixte (MYRTILLE II) car de nombreuses erreurs doivent être traitées à tous les
12 Ludétection des
des erreurs ou des ambigûités de sens ou de rapport au contexte sont à la base de la plupart jeux de mots. Une machine ne poulra avoir la moindre once d'humour sans la possibilité de jongler avec
les phrases, leurs sens et leurs portées eu égard à une somme très vaste de connaissances communes.
pf
SYSPEO
Rapport de stage
niveaux. Un feed-back entretient une certaine intégrité entre ce qui a été traité et ce qui doit l'être (processus descendant) avec une subordination des modules de niveaux inférieurs aux modules supérieurs.
tp'"*,"*l --F-"tt."pseudo-phonèmsg
tr"*d*1
r->
--Ttr"*phonèmes
demands de nouvslls proposition
>EilI -$i,,"0".o,"
.-> t\-l -<l
prédictions hypotlhèses
Fy,r*q,,;l
_
t7l
--$-u*0n,"*.
dsmande de prise sncompts
phrase plausiblg vérilicalion ot lraitêment
compréhension
ohr:rsg correcle
iilégralion au conexls
Figure
1.ll
: La méthode analytique classique et l'approche de SYSPEO
Une technique très intéressante relève de la technologie des black-boards (IIEARSAY II) évitant de soumettre les modules à une dépendance hiérarchique. Dans ce modèle, toutes les sources de connaissances (modules) participent en même temps à I'analyse du signal chacun dans son domaine de compétence. Ainsi, les informations évoluent aux travsrs de niveaux traitées par les modules habilités à travailler sur ces derniers. Des critiques de ce systèmes visent à mettre en évidence le parallèle de fonctionnement du black-board avec son concurrent séquentiel en prouvant que la dépendance hiérarchique est simplement repoussée de la construction du système à son fonctionnement.
6.2 - L'approche de SYSPEO
la syntaxe qui aidait considérablement le mécanisme de reconnaissance, I'application se retrouve, en fin d'analyse, avec une suite de références reconnues, conformes ou proches de la phrase du locuteur. Il importe donc de s'appuyer sur un environnement externe pour rétablir la phrase correcte en tenant compte :
Privé de
d'une syntaxe, d'une liste d'homophones remarqué s, d'une liste de svnonymes.
-25-
Rapport de stage
SYSPEO
Un module pennettra de proposer divers
exemples de phrases en se basant sur une permutation de certains éléments de la phrase. Le problème sera de trouver une méthode pennettant de reconnaître les mots permutés de façon à rétablir une phrase syntaxiquement correcte tout en lui conservant son sens initial. Il ne faudra donc pas seulement tenter une permutation de mots clés mais d'un ensemble de mots.
Le module s'occupant de squelettiser la phrase obtenue perrnet alors d'obtenir une vision globale de la phrase à reconnaître. Cette approche pseudo-sémantique permet d'accélérer le processus de reconnaissance quand la phrase comporte relativement peu d'erreurs. L'analyse syntaxique s'inspire de la technique de recherche par îlots de confiance (HWIM). Ces derniers ayant été isolés dans le squelette de base. La syntaxe permet de supprimer ou rajouter les mots en ffop ou absents lors de la recherche de calage des îlots dans celle-ci. La liste des homophones sert à remplacer un mot syntaxiquement incorrect en son équivalent probablement prononcé mais confondu avec un autre. La liste des synonymes perrnet de traduire une phrase sémantiquement correcte en sa forme syntaxique (puisque c'est cette dernière qui devra être retenue par l'élève). importe donc de savoir recaler une phrase bruitée dans le réseau syntaxique et tenter, pour cela, de modifier cette dernière jusqu'à arriver à une solution admissible. Cette analyse devra cependant être temporisée pour ne pas bloquer trop longtemps le locuteur. Une phrase non reconnue au bout de 5 secondes devra être systématiquement abandonnée. I1
Cette façon de procéder permettra de reconnaître des phrases douteuses, incomplètes ou éloignées de la syntaxel3 mais risquera également de commettre de lourdes erreurs. De toutes façons, il serait illusoire de vouloir pernettre à un locuteur de s'abroger d'une syntaxe en traitant des phrases altérées alors que rien ne permet de conclure que I'altération (ajout, manque, erreur syntaxique ou sémantique) vient du locuteur plutôt que des cartes de reconnaissance. De plus, s'il est aisé de supprimer un mot en trop (quand on a de fortes présomptions sur la syntaxe finale) ou de rajouter des terminaux manquant, il devient impossible de faire un choix arbitraire une fois calé sur un noeud du réseau depuis lequel partent plusieurs arcs. Ce type d'erreur aura obligation d'être signalé mais le mécanisme devra néanmoins recouvrir I'erreur et continuer.
13 en terme de succession de références.
-24-
Rapport de stage
SYSPEO
7 - DESCRIPTION DE SYSPEO 7.1
- Ce qu'il fait
SYSPEO est une application complète écrite en C Microsoft pour répondre aux spécifications du cahier des charges. L'usage du C a été commandé par I'utilisation de la librairie DATAVOX permettant de contrôler les cartes de reconnaissance à partir du langagel4.
Pour permettre une utilisation souple et puissante se rapprochant de celle fournie sous DATAVOX, SYSPEO utilise des fichiers texte décrivant tout I'environnement. Il assure également un suivi de cohérence entre les diverses descriptions (en précisant les erreurs ou en avertissant I'utilisateur) ainsi qu'avec I'environnement de reconnaissance et de synthèse vocale (qu'il pourra modifier le cas échéant). SYSPEO ne pouvant fonctionner qu'une fois I'environnement rendu complet et les structures de données créées.
7.1.1 - Au démarrage
:
I nitialis ation de l' enviro nneme nt :
- recherche de I'environnement DATAVOX. - recherche de I'application, - recherche du locuteur et des références du vocabulaire- chargement des fichiers de reconnaissance, - initialisation de la liaison série, - initialisation de la base de temps pour le moniteur.
Contrôle de I'intégrité des données : - syntaxe des fichiers décrivant
:
- les groupes lexicaux, - les équivalences phonétiques et synonymiques, - la grammaire, - la grammaire générative du moniteur, - le vocabulaire annexe,
- absences, ambiguïtés et contradictions entre tous ces fichiers, - parenthésage colrecte des expressions de la grammaire, - utilisation correcte des opérateurs.
L4
Le C++ aurait éventuellement pu permettre une plus grande souplesse d'écriture de I'application et surtout, aurait permis de définir un réseau autrement qu'avec une grammaire générative classique, incluant par là-même (et au travers de méthodes) des noeuds procéduraux facilement. modifiables par un utilisateur extérieur. Cette approche permettrait de définir un contexte actif sémantique beaucoup plus facilement que par des fonctions appelees explicitement par I'analyscur syntaxique.
_r'1
_
SYSPEO
Rapport de stage
Compilation d'un envlronnement syntaxique défini par : - une grammaire générative non récursive, - création d'un réseau syntaxique traduisant les règles syntaxiques et lexicales,
- un ensemble de groupes lexicaux, - création de trois tables dynamiques hiérarchisant ces données, - des équivalences phonétiques et sémantiques entre terminaux du lexique, - création de liens entre les éléments concernés aux niveau des tables.
Contrôle de la cohérence des informations : - dans les tables, - au niveau du réseau et de la matrice des liaisons, - entre le vocabulaire utilisé et celui appris sous DATAVOX, - au niveau des fichiers de synthèse vocale. Création de l'environnement du moniteur : - analyse de la syntaxe des commandes, - création des structures de données supports, - vérification de I'existence complémentaire des mots à synthétiser. Création de l'environnement tour de contrôle : - recherche des identifiants des pistes dans la syntaxe, - création d'informations associées aux pistes, - vérification de I'existence complémentaire des mots à synthétiser.
Création du support du réseau visuel : - disposition sans chevauchement des noeuds du réseau syntaxique, - affichage d'une certaine densité de liaisons.
7.1.2- A I'utilisation
:
Analyse les ordres clavier :
- basculement vers l'écran graphique ou texte, - initialisation des cartes, - affichage des structures de données (pour le deboggage), - accès manuel au comportement du moniteur, - entrée manuelle d'une requête (au lieu d'utiliser la commande vocale). Analyse les phrases enprovenance des cartes :
- déclenchement de I'analyse de la phrase, - squelettisation, - recalage dans le réseau sur la base des îlots de confiance, - élimination des mots parasites et hypothèses des mots manquants, - traitement du message analysé et reconnu, - requête interne exécutée,
-2R-
Rapport de stage
SYSPEO
- ordre de signalement d'une piste au contrôleur, - demande exemplaire à la grammaire, - requête de navigation passée au moniteur.
Proposition à l'élève de procédures : - choix du prochain ordre à donner, - synthèse vocale de I'ordre au bout d'un temps défini, - attente d'une validation de I'ordre pour passer au suivant, - correction de la reponse de l'élève si elle s'en écarte sensiblement, - répétition de I'ordre en cas de non réponse ou réponse erronée. Vériftcation des requêtes de l'élève relativement : - à I'ordre attendu, - aux pistes existantes et prises en charge, - à la mécanique du vol. Communîcation avec le simulateur SIMU_V22 : - traduction de la commande en codes ASCII selon une procédure normalisée, - établissement de la communication et attente de validation, - analyse de I'erreur de retour et traduction en clair (synthèse vocale).
7.2 - L'analyse de la phrase
La fonction essentielle de I'application SYSPEO est de retrouver la phrase effectivement prononcée à partir d'une liste bruitée de mots. Cet ensemble de mots prou"nunce des cartes de reconnaissance est accessible depuis un buffer mémoire après une"ninierruption système. Il représente plus ou moins fidèlement ce qui a été prononcé par le locuteur Ln fonction d'un apprentissage préalable. Il s'agit alors de vérifier la bonne sffucture de la phrase en abordant les points suivants : - Hypothèse générale d'un chemin dans le réseau syntaxique, - Replacement des mots permutés, - Elimination des mots non attendus, - Hypothèse des mots manquants, - Estimation du degré de reconnaissance.
Il n'y a pas de boucle après le dernier point. Une fois un squelette formé et accepté, il devra être impérativement calé dans le réseau. Si plusieurs choix sont possibles, ils seront tentés uniquement si les choix précédents n'impliquent pas un trop grands nombre d'hypothèses ou de suppressions. Ces restrictions interdisent donc une remise en cause générale de la phrase qui a été comprise dès l'étape de squelettisation mais autorise des retours-arrière lors de l'étape de calage des îlots de confiance et lors des hypothèses et suppressions de mots entre ces éléments stables. Il faut se souvenir que les modules Oe squetettisation et d,analyse syntaxique comportent des fonctions d'aide à la décision basées ,ur. à., principes sémantiques simplesl5 destinés à aider à la résolution d'ambigûités bien que la grammaiie, à sa base, le 15
Le
t"tte
extra-lexical serait peu être plus approprié dans le sens où ces fonctions se base sur ce qui a été
-29-
Rapport de stage
SYSPEO
soit nécessairement très peu.
7.2.1 - Nécessité d'une syntaxe
La syntaxe, sous quelque forme qu'elle soit, est un préalable à la reconnaissancel6 d'une phrase car c'est elle qui préside à la succession des mots dans une phrase. Le but est d'autoriser I'ensemble des motifs acceptables en une description générique (grammaires formelles ou génératives) facilement modifiable (et vérifiable).
Se passer d'une syntaxe précise tout en pennettant une reconnaissance supposerait une analyse dirigée par le lexique où les mots clés reconnus (dépendamment du contexte) aideraient à supposer les éléments à venir. Ce type d'analyse conceptuelle qui permet d'aborder des langages non normés (par une syntaxe) ne permet cependant pas de
:
- proposer un modèle de langage strict tout en y autorisant un non-respect des formes. - permettre une modification aisée de I'application.
De plus, si leur application sur des textes est intéressante, ils ne sont pas véritablement performants sur des phrases courtes, indépendantes du contexte et comportant peu de mots clés (l'apparition d'un nombre peut être attendu en tant qu'entité grammaticale mais difficilement en tant que valeur, or, c'est cette dernière qu'il importe de reconnaître précisément). De plus, le cahier des charges spécifiait à propos du langage à reconnaître que -
:
l,es commandes prononcées étaient nécessairement courtes. Elles n'étaient jamais ambiguës ni sur le sens ni sur la porrée des ordres. Elles précisaient explicitement le contexte. Elles pouvaient n'avoir aucun rapport entre elles17.
7.2.1.1 - La synta^xe de SYSPEO
Pour pouvoir modifier facilement I'application, il a fallu définir la grammaire à partir d'une source texte, éditable depuis n'importe quel éditeur. Un certain nombre de conventions typographiques ont du être précisées pour les éléments suivants : - Sous-syntaxes - Groupes lexicaux encadrés par **# - Terminaux du vocabulaire encadrés par <> admis ou ce qui reste invalider d'autres.
à analyser pour succinctement valider certaines interprétations syntaxiques et
en
16
Reconnaissance et non compréhension qui fcrait intervenir des notions de sémantique difficilement compatibles pour cette application avec une description syntaxique. Il s'agit de retrouver une forme et non un sens, celui-ci étant isolable de façon unique à partir de la forme. 17 Un peu comme un centre serveur émet des messages à entêtes dans un réseau, un contrôleur aérien donne
des ordres à I'intention d'une seule piste sur une fréquence écoutée par un grand nombre de pilotes. Celui concerné répond, les autres gardant le silence. Ainsi, deux ordres du contrôleur ou à son intention peuvent s'adresser (respectivement provenir) successivement à (respectivement de) deux pistes différentes. La notion de présupposés devenant caduque (et même illégale).
-30-
Rapport de stage
SYSPEO
De la même façon, des symboles opérateurs ont également été définis
. I 0 t) tl
:
suivi de (priorité à gauche, môme précédence que l) ou bien (priorité à gauche, même précédence que .) groupage d'éléments élément optionnel ou groupage d'éléments optionnels élément clé ou goupage de d'éléments clés suppression temporaire de portée de mot clé.
axiome :#indicatif#. #station# (ordre I manoeuvre); manoeuvre : (<a-gauche> | <a-droite>) . nombres; ordre : <decollage> | <monter> . ((nombre . {<pieds>}) | (<niveau> . nombres) |
<poste-combustion>); nombres : #nombres# .{#nombres# . {#nombres#}};
Figure 1.12 : Exemple de grammaire pour SYSPEO.
Il faut savoir
que la syntaxe ne sert pas seulement à articuler les terminaux entre eux mais à
définir deux niveaux de description
:
- le niveau syntaxique représenté essentiellement par les sous-syntaxes - le niveau lexical traduit par la dérivation de la syntaxe. Si le second niveau servira essentiellement à I'analyse des phrases, le premier perrnettra
:
- de synthétiser les explications sur les rejets - d'aborder la phraséologie aux mêmes niveaux
On considère donc que la décomposition de I'axiome en sous-syntaxes nommées traduit un cloisonnement sémantique ou contextuel voulu. Il était donc important de pouvoir utiliser ces informations pour tenter des explications plus synthétiques. Par exemple, et en utilisant la syntaxe figure 1.13, prenons le cas d'un analyseur classique ayant traduit cette syntaxe par complète dérivation. Si la requête du locuteur est incomplète ou mal reconnue, le système ne saura pas préciser les manques, ou s'il devait le faire, devrait se lancer dans une longue énumération des choix depuis le point d'arrêt. -
Loc : bravo9 marsan rien ; <rien> non reconnu, veuillez préciser <montez> ou <descendez> ou <a-droite> ou <a-gauche> ou <iff> ou <monter-pc> après <marsan>.
- Sys
Avec un réseau incluant tous les éléments de la syntaxe et un analyseur amélioré pour en tirer profit, I'explication d'un rejet se fera de la façon la plus économique possible en fonction du
-
Q1 L)l
*
Rapport de stage
SYSPEO
type de I'erreurl8. - Loc : bravo9 marsan rien
- ,Sys : <rien> non reconnu, veuillez préciser une <commande> après un <indicatif>
phrase :descriptif . commande; descriptif : #indicatif# . #station#; commande :direction instrumentation; direction :((<montez> <descendez>) . <niveau> . #nombres#) | ((<a-gauche> | <a-droite>) . {<cap>} . #nombres#); instrumentation : (<iff> . (<stand-by> | #nombres#)) | <monter-pc>;
#nombres# #nombres# #nombres#
\#nombres#
#nombres#
#nombres#
Figure 1.13 : Arborescence tirée d'une syntaxe incluant règles syntaxiques (grisées) et lexicales
Ici, la
e commande a été retenue pour I'explicatio n cw rien ne correspondait à aucune des sous-syntaxes filles direction et instrumentation. Par contre, le groupe lexical indicatif àété choisi plutôt que la sous-syntaxe descriptif car cette dernière était correctement validée. Ainsi, I'utilisation combinée des noms de sous-syntaxes et de groupes lexicaux sous-syntax
permettent un abord beaucoup plus synthétique et cohérent de la syntaxe.
7.2.1 .2 - Les groupes lexicaux
Une grammaire générative est généralement composée de deux ensembles de règles
:
- læs règles syntaxiques - Les règles lexicales
18
L'infot.ution étant tirée de la syntaxe môme, le souci de modularité de I'application est respecté.
mécanisme peut cependant être désactivé avec une simple option de compilation.
-32-
Ce
Rapport de stage
SYSPEO
Iæs premières s'occupent de la forme, les secondes du contenu. Par règles lexicales, il faut plutôt entendre ensemble des terminaux rassemblés sous un même nom. Cette économie d'écriture permet une syntaxe plus lisible et une répercussion des ajouts ou des retraits de terminaux à toute cette dernière de façon implicite.
La grammaire de SYSPEO ne contient pas de règles lexicalesl9 mais y réftre par des goupes qui contiennent chacun un ensemble de terminaux. Ces groupes et leur contenu sont définis dans un fichier spécial traité avant la compilation de la grammaire et le vocabulaire est alors comparé avec celui appris par le locuteur. Les conffaintes sur les groupes lexicaux sont les suivantes : - Un élément est unique et ne peut appartenir à plus d'un groupe2O à la fois. - Un groupe ne peut contenir plus d'un élément par défaut - Un groupe pris comme défaut ne peut contenir d'élément par défaut - Tous les éléments doivent appartenir au vocabulaire du locuteur - L'ensemble des éléments doit redonner le vocabulaire
7.2.2 - Nécessité d'un réseau syntaxique
7.2.2.1 - Les automates déterministes.
Le but de tels automates est de proposer un mécanisme de reconnaissance (basé sur
une
synttxe ou une grammaire) ne travaillant pas en retour-arrière. C'est-à-dire que le traitement d'un groupe de mots suppose un principe de lecture en avant pour résoudre les ambigûités. Rapporté à un réseau de transition augmenté, cela reviendrait à choisir le meilleur arc en fonction d'un regard en avant de quelques mots. Ce type d'analyse favorise donc une reconnaissance en une seule passe dans le réseau mais comporte deux problèmes2l : - Il faut choisir empiriquement la taille de la fenêtre de résolution d'ambigùités. - Comment traiter les contradictions apparues dans cette fenêtre.
En effet, le deuxième point lié à I'impossibilité de revenir en arrière pouna (comme le fait AMADEUS lors de son analyse du signal) égarer la reconnaissance sur une branche de la syntaxe par lecture en avant d'un mot erroné
!
L'analyse déterministe, basée sur une grammaire systémique ou casuelle (Fillmore) permet de choisir une représentation sémantique ou grammaticale d'une phrase sur des points ambigus. Dans I'exemple ci-dessous, les suppositions homophoniques et syntaxiques ont permis de retrouver la phrase d'origine et de lui donner une analyse grammaticale même si cette
19 mais
il
est possible de le faire en définissant autant de sous-syntaxes dérivées par une liste de terminaux
séparés par des l. Le réseau obtenu risquerait. alors d'être énorme et de ralentir le processus de reconnaissance.
20 C"tt" contrainte n'est pas nécessaire au bon fonctionnement du programme. La fonction la contrôlant peut d'ailleurs être rendue inopérante par une simple option. 21 toulourr rapporté à notre cahier des charges.
-33-
Rapport de stage
SYSPEO
dernière est rendue inutile dans le cadre de notre application.
Cette méthode est cependant inadaptée à I'analyse de phrases comportant des éléments erronés. Or, il s'agit moins ici de comprendre ce que le locuteur a mal dit ou ce qui a mal été reconnu (ou les deux à la fois) que de retrouver les éléments manquants ou en ffop dans un mess age apparemment incohérent.
Phrase prononcée : Le ver à soie et dans le verre vert verre I
'.'2',n'
' mi.-
âdj mæ sing
t
dans-le
';
"ing
- Veft
@ôj
< .
autorisé par la syntaxe reconnu par regaro en avanl écar1é par la grammaire
adi mæ sing
ait
J
Figure 1.14: Ambiguités résolues par un regard en avant.
7.2.2.2 - Les réseawc de transitions.
Le but de cette méthode est de traduire une syntaxe en un réseau ou chacun des noeuds correspond à un état de reconnaissance et chacun des arcs à l'étape suivante (l'analyseur est en fait intégré au réseau). L'intérêt d'une traduction de grammaire fonnelle en un réseau réside en quatre points :
-
Dérivation de la grammaire et donc, simplification du réseau par rapport à sa version arborescente incluant de nombreuses redondances. Possibilité de définir des réseaux récursifs ou des sous-réseaux. Pos sibilité d'introduire de s arc s rétro grades. Possibilité d'associer des fonctions de contexte à chacun des noeuds22 ou à certains arcs23
L'inconvénient est que, si ce mécanisme est bien adapté à une analyse syntaxico-sémantique d'une phrase, il devient lourd à gérer dès lors que cette dernière présente des entorses à la sYntaxe.
22 Réseuu* à noeuds procéduraux. 23 Réteuu" de transitions augmentés. Ces fonctions servenl. en particulier à ordonnancer les arcs en fonctions
du contexte reconnu de façon à favoriser certaines transitions plutôt que d'autres. On retrouve ici le mécanisme inversé des analyseurs déterministes : on se sert du passé pour orienter un choix alors qu'avec I'autre mécanisme, on utilise le futur (regard en avant) pour décider. all -().i-
Rapport de stage
SYSPEO
7.2.2.3 - Le réseau retenu pour SYSPEO
La grammaire de I'application est définie par un ensemble de règles syntaxiques et lexicales. La dérivation de I'axiome et de ses sous-syntaxes produit un réseau (qui n'est qu'une représentation pratique de I'environnement de données) dont les noeuds typés sont soit des terminaux soit des groupes lexicaux et décrivant également : - Le nom de la sous-syntaxe. - Le nom de la sous-syntaxe mère. - Le type de l'élément décrit. Ce réseau est une amélioration de la version arborescente de la syntaxe puisqu'il transforme ce dernier en un graphe orienté. Le typage des noeuds permet de pouvoir rassembler dans le réseau les règles lexicales et syntaxiques :
- lexicales pour n'analyse des phrases, - syntaxiques pour la synthèse des résultats et la génération des exemples.
Q
enrrde
I
descriptil
.\
#indicatif# I #statlon# -
I
commande
Figure 1 .15 : Transf ormation en réseau de la syntaxe figure 1.13
7.2.3 - Nécessité drun squelette
Le principe retenu pour une analyse tolérante consiste à essayer de faire une analyse globale de la phrase sans se soucier de la rigidité de la syntaxe. Cette approche s'apparenterait aussi à une reconnaissance de forme avec affinement syntaxique. I1 s'agit de trouver suffisamment de mots clés pour que leur nombre et leur enchaînement fournisse de fortes présomptions sur la nature de la phrase effectivement prononcée.
aÂ
-(J(,-
Rapport de stage
SYSPEO
- Au vu de la syntaxe et de la phrase reçue, le locuteur a probablement voulu dire cela. - Comment I'a-t-il fait ? - Qu'a-t-il correctement dit ? - Qu'a-t-il oublié ? Cependant, comme les risques d'erreurs de reconnaissance sont importants sur certains mots et beaucoup moins sur d'auffes, il importe de les discriminer avec soin. Le critère de choix de ces mots clé restera à la charge de celui établissant la syntaxe.
Il faut savoir que cette phase
de I'analyse n'est pas obligatoire. L'analyseur peut fonctionner lui permet surtout d'éviter de supprimer certains mots effectivement prononcés pour en supposer d'autres en accord avec certains mots parasites considérés. Un squelette aura donc une triple action : avec une squelette vide. Mais cette technique
-
Reconnaissance imparfaite mais immédiate de la phrase par rapport à la syntaxe évitant ainsi une validation longue par recherche arborescente aveugle. Amélioration de la vitesse de reconnaissance puisque retour arrière entre deux îlots de confiance uniquement. Fiabilité de la reconnaissance puisque les mots clés ne sont jamais éliminés.
A partir d'une phrase recue contenant un certains nombre de mots clés, un squelette pourra en être tiré. Plus ce dernier contiendra d'éléments, plus la phrase aura de fortes chances d'être reconnug. phrase prononcée : bravo9 marsan monter niveau deux six pieds terminé phrase reconnue : bravo9 trois marsan monter pieds niveau deux pieds squelette trouvé : bravo9 marsan monler niveau
Figure 1.16 : Obtention d'un squelette dans une phrase bruitée.
Une fois le squelette obtenu, I'analyseur tentera de I'ancrer dans le réseau et procédera ensuite à un calage des éléments non clés entre ces îlots de confiance; les retours en arrière ne pouvant avoir lieu qu'entre deux îlots forcément calés.
-36-
Rapport de stage
SYSPEO
7.2.3.1- Construction [,e principe d'exffaction d'un squelette d'une phrase suppose deux données
:
- La liste des mots clés du vocabulaire24 - Le réseau syntaxique.
Pour une liste complète donnée, contenant éventuellement des éléments clés parasites, différentes sous-listes devront être extraites. Avec chaque sous-squelette obtenu et comportant un nombre minimum d'éléments, un calcul de pondération sera appliqué, basé sur la distance séparant effectivement en nombres d'arcs, tous les mots de la liste.
La sous-liste ayant le poids minimum sera conservée sous certaines conditions portant sur la valeur du poids et le nombre de mots clés retenus.
bravo9 marsan monter pieds niveau pieds bravog marsan
\
/\
monter
<
/
,/
\/ \/ o'\'7'\'7\"z'o' '\,/' L,./
\ \r/ /\
/\ t't\V'
Figure
\'tl
\^/
/
1.17 : Pondération des sous-sque/effes observés.
Ici, le squelette retenu serabravo9 marsan monter niveau de poids 1. On remarquera que la phrase prononcée contient pieds et niveau alors que la syntaxe autorise à la fois I'un et I'autre. Ici, I'algorithme de squelettisation fait un choix arbitraire en conserv ant niveau (et pieds seru
donc supprimé) car il ne lui est pas possible25 de savoir si I'erreur commise provient de I'utilisateur ou de la carte; les deux acceptions étant possibles.
24
ll auraitété intéressant, bien que plus compliqué, de pouvoir définir dcs pré-conditions pour l'attribut motclé d'un élément du vocabulaire. Ces pré-conditions pounaient porter sur I'existence de certains autres dans la phrase. La fiabilité de ce procédé est cependant douteusc dans le scns où il y aurait des risques difficilement contrôlables de rejet ou d'activation par la simple présence de mots parasites. 25 En fait, une approche lexicale et sémantique aurait éventuellement pu permettre de lever I'ambigiiité en s'appuyant sur la valeur des informations de la requôte. Cependant, ccs dernières peuvent ôtre enonées ou avoir des domaines de valeurs proches et la confusion pcrsistera pour la zone d'intersection. Dans ce domaine d'irrésolution, une sélection arbitraire devra être faite, par contre, si les valeurs permettent de faire un choix plutôt qu'un autre, elles seront prises en compte. Il faut noter cependant que I'erreur peut également être répercutée sur les valeurs.
-
an ùf
-
Rapport de stage
SYSPEO
7.2.3.2 - Utilité de la matrice des liaisons
Pour calculer le poids d'un squelette, il importe de définir une fonction de calcul de distance entre les éléments du squelette. Cette distance étant fixe, on peut la stocker dans une table donnant, pour un couple de noeuds du réseau, le nombre d'arcs les séparant (figure 1.18). Cette façon, de procéder accélère notablement la squelettisation d'autant qu'il importe de réduire le temps global de la reconnaissance26.
La formule calculant le poids total accorde une grande importance au nombre entrant dans le calcul de façon à favoriser les squelettes les plus longs
d'éléments
:
x(i) donne le mot d'indice idu squelette d(a,b) donne la distance entre les noeuds a et b; rend 99999 sid(a,b)=-1 n = nombre de mots dans le squelette
I
n-1
poids:
d(x(i),x(i+1))2
i-1
(J+1)
A I'initialisation, le réseau est parcouru de proche en proche avec marquage des noeuds visités de façon à marquer les liaisons. Le calcul des distances se faisant ensuite par fermetures transitives.
Cette méthode est rapide et fonctionne bien sur un graphe orienté mais pose un problème dans le cas ou des couples d'éléments clés se retrouveraient dupliqués dans le réseau avec des distances différentes (ce qui est d'ailleurs vérifié et signalé à chaque compilation de la grammaire. L'utilisateur est alors invité à modifier la portée des mots clés gênants avec I'opérateur ^).
Figure 1.18 : Exemple de matrice de liaison erronée.
Ce cas typique de liaison (AB figure 1.18) à deux valeurs ne peut pas être traduit dans la matrice. La liaison la plus courte sera donc arbitrairement choisi et un message sera envoyé à l'utilisateur lui invitant à modifier la grammaire ou le choix des mots clés pour les couples posant un problème. Ceci n'empôche aucunsment la reconnaissance mais peut entraîner des erreurs de squelettisation.
26 Suns I'aide de cette table, un parcours en profondeur serait necessaire pour chaque couple de mots.
-38-
Rapport de stage
SYSPEO
Un remède consisterait à préférer générer la liste de tous les squelettes supportés par la syntaxe avec un formalisme rassemblant toutes les informations présentes dans la table2T avec lequel un calcul de distance similaire pourrait être appliqué. Cette approche à cependant été écartée à cause du temps de traitement important demandé : - par la recherche du squelette correspondant, - par le calcul de son poids.
7.2.3.3 - Elimination de certains squelettes
Un sous-squelette pondéré n'est pas fiable sous deux conditions
:
- trop court - poids trop élevé
lr
second cas se présente pour tout squelette dont un couple n'a pas de liaison dans le réseau. Dans ce cas, un des deux mots clés choisi dans le squelette complet est mauvais. Il y a de fortes chances pour que le mécanisme d'extraction des sous-squelettes en propose un autre de
taille acceptable pour lequel corresponde un chemin dans le réseau. Autrement, la squelettisation échouera (mais pas forcement la reconnaissance ultérieure).
A noter qu'à la suite des tentatives de reconstruction de phrases, beaucoup d'entre elles
ne
donneront pas de squelettes fiables. C'est ce principe même d'élimination qui présidera au contrôle (et à I'a:rêt) des permutations d'éléments.
7.2.3.4 -
U
ne amélioration pour rétablir un bon squelette
Un mauvais choix de squelette entraîne inévitablement une erreur de reconnaissance pour la phrase complète. Cette erreur peut avoir pour conséquences : - Une hypothèse de mots non prononcés en accords avec le restant des mots. - Un rejet pour cause d'impossibilité à supposer des éléments de la syntaxe2S.
Si le second cas peut être accepté par un locuteur débutant, le premier risque au contraire de machine à reconnaître correctement des mots effectivement prononcés. Si une analyse sémantique puis pragmatique de haut niveau n'est pas présente en fin de chaîne, il ne pourra pas y avoir de rejet de la requête.
lui faire douter des capacités de la
27 Exemplede squelette modèle : bravog
I marsan 1 monter 2 pieds. 28 Voir plus bas les contraintes sur les éléments supposables.
-39-
Rapport de stage
SYSPEO
locuteur-*) séqugnce ds mols
Y matric$ syntax+
iêôôhnaiSsanôe
mécaniQue_g,
rejet
du vol
historique des
commandes et état du trafic aérien
définitif
---> phrase,accéptée
Figure 1.19 : Exemple de reprise du squelette ou de la reconnaissance à la suite du rejet du niveau sémantique ou pragnatique
Par contre, en cas d'elTeur, on pourra retenter une nouvelle analyse avec un squelette initialement écarté. Le problème se posant ici tient au temps total de I'analyse qui peut dépasser le maximum admissible pour un traitement temps réel.
7.2.4 - Nécessité des permutations
L'application du mécanisme de squelettisation par rapprochement syntaxique n'empêche cependant pas le rejet d'une phrase comportant tous les mots d'une syntaxe mais présentés dans un ordre différent. Or, un analyseur est tolérant lorsqu'il autorise cette liberté d'expression.
7.2.4.1 - Principe
La solution retenue est basée sur des tentatives de permutations des mots clés avec recherche d'un squelette pour chacune des solutions proposées. Le nombre de solutions étant fortement dépendant du nombre d'éléments à permuter (n!), le contrôle du temps consommé a été laissé à deux facteurs -
:
Une valeur de seuil acceptable pour un squelette (obtenu de façon empirique). Un nombre maximum de permutations autorisés avant abandon de la squelettisation.
Le second problème posé par cette méthode était lié au principe des permutations
-40-
elles-
Rapport de stage
SYSPEO
mêmes car elles devaient respecter le sens initial de la phrase. Exemple
:
- phrase prononcée : descendez niveau quatre bravog marsan - syntaxe : findicatif##station# <descendez> <niveau> #nombre# - permutation incorrecte : bravo9 marsan niveau quatre descendez - permutation correcte : bravo9 marsan descendez niveau quatre.
Il importe ici
de considérer trois ensembles
:
- descendez niveau quatre - bravo9 - marsan ... pour tenter des permutations correctes. Cette assimilation nécessaire d'éléments en groupes la syntaxe ou"de fichiers annexes
(descendez niveau quatre) est définissable au niveau de puisqu'elle est de nature sémantique.
7.2.5 - Nécessité d'un recalage
Une fois en possession d'une phrase et de son squelette, l'analyseur syntaxique pourra renær de reffouver dans la syntaxe, la séquence autorisée. Pour cela, il procèdera de la façon suivante : - caler le premier mot cié dans la syntaxe. - progresser dans la phrase jusqu'au prochain mot clé - pour chacun des mots non clés analysés - essayer une branche de la syntaxe à partir de la position actuelle - si blocage : - essayer - essayer - essayer - essayer
de lui substituer un homophone ensuite avec un synonyme de supposer au maximum deux mots manquants de poursuivre en supprimant l'élément gênant
- pour chacun des mots clés
- essayer de le caler à partir de la position courante - faire une recherche en largeur avec éventuellement
- supposition d'éléments - choix d'une branche parmi celles possibles.
7.2.5 .1 -
Principe des îlots
Devant la difficulté d'une stratégie gauche-droite avec des parties bruitées, le traitement entre des points d'ancrage a été préféré (HEARSAY II, SRI). Sur la base de la représentation partielle de la phrase prononcée (le squelette) une analyse locale est effectuée. Cette analyse ne peut en aucun cas remetffe en cause le calage d'un îlot sur la syntaxe. Si cela devait être fait, tous les éléments reconnus depuis l'îlot remis en question jusqu'au précédent seront à reconsidérer.
-41 -
SYSPEO
Rapport de stage
MC
MS
@@@
MSP
MC
/\
MR
MC
MS
MR
@@@@
MC
MSP
MS
@@
,)r..
".rtre"-)
MC : mot clé MS : mot supposé MR : mot reconnu MSP : mot supprimé
Hgure 1.20 : Exemple de reconnaissance syntaxique par calage de mots clés
7.2.5 .2 -
La supposition d'éIéments
læ calage des éléments d'une phrase sur la syntaxe entre deux mots clés calés est réalisé par le procédé le plus simple : - lire le prochain mot à caler - existe-t'il un arc depuis le noeud syntaxique courant y menant - si oui, se déplacer et recommencer avec le prochain
-sinon: - tenter un remplacement par un homophone ou un synonyme - tenter une supposition. En effet,
il n'y a que deux cas pennettant d'expliquer les non-attendus
:
- le mot est en trop dans la phrase et doit donc être supprimé - il manque un ou plusieurs mots entre le précédent reconnu et ce dernier. Dans ce cas la, il s'agit de se recaler jusqu'au mot dans la syntaxe en supposant les éléments oubliés et en les insérant en séquence (figure 1.20). Cependant, la réalité est plus complexe car
il faut gérer
de nombreux cas de figure
:
- choix multiples en un point du réseau (voir paragraphe 7.2.5.5) - supposition d'éléments non terminaux. Une analyse syntaxique tolérante suppose une reconnaissance malgré une certaine souplesse
-42-
Rapport de stage
SYSPEO
de langage. Cette souplesse peut également vouloir dire sous-entendu dans le sens où le locuteur suppose une certaine acquisition du contexte de la pafi de la machine. Dans le cadre de cette application, cela est interdit pour la simple raison que le langage est non contextuel. Si le programme devait tenter des suppositions anaphoriques par exemples, il risquerait de commettre autant d'erreurs que le locuteur car il aurait à faire un choix (certainement chronologique par référence à la dernière piste concernée) que rien ne lui permettrait de tenter. SYSPEO est capable de tenter des suppositions anaphoriques en se basant sommairement29 sur un historique des commandes. Pour cette raison, les suppositions de SYSPEO sont de deux natures
:
- un élément en option est supposé sans signalement - il est possible de supposer un élément terminal obligatoire mais il devra être signalé - il est possible de supposer un groupe lexical en option mais devra être signalé - il est impossible de supposer un groupe lexical obligatoire sauf :
- s'il existe une valeur par défaut connue - si le système a I'autorisation d'user de ces défauts - s'il n'y a pas moyen d'user d'un choix basé sur I'historique des requôtes30. læs suppositions avec signalement sont pédagogiques dans le sens où elle n'interdisent pas la reconnaissance de la requête mais invitent le locuteur à les préciser à I'avenir. Bien entendu, la supposition d'un élément par défaut peut provoquer une erreur à un niveau de traitement supérieur et c'est pour cette raison qu'il faut user de ce mécanisme avec précaution d'autant que si le résultat est assez impressionnant quand les suppositions sont correctes, il devient déroutant dans le cas contraire. Les suppositions interdites entraînent un signalement mais empêchent uns reconnaissance de la requête. Le locuteur sera averti du type d'élément attendu mais devra reformuler la phrase.
7.2.5.3 - La suppression
De la môme façon qu'un élément peut être supposé, les éléments en trop doivent pouvoir être supprimés. Cette opération a lieu lorsque l'élément à reconnaître ne peut pas être placé dans la syntaxe depuis la position courante dans le réseau alors qu'un regard en avant permettrait de reffouver des éléments en autorisant une poursuite de la reconnaissance. - lire le prochain mot à caler - existe-t'il un arc depuis le noeud syntaxique courant y menant - si oui, se déplacer et recommencer avec le prochain 29
|
farrt savoir que l'application finale devra pouvoir être modifiée sans avoir à reprendre le programme. Si ce mecanisme de référence à I'historique devait être modifié pour une nouvelle application, il faudrait pouvoir le décrire en dehors du programme.
30 C"tte méthode est applicable de façon systématique pour certains groupes lexicaux (indicatifs ou stations)
mais reste impossible pour certains autres (nombres, alphabet, commandes). De plus, I'historique quelquefois pas d'un grand secours car le contrôleur n'a pas en charge qu'une seule piste.
Àa
-'t(J-
n'est,
Rapport de stage
SYSPEO
-slnon: - tenter un remplacement par un homophone ou un synonyme - tenter une suppression.
Deux cas peuvent expliquer I'apparition d'un mot non attendu
:
- Il provient d'une mauvaise reconnaissance d'un mot ou ensemble de mots par les cafies. - Il est I'effet d'une mauvaise connaissance de la syntaxe par le locuteur.
Dans tous ces cas (et surtout pour le premier), la suppression enlève un certain nombre d'informations à la phrase. Si un recalage est possible à la suite d'une suppression, deux cas peuvent se présenter
:
- Le mot parasite s'intercalait entre des éléments coffects - Le mot à supprimer remplaçait un mot prononcé mais àal reconnu.
La poursuite de I'analyse pourra alors extraire des suppositions de terminaux (véritable filtrage) ou un rejet par impossibilité de retrouver les éléments supprimés.
7.2.5 .4 - Le choix entre supposition et suppression
Il peut sembler difficile de choisir entre une supposition d'élément et une suppression sans un regard en avant dans : - la syntaxe pour retrouver l'élément à reconnaître en supposant les autres, - la phrase pour retrouver l'élément immédiatement visible en supprimant les autres.
De plus, rien n'interdît d'alterner les deux méthodes pour proposer la solution la moins coûteuse.
12 @0 1
â â â â
phraseinitiale
ôxâ3i
X
enrrée_),
)
CAS 2 Figure 1 .21 : Deux approches alternant suppression et suppositions amenant au même résultat
- fftl[ -
sorlie
Rapport de stage
SYSPEO
- CAS 1 : L'analyse de la phrase bute sur l'élément 3 qui est supprimé. Le calage entraîne alors deux suppositions a et b pour recaler l'élément 4. A noter qu'il aurait été possible de supprimer également les éléments 4 et 5 pour se recaler sur le 6 pa. un chemin direct. Pour éviter ce genre de procédé, il est utile de limiter le nombre de suppressions (ou de suppositions) enchaînées (SYSPEO est limités à 2 suppressions et 3 suppositions sans recalage de la phrase). L'élément 5 est ensuite supprimé sans hésitation puisque apparaissant entre deux éléments reconnus.
- CAS 2 : L'analyse bute également sur l'élément 3 mais tente deux suppositions a et b avant de le supprimer (limitation des suppositions) pour pouvoir se recaler sur l'élément 4. L'élément c est reconnu grâce au mécanisme perrnettant de poursuivre le réseau jusqu'à sa sortie en supposant les éléments intermédiaires. Le procédé reprend les contraintes imposées par I'opération de supposition d'éléments mais également celles liées aux ambigiiités de résolution de recalage (voir paragraphe 7.2.5.6). Il faut bien comprendre qu'il n'y a pas de difficultés particulières à traiter les deux cas suivants : - la phrase se termine avant la syntaxe 2 - la syntaxe se termine avant la phrase 1
Dans le premier cas, il suffit de chercher la sortie la plus rapide impliquant un nombre minimum de valeurs de suppositions. Dans le second, il suffit de supprimer les éléments en ffoP31.
7.2.5 .5 - Les équivalences phonétiques et synonymiques
Les mécanismes de suppression et de supposition interviennent pour résoudre des problèmes de recalage. Ce type de procédé est néanmoins assez brutal car il ne tient pas compte de la nature éventuellement erronée de l'élément gônant. Les équivalences phonétiques et synonymiques permettent d'assouplir la démarche : a - On essaie de lui substituer un synonyme connu. b - On essaie de lui substituer un homophone connu.
c - On estims que l'élément arrive trop tôt (supposition). d - On estime que l'élément est en trop (suppression). En effet, la recherche de souplesse doit permettre
:
- de reconnaître une phrase exprimée avec des mots différents32
31 On pounait tenter de repartir à I'entrée du réseau avec le reste de la requête. Ceci permettrait de combiner
deux requêtes en une seule commande. Si cela ne pose aucun problème d'implémentation, SYSPEO ne le permet pas pour des raisons essentiellement liées au mode de fonctionnement des cartes de reconnaissance. 32 Etunt donné qu'il n'y a pas de compréhension de phrase, on ne pourra pas imaginer SYSPEO rapprochant une formulation passive de sa forme active (par exemple) ce que pourrait faire au demeurant une grammaire de cas.
_/'q_ fv
Rapport de stage
SYSPEO
- de préciser la bonne formulation attendue (décrite pas la syntaxe).
bravo9 marsan grimper à une hauteur de 3000 à --> un supprimé uns supprimé
-> 2 supprimé sur la syntaxo dss nombrss dg
bravo9 marsan monter n iveau 3000 pieds
l\\
\
\-\-.-
#indicatif# #station# #ordre# <niveau> nombres <pieds> bravog coral 5 riclus 20
tours cazaux marsan
decollage monter dgscender
virgr
Figure 1.22 : Utilité des équivalences pour gagner en souplesse d'expression
Dans cet exemple, bien que la syntaxe soit rigide, I'emploi combiné des mécanismes a, b, c et d (voir plus haut) permet des transformations de phrases assez perforrnantes sur la simple base syntaxique.
7.2.5.6 - La résolution des ambigtiités de calage et de cheminement
Il
existe cependant des configurations pour lesquelles
il
est difficile de faire un choix de
calage ou d'opération.
Le premier problème est traité sous SYSPEO de la façon la plus simple (figure 1.23) puisque le choix se fait arbitrairement à I'intérieur de groupes à risques minimaux. Ces groupes sont ordonnés selon un ordre croissant de risques : - éléments terminaux optionnels, - éléments terminaux obligatoires, - groupes lexicaux optionnels, - groupes lexicaux obligatoires.
Il faut se souvenir ici de la remarque
donnée au paragaphe groupes lexicaux obligatoires. des suppositions de
7
.2.5.2 qui décrivait la régulation
On aurait pu imaginer ici un mécanisme plus fin basé sur le contenu de la reconnaissance et, éventuellement mais de façon plus risquée, avec le reste de la phrase à reconnaître, pondérant les arcs de façon à privilégier certaines transitions33.
Le second problème est beaucoup plus difficile à traiter puisqu'il peut mener à plusieurs 33 Là
"n.or",
les ATN auraient permis d'apporter une solution élégante.
-40-
Rapport de stage
SYSPEO
solutions possibles, éventuellement valides à tous niveaux parmi lesquelles il faudra faire un choix. Comme I'approche exhaustive a été écartée dès le début des spécifications, il ne pourra pas ici y avoir de retour en arrière après une validation syntaxique et le premier choix menant à une reconnaissance sera celui conservée. Pour cette raison, il importera donc de traiter les ambigtiités à la base.
phrase à traiter
traitement
1
X Figure 1.23 : Exemple d'ambigûité d'opérations
Dans cet exemple, la phrase à traiter comprend deux éléments ambigus b et c respectivement liables à y et z sur le réseau. Bien évidemment, un tel croisement est impossible et un des deux éléments est en trop.
- Traitement 1 : b ne pouvant être calé après a, une supposition 1 serait faite; ce qui permettra de caler b mais entraînera la suppression de c car une série d'hypothèses pour conserver c mènerait à un échec. - fraitement Z : b est supprimé, le calage pouvant être réalisé avec c puis d avec entre temps une supposition 2. On remarquera ici que les deux approches ne sont pas fausses mais conduisent à deux phrases distinctes (a L b c d) et (a b c 2 d) syntaxiquement corecte. SYSPEO retiendra la première satisfaisant la reconnaissance et ne cherchera pas à savoir si une autre approche permettrait de I'affiner.
Il
faut remarquer ici qu'il existe un nombre de combinaisons vite prohibitif des 4 opérations de base (remplacement synonymique, homophonique, supposition puis suppression) qui débutent dès le premier problème de recalage puisqu'il est à fortiori impossible de s'assurer que les altérations introduites par ces opérations sur la phrase initiale ont permis de retomber sur un état stable. læs contraintes de temps imposent donc un choix judicieux et ne permettraient en aucun cas un traitement exhaustif des combinaisons avec mémorisation de la meilleure solution étudiée.
-+(-
Rapport de stage
SYSPEO
7.2.5.7 - L'apprentissage des erreurs
læs listes d'éléments remplaçables sont fournies par I'utilisateur sur la base du bon sens (synonymes) ou de I'expérience (homophones). Sur ce second point, il pourrait être intéressant de penser à un mécanisme qui mémoriserait les erreurs traitées et résolues et tiendrait à jour des tables de fréquences statistiques. Partant de la simple constatation qu'une phrase non comprise est forcément reformulée par le locuteur, on pourrait tenter d'appliquer ce procédé en comparant les éléments de la phrase précédente non reconnue à la première reconnue de façon à essayer d'isoler, par recherche positionnelle uniquement, les éléments ayant provoqué l'échec de la reconnaissance. Ainsi, au delà d'une certaine fréquence d'apparition, certains mots pourraient être ajoutés à la liste des homophones recensés pour fiabiliser le système.
Un point important serait à considérer ici malgré tout : il faudrait pouvoir s'assurer que les ereurs proviennent bien de la carte et non du locuteur par méconnaissance de la syntaxe car une (ou trop de) déclaration(s) d'homophone(s) incorrecte(s) risqueraient de provoquer I'effet inverse et de dégrader considérablement la reconnaissance.
7.3 - L'accès à la syntaxe 7.3.L - Perspectives Les spécifications de SYSPEO intégraient trois aspects essentiels
:
Autoriser une approche souple de la phraséologie d'une application à commande vocale. Proposer au locuteur un environnement pédagogique Assister le locuteur en cas de problèmes
Malgré les capacités du système à tenter de corriger une phrase incorrecte, la rigueur de la syntaxe et les absences sémantiques limitent de toutes façon la dynamique de I'ensemble. Le souci d'éviter que SYSPEO ne tente de comprendre n'importe quoi de façon irrecevable implique donc un certain nombre de rejets.
Le locuteur risquerait donc de se retrouver dans I'impossibilité de commander I'application par SYSPEO simplement par trous dans son savoir ou par oubli de la phraséologie non pas exacte mais approximative.
Pour combler cette lacune, une procédure de génération automatique de phrases par mots clés a été développée. Ce mécanisme perrnet d'extraire de la syntaxe une requête correcte sur la simple énumération de quelques mots clés devant appartenir à la phrase demandée.
Exemple de dialogue entre le locuteur et SYSPEO - Loc : donne-moi un exemple avec décollage
-48-
:
Rapport de stage
- sys - Loc : ^sys - Loc
SYSPEO
miraIT istres décollage terminé miratT débutez descente hauteur de sécurité il manque <niveau> et #nombres# après <descente> donne-moi un exemple avec descente et niveau et sécurité débutez descente niveau 15 hauteur de sécurité
-sys: bravo9 marsan
Principe utilisé pour la génération d'exemple à partir de la syntaxe
-
:
vérification de I'appartenance des mots clés à la liste des mots clés autorisés34 vérification de I'existence d'un chemin dans le réseau pour les mots clés. détermination du niveau de réponse demandé (lexical ou syntaxique) - syntaxique : axiome, sous-syntaxes, groupes lexicaux - lexical : mot clé, terminal, élément d'un groupe lexical. cheminement aléatoire dans le réseau depuis I'entrée vers la sortie en passant par les noeuds clés.
7.3.2 - Problèmes de niveaux
L'intérêt d'un tel mécanisme est de permettre au locuteur de demander une aide syntaxique suite à une explication de rejet de SYSPEO à une phrase prononcée. Pour simuler un dialogue pédagogique, il faut que le niveau de synthèse puisse être repris par le locuteur pour demander un approfondissement. Pour reprendre I'exemple donné à la fin du paragraphe 7.2.1.1, on devra avoir un dialogue du type : 1
2
-
4563
78910 -
Loc : bravo9 marsan rien Sys : <rien> non reconnu, veuillez préciser une <commande> après un <indicatif> Loc : donne-moi un exemple avec commande Sys : tndicatif statlon direction l,oc : donne moi des informations sur direction Sys : direction est une sous-syntaxe qui définis <montez> <descendez> <a-droite> et <a-gauche> Loc : donne moi un exemple avec direction Sys : indicatif station direction Loc : donne moi un exemple avec a-droite Sys : bravo9 istres a-droite cap 185
On se rend bien compte en s'aidant des figures 1.13 et 1.15 que le dialogue est influencé par le niveau et le type des mots clés dans la syntaxe. La requête 3 du locuteur demande un exemple avec le mot clé commande qui est une sous-syntaxe. La réponse attendue est donc du même niveau, seulement, comme commande peut être décomposé en sous-syntaxes, on obtient la réponse 4 commençant par les deux groupes lexicaux. La requôte 5 porte sur le type d'un mot de la syntaxe. Puisque tous les noeuds du réseau sont typés, le système peut
34
Por. permettre au locuteur de préciser n'importe quoi, sans grossir les proportions du réseau, un joker (*) a été introduit au symbolisme de la syntaxe. L'analyse de la validité de l'élément remplaçant le joker n'étant plus à la charge de I'analyseur.
_lo_ aù
Rapport de stage
SYSPEO
répondrs35 et donner tous les fils du noeud en question. S'il devait en exister plusieurs, le système choisirait le premier ffouvé. La requête 7 pose un problème d'interprétation car le mot clé ne peut être décomposé en sous-syntaxes. Or, étant lui-même de ce type, il ne peut être remplacé par un terminal, la réponse respecte donc les contraintes de niveau. pour obtenir une séquence de terminaux, le locuteur doit préciser un mot clé terminal (requête 9) en utilisant si besoin les éléments de la réponse 6. A ce moment là, le système fait un choix dans les groupes lexicaux et les sous-syntaxes de façon à donner une réponse de niveau lexical.
I
7.3.3 - Principes
Le principe de construction d'une réponse sur la base d'un mot clé ou d'une liste
est
représenté par la figure 1.24.
Bè.Qgête,i,;
donne moi un exemple avec a-gauche
Èt7 enrtee
I
GA I
dêscriDtit o
I' #indicatif# I
con16
icu20
I
o.l
| |
11""J
#slalion# o.1
dirêction
../-/// <monlez>
dire
r.r
/ IIt <des_cendêz>
T,/
<nivgau>
#nombres#
off
n
*no"u,nn
*,:::*."à(e*
instrum€nration
m)(c
\/
de>È((plil #ndicalil# #starions*
0 \ 0.1 o.t \
\,-
\
z
colxqde di){E
1
bravog marsan a-gauche
a-gauche cap #nombres#
1.1_-_-/-//-,//,cap zsz'
1.3
Figure 1.24: Principe de génération d'une phrase à partir de mots clés, de la syntaxe et d'un niveau de réponse.
En associant dos niveaux à tous les éléments des règles syntaxiques (éléments lexicaux exclus), il est possible d'obtenir la liste pondérée d'un parcours dans I'arbre passant par les éléments clés. En fonction du niveau de ses éléments clés et de leur position dans la phrase, on pourra supprimer certains d'entre eux en respectant quelques règles :
35 En synthèse vocale ou en affichage écran au choix de I'utilisateur.
-50-
Rapport de stage
SYSPEO
Niveau svntaxioue:
-
Elimination des éléments terminaux après le (dernier) mot clé. Replacement des sous-syntaxes par les sous-syntaxes filles ou des groupes lexicaux pour toutes celles avant le premier mot clé. Suppression de toutes les sous-syntaxes de niveau inférieur après le dernier mot clé.
Niveau lexical
:
- Suppression de toutes les sous-syntaxes. - Remplacement de tous les groupes lexicaux par un terminal choisi au hasard.
Quand la liste des mots clés comporte plusieurs éléments de niveaux différents, on peut choisir le niveau le plus élevé ou le plus bas. Il est alors préférable de ne conserver que les éléments appartenant alors au niveau sélectionné et supprimer tous les autres.
7.3.4 - Limitations Les deux limitations essentielles de ce procédé sont les suivantes
:
- ambigûité de sélection d'un mot clé dans la syntaxe depuis I'axiome. - traitement des terminaux depuis un niveau syntaxique. - plausibilité d'une phrase construite aléatoirement.
La première limitation tient à I'existence dans le réseau de plusieurs sous-syntaxes de même nom et dupliquée. La recherche aveugle en profondeur s'arrête sur la première répondant à la sélection. De ce fait, une syntaxe mal consffuite ou mal hiérarchisée peut donner des réponses irrecevables.
Le traitement des terminaux dans une règle syntaxique pose également un problème cohérence de la réponse. Exemple de réponse avec
de
:
axiome : descriptif <reçu> commande; - Loc : donne moi un exemple avec commande - ,Sys ; indicatif station <reçu> instrumentatlon
La troisième limitation est plus délicate à contrôler puisqu'elle nécessiterait une validation sémantique sur les chiffres notamment (mais pas forcément pragmatique). Le modèle de description de la syntaxe ne le permettant pas, il faudrait le prévoir de façon explicite, figeant en quelques sorto I'application.
L'erreur provient généralement du choix aléatoire d'un élément dans un groupe lexical, quand I'ensemble des phrases acceptables est un sous-ensemble des phrases que peut générer la syntaxe. Pour cela, il aurait fallu utiliser une grammaire contextuelle, limitant le domaine d'une catégorie lexicale en fonction des éléments reconnus.
-
51
-
Rapport de stage
SYSPEO
7.5 - Le moniteur Uassistance pédagogique de SYSPEO ne s'est pas limitée à la compréhension d'une phraséologie souple ajustée d'un mécanisme de d'interrogation de cette syntaxe mais s'est étendue au guidage de I'opérateur.
Le but était donc de non seulement comprendre les requôtes mal formulées du locuteur mais également de lui proposer une procédure à suivre de quelques commandes à formuler correctement. Cette spécification adventice s'est révélée nécessaire à la suite de quelques démonstrations où les personnes testées montraient une certaine passivité devant la machine.
7.5.1 - Nécessité d'une syntaxe propre
Les ordres du moniteur doivent pouvoir être décris de façon simple depuis un éditeur de texte. De plus, le formalisme utilisé devra rejoindre celui déjà employé pour décrire la syntaxe de façon à réutiliser les outils mis au point. L'utilisateur doit donc pouvoir : - Préciser ce qui sera annoncé par le moniteur. - Préciser les éléments de réponse attendus. - Préciser éventuellement un ou plusieurs mots clés de la réponse.
L'ordre du moniteur pourra contenir
:
- N'importe quel mot. - Des occurrences du vocabulaire de I'application (entre <>). - Des mots attendus (entre []). - Des noms de groupes lexicaux (entre ##). Une description complète d'ordre sera donc divisée en deux pafiies - La partie spécification de I'ordre
:
:
- mots du vocabulaire, - groupes lexicaux générateurs, - mots clés obligatoires. - La partie contenant tous les éléments de réponse entre parenthèses.
Exemples: - donner à [<bravo9>] une vitesse de 1 Mach virgule - faîtes décoller [#indicatif#] depuis [#station#]
#nombres# (Mach); (décollage);
'
Le premier ordre précise que <bravo9> est un élément du vocabulaire et qu'il devra apparaître obligatoirement dans l'élément réponse. De plus, I'ordre contenant un groupe lexical, un élément choisi aléatoirement dans le groupe le remplacera. La réponse de l'élève devra forcément contenir le mot <Mach>. Le second ordre contient deux groupes lexicaux #indicatift et#station# qui devront apparaître dans la réponse de l'élève.
_q9_
Rapport de stage
Exemples de réponses
SYSPEO
:
Mon. : donner à bravo9 une vitesse de
I
Machvirgule 5
5 0
Loc. : bravo9 marsan vitesse Mach 3 point Loc. : miral5 istres vitesse Mach 1 virgule
----> accepté ----> rejeté
Mon. : faîtes décoller rictus2) depuis Dijon
Loc. : bravo9 marsan décollage Loc. : rictus2O Dijon monter niveau 200 Loc. : rictus2O Dijon décollage
----> rejeté ----> rejeté ----> accepré
7.5.2 - La cohérence des informations
Les routines de création de I'environnement du moniteur à partir de son fichier spécifications d'ordre devront s'assurer de certains respects -
Les Les Les Les
de
:
mots entre <> appartiennent au vocabulaire de I'application DATAVOX. mots entre ## sont des définitions de groupes lexicaux valides. mots entre [] appartiennent au vocabulaire de I'application DATAVOX. éléments de réponse appartiennent au vocabulaire de I'application DATAVOX.
Si le moniteur doit générer les ordres par synthèse vocale,
- Vérifier que tous les mots terminaux appartiennent
il faudra automatiquement
:
:
- soit au fichier de synthèse vocale général, - soit au fichier vocable.dat qui précise les mots en synthèse uniquement, - soit au fichier se synthèse spécialisé monivoc.dat. - Rajouter les éléments manquants dans le fichier de synthèse spécialisé. - Demander un échantillonnase des éléments du fichier de svnthèse.
7.5.3 - La base de temps
Le moniteur devra pouvoir intervenir
sans I'action de l'élève pour simuler une parfaite indépendance du système à I'environnement. Pour cela, deux procédés seront utilisés : - Une base temporelle paramétrable conditionnant ses réactions, - Des équivalents clavier pour forcer les réactions du moniteur.
La base de temps contrôlera principalement trois mécanismes hiérarchisés
:
- Le choix d'un ordre (ou du prochain).
- Les rappels d'un ordre précédemment donné. - La réponse attendue avec demande éventuelle de confirmation36.
36 C"tt" spécification de dernière minute n'a pas été implémentée sur SYSPEO mais sur un autre démonstrateur d'assistance pédagogique moins performant. Pour cela, il faudrait rajouter dans les spécifications d'ordres du moniteur la phrase complète attendue par l'élève à la place des élémens de réponse.
-
Âa tù
-
Rapport de stage
SYSPEO
Toute réponse de l'élève est confiée au moniteur qui va rechercher si
:
- Un ordre a été donné. - Les mots clés sont présents dans la réponse. - Les éléments de réponse sont également présents.
ralet
(éléments de réoonse
Figure 1.25 : Articulation des différents modules de SYSPEO.
Le type de réponse du moniteur va inciter l'élève à améliorer sa requête en fonction de ce qui a été demandé et ce qui est attendu. Mon. Loc. Mon. Loc. Mon. Loc. Mon.
Donner à bravo9 une vitesse de Mach I point 3 Rictus2O marsan décollage J'attends autre chose ! bravo9 marsan vitesse trois point six J'attends autre chose ! rictus20 marsan vitesse Mach 2 point 5 J'avais demandé bravo9 et non rictus2)
Mon. Je vous ai demandé de donner a bravo9 une vitesse de Mach Loc. bravo9 marsan vitesse Mach 2point3 Mon. J'avaIs demandé I et non 2
I
point 3
etc...
Les bonnes réponses sont ensuite envoyées au contrôleur qui les retransmet au simulateur ou les rejète si elles ne sont pas valides.
De plus, il faudrait assurer un lien de valeurs entre les groupes lexicaux de la spécification d'ordre et ceux de la spécification de réponse.
F,À
- rr:t -
Rapport de stage
SYSPEO
7.5.4 - Pré-validation d'un ordre
Pour rendre le moniteur plus vraisemblable et surtout rendre cohérent les ordres vis-à-vis du contexte, il faudrait que celui-ci puisse générer des ordres sur la base de directives sommaires liées à des procédures. En gros, une approche système expert résoudrait élégamment le problème des définitions : -
procédure procédure procédure procédure
décollage approche gestion de collisions échange de pistes
- elc... avec pour chaque procédure, une séquence de commandes à valider - procédure décollage
:
:
- choisir un avion qui n'a pas encore décollé - I'amener en bout de piste - lui préciser les éléments de vol - autoriser le décollage - I'amener sur un couloir de dégagement - etc...
Le moniteur pourrait alors, en fonction du trafic réel, générer automatiquement des ordres cohérents et corriger l'élève plus efficacement qu'avec une simple comparaison de la réponse obtenue avec celle espérée et figée (voir le point 1 du paragraphe 8.4).
7.6 - Le contrôleur aérien La gestion de I'environnement aérien à la charge de l'élève contrôleur est normalement assuré par le simulateur de trafic SIMU-V22 relié à SYSPEO. Deux raisons essentielles ont cependant conduit au développement d'un module spécialisé annexe : L'absence éventuelle de la liaison avec le simulateur L'impossibilité d'obtenir l'état du trafic géré sur le simulateur
Cette façon de procéder permet de traiter en local beaucoup plus d'erreurs que saurait en détecter le simulateur avec cependant I'obligation de conserver l'état des mobiles gérés. A noter également que l'état de ce môme mobile ne correspond pas toujours, dans le temps, à la réalité simulée. Ainsi, un changement de vitesse ou de cap sera enregistré instantanément par le contrôleur alors que ces valeurs seront atteintes sur le simulateur au bout d'un certain temps. Pour cette raison essentielle, et tant que le module annexe ne gérera pas le déplacement des mobiles avec la même mécanique que celle employée par le simulateur, il sera impossible de conssrver en local la position des avions.
Rapport de stage
SYSPEO
L'environnement du contrôleur est crée immédiatement après celui du moniteur sur la base de la syntaxe et des groupes lexicaux. Pour automatiser cette création, la dépendance est réalisée par I'emploi de trois variables prédéfinies dans le programme INDICATIFS, STATIONS et NOMBRES qui ont pour valeur le nom des groupes lexicaux contenant toutes les définitions pour ces classes3T. Des valeurs par défaut sont donnés pour tous les mobiles que peut contrôler la tour et dont les identifiants sont récupéré du groupe lexical INDICATIFS. Ces valeurs sont fixées sur les caractéristiques de la base de Marsan (cap 270, altitude 10) mais il aurait été facile d'inclure une petite liste de caractéristiques pour toutes les bases précisées dans STATIONS et donner ces valeurs au moment du décollage d'un mobile depuis I'une d'entre elles.
7.6.L - Les paramètres utiles Seules quelques informations caractérisant un mobile ont été retenues au vu de la svntaxe de
I'application: - L'indicatif du mobile (clé de recherche) - La station depuis laquelle le mobile a décollé -L'état (au sol, en vol, en phase d'approche, en attente d'atterrissage, etc...) - Le cap (en degrés) - La vitesse (en noeuds) - L'altitude (en pieds)
- La valeur de I'iff. -L'étatde I'iff (actif, inactif, flash actif, flash inactif;. Ces informations sont suffisantes pour vérifîer I'adéquation de la requôte à l'état du de répondre aux eneurs par des messages explicites).
mobile (et
7.6.2 - Les contraintes de base Lorsqu'une requête à I'intention d'une piste parvient au contrôleur, celui se charge de vérifier s'il est possible de I'appliquer à la piste en question. La démarche est la suivante : 1 - Le mobile a-t-il décollé ? 2 - L'ordre doit-il être analysé ou traité localement ? 3 - læs valeurs correspondent-elles aux type de I'ordre ? 4 - Iæs valeurs sont-elles compatibles avec l'état du mobile ? 5 - Si aucune etreur, enregistrer les modifications et passer la requête au simulateur.
37 Le contrôleur comme le moniteur sont des modules annexes fortement liés cette dépendance obligatoire qu'avaient évitée jusqu'alors les autres modules.
-56-
à
la nature de la syntaxe, d'où
Rapport de
stage
SYSPEO
La réponse au point 1 est réalisée par une simple recherche de la structure du mobile sur la clé de son indicatif et une lecture de son champ état. Un mobile au sol ne peut recevoir qu'un ordre de changement d'iff ou de décollage. Un message d'erreur adapté sera émis dans tous Ies autres cas.
Le point 2 entraîne la recherche dans la requôte de certains élément clés pouvant amener une prise en compte par le contrôleur de la requête. En effet, certaines requêtes s'adressent exclusivement au contôleur (informations sur le nombre d'avions en vol, ou au sol, etc...) ou à une piste (demande des éléments de vol d'une piste). Dans ces cas de figure, il n'y a pas traitement de la requête. - Loc. - Ctrôl. - Loc. - CtrôI.
: donne moi le nombre de mobiles en vol : 3 mobiles en vol : bravo9, miralî et rictus2} : mira15 ma$an éléments de vol : miralï en provenance de marsan en vol niveau
I
15, vitessé
Mach 0.5 ,
cap 150, iff4543 en stand-by
- etc...
Le point 3 force le filtrage des requôtes en recherchant les valeurs incorrectes selon la nature de la commande. Le ffaitement sémantique n'étant pas fait ici au niveau de la syntaxe, il importe donc de vérifier cette cohérence. Exemple sur un cap : - l,oc. - CtrôI. - l,oc. - Ctrôl. - etc...
bravog marsan a-gauche cap 53238 valeur de cap trop grande. Cap compris entre 0 et 359 degrés. bravo9 marsan iff 9123 valeur d'iff non exprimée en base 8
Le point 4 permet de vérifier si les nouvelles valeurs à intégrer sont compatibles avec l'état du mobile. Un certain nombre de règles simples suffisent pour modéliser la plupart des conditions satisfaisantes. Maintenant, si le nombre des paramètres conservés venait à sérieusement augmenter, la solution système expert serait presque incontournable. On ne cherche pas à vérifier la logique suivie par le locuteur car un ordre mal compris ou erroné est forcément reformulé. Il ne faudrait alors pas que le contrôleur le refuse simplement parcequ'il contredit I'ordre précédent. Ici, des éléments de mécanique du vol simplifiés sont pris en compte.
Il
est important de pouvoir obtenir de simples avertissements plutôt que des rejets
- Loc. - CtrôI. - Loc. - Loc. - CtrôI. - etc...
:
bravo9 marsan descendez niveau 15 attention, vitesse de bravo9 : I .3 Mach, niveaL.t 15 trop bas, réduisez la vitesse et entamez une procédure d'approche. bravo9 marsan a-gauche cap 360 bravo9 marsan serrez virage attention, vitesse trop grande pour un virage serré
38 Oifficite ici de dire si I'erreur provient du locuteur ou de la reconnaissance car la confusion avec 132 aurait très bien pu êne possible.
- cr -
Rapport de stage
SYSPEO
7.7 - Le simulateur Le simulateur de trafic SIMU_YZZ accessible par liaison série accepte des communications extérieures précisant certaines commandes. En fin de chaîne, la requôte du locuteur peut être envoyée au simulateur à partir du moment ou cette dernière peut produire une action et être visualisée sur la console. Une valeur de retour permet de tester la validité de la requête au niveau du simulateur.
Une traduction de la commande selon un format compréhensible par le simulateur est cependant nécessaire selon le principe exprimé dans le schéma ci-dessous. Le simulateur répond (si ack en fin de dernier message) par une valeur exprimée sur un octet traduisant une validation ou une erreur (dont le type est fonction de la valeur).
octet codanl 1 caraclère en ascii
valeur de validation
bravo9 marsan
décollage-----)
tiàduCtêùi
Figure 1.26 : Principe de communication SYSPEO -> SIMU_V22
La communication est réalisée par paquets de messages normalisés. Une commande est donc décomposable en plusieurs messages chaînés. Le type de liaison implique également une traduction de I'information en format ASCII (aussi bien pour les chaînes de caractères que pour les valeurs).
7.7.1 - Format du message - premier champ
-
deuxième champ troisième champ quatrième champ cinquième champ
2 octets 6 octets I octet ACK (6) ou NACK (21) cR (13)
Si groupement de messages, ETX (3) remplace CR et NACK remplace ACK dans tous les sous messages. CR termine le message groupe. ACK permet d'obtenir en fin de message une valeur de validation du simulateur.
Âo -ùu-
SYSPEO
Rapport de stage
premier
champ
deuxième champ
00
indicatif (6 caractères)
01
vitesse (en noeuds) altitude (en niveau) sens (GlD) et cap (000-359) iff (en octal) iff on/off (pair ou impair) iff flash on/off (pair ou impair) post-combustion on/off (pair ou impair) atterrissage décollage (base 4 caractères)
02 03 04 05 06 07 08 09
8 - LE BILAN DU STAGE 8.1 - Spécifications le début pour I'application SYSPEO ont été respectées. Le produit est suffisamment ouvert pour autoriser une évolution importante par ajout de Læs spécifications définies dès
modules annexes, comme cela a été réalisé avec successivement
:
- le moniteur - le contrôleur - I'interface SYSPEO <--> SIMU V22.
8.2 - Apports théoriques La nature même de I'application m'a permis de découvrir et de comprendre les problèmes de la reconnaissance vocale et d'en appréhender les limites. J'ai donc pu approfondir mes connaissances sur les points suivants : - le traitement du signal, - techniques de reconnaissance de formes, - algorithmes de recalage et programmation dynamique, - principes de I'analyse globale d'un signal vocal, - I'approche analytique de la reconnaissance vocale, - la synthèse vocale.
Le traitement du langage avec notamment, la recherche d'une méthode pour résoudre
les
différents problèmes que posaient une reconnaissance imparfaite d'une commande vocale m'a engagé à étudier d'autres techniques :
_60_
Rapport de stage
SYSPEO
- principes des grammaires, - techniques de compilation, - analyseurs syntaxiques, - réseaux syntaxiques, - traitements des non-attendus. De plus, le domaine dans lequel s'inscrivait mon stage m'a fait découvrir le contrôle aérien et la technologie connexe touchant aux : - radars,
- simulateurs, - consoles très haute définition.
8.3 - Environnement humain et contexte
Le cadre dans lequel j'ai évolué pendant 6 mois m'a permis une grande liberté d'action puisque devant développer un produit isolé sur la base de spécifications évolutives. Il m'a donc été possible d'aborder le sujet avec une approche plutôt orientée recherche qu'industrielle. Les contacts et les supports techniques, tant au niveau de la THOMSON qu'à l'extérieur (notamment la société VECSYS) ont été d'un apport très enrichissant. De plus, la version actuelle de SYSPEO devrait faire I'objet d'une démonstration de savoirfaire (avec certaines limitations touchant à la fiabilité du produit) dans I'assistance à I'opérateur par commandes vocales.
8.4
- Evolutions de SYSPEO
l*s
2 points suivants mériteraient néanmoins d'être développés dans une prochaine phase
l- : Création de scénarios moniteur plus performants et plus réalistes. ce dernier soit informé directement de l'état du trafic aérien :
-
:
Il faudrait pour cela que
Soit pour gérer la navigation d'une piste de façon cohérente (vis à vis d'une zone aérienne ou en vue d'une approche radar vers un point d'atterrissage ou de délégation). Soit pour forcer l'élève à appliquer un cahier de procédure face à une situation critique reconnue.
Pour cela, un système expert permettrait une évolutivité souple du monitorat. De plus, celuici permettrait d'ajuster ses directives en fonction des caractéristiques des mobiles et de corriger l'élève avec des explications liées à la mécanique du vol ou fonction de la démarche logique entamée. On pourrait alors imaginer un environnement personnalisé où chaque élève serait suivi en personne sur la base des performances antérieures et des points faibles recensés (cela touche cependant à I'EIAO et risque de complexifier par rrop I'application finale).
2 : Intégration d'un simulateur de trafic à l'intérieur de I'application ou établissement
de
communications fixes entre la tour de contrôle (support du moniteur pour les données à
-60-
SYSPEO
Rapport de stage
traiter) et les pistes gérées par SIMU_V22 permettrait de boucler la chaîne des ffaitements.
8.5 - Limitations Les cartes de reconnaissance sont destinées à être logées dans une machine de type IBM-PC 386 et donc limitent le traitement de là commande vocale à ce type de machine. Cependant, il est possible de rediriger la sortie des cartes sur uno liaison série de façon à réaliser des applications sur un autre support (Unix par exemple). On pourrait alors imaginer un environnement multi-tâche ou les différentes applications tourneraient concurremment et ceci, au prix d'un simple effort de normalisation des communications entre les modules39.
contrôeur\ élève
I @
ffiiilff[iffiffiil##frii
Iv /ffi, t I'vF",.*;;l l wK %\7W\/ F*ilI
ii
o-''.frffi'ËftpE)
/'
èfr
rffiil;l pistes I les
I
Figure : Environnement multi-tâche monitorant un élève controleur
39 Syrpéo étant un programme
de plus de 8000 ligncs, on peut difficilement imaginer lui ajouter des modules complexes sans buter contre des limitations essentiellement liées à la gestion mémoire du DOS. La version WINDOWS ne résoudrait malheureusement pas tous lcs problèmes car on se heurterait alors à des difficultés liées premièrement. aux librairies des fonctions de reconnaissance, aux conflits de vecteurs d'interruption et à des impératifs d'ordre temporel.
-01 -
Rapport de stage
SYSPEO
9 - CONCLUSION Les problèmes de reconnaissance des nombres exprimés sous forme de digits rendent difficile (et peu probable) I'utilisation de I'application dans un cas réel de simulation, c'est à dire, hors d'une assistance pédagogique (à moins d'utiliser I'environnement mixte coopératif de la figure 1.8). De plus, I'algorithme de l'analyseur syntaxique risque d'être vite saturé en cas
:
- de gros vocabulaire (plus de 500 mots) - de grammaire mal construite4o.
Il faudrait améliorer cet analyseur en s'inspirant
des réseaux à noeuds procéduraux de Pierrel ou, également, des réseaux de transitions augmentés à la condition qu'ils ne servent pas à une
ffansformation d'une représentation syntaxique en une autre, mais gèrent les dépendances contextuelles simples, éventuellement introduites en dur sous formes de fonctions compilées. Néanmoins, le produit est un intermédiaire intéressant entre la reconnaissance globale très
fiable mais très contraignanto et I'approche analytique, fiable dans des conditions particulières et très souple (pas d'apprentissage) bien qu'encore du domaine du laboratoire.
Il
montre également qu'il est difficile de tenter une technique particulière (analyse tolérante) avec du matériel conçu pour une autre utilisation (reconnaissance globale) et qu'à I'extrême limite, I'inadéquation des techniques conduit à une très forte complexité de I'ensemble. Pour cette raison, une approche combinée, parallélisée donnerait de bien meilleurs résultats.
Si la commande vocale commence à faire son chemin, c'est surtout grâce à la fiabilité de la
Il semble même que les contraintes d'apprentissage aient un impact sécurisant. Si la voix peut ainsi remplacer parfaitement de longues combinaisons de touches ou une utilisation lourde de la souris au travers de multiples menus, il est alors nécessaire, comme avec les anciens procédés, de connaître les procédures (enchaînement précis d'ordres) et la syntaxe du langage artificiel. reconnaissance permise par les méthodeSglobales et non analytiques.
Il semble donc que la technique DATAVOX soit inadaptée à I'enseignement ou I'assistance pédagogique et qu'il faille pour ce faire utiliser des méthodes analytiques (ou une approche combinée comme dans SYSPEO) beaucoup plus périlleuses et incertaines cependant tant au niveau de la qualité de la reconnaissanco que du temps mis pour y arriver. La comparaison pourrait être faite entre le correcteur orthographiclue courant maintenant sur la plupart des traitements de textes et un véritable correcteur grammatical temps réel qui tiendrait compte des accords, du sens et du contexte. La prochaine décennie verra sans doute apparaître des produits de cette envergure.
40
Ceci peut arriver en cas de mauvais choix de mots clés (c'est-à-dire si ces dernicrs ne permettent pas de
pouvoir se recaler dans la synlâxe ou s'ils apportent. des ambiguïtés parce qu'apparaissant dans plusieurs branches différentes à des niveaux voisins).
-62-
Rapport de stage
SYSPEO
ANN{EXE
_Ă&#x201A;q_
Rapport de stage
SYSPEO
1 - L'ENVIRONNEMENT DE SYSPEO 1.1 - Les options de compilation En fonction de l'environnement et des ressources disponibles, il est possible d'obtenir un code compilé ne tenant compte que des options pré-définie s. Le #deftne acrive I'option et le #undef la désactive. Il est cependant nécessaire de recompiler tout le produit pour qu'elles prennent effet. Une version en cours de développement sera paramétrée à partir d'un fichier de configuration et d'un menu accessible depuis le clavier.
#define CARTE VOCALE #undef arrfCHaeU #define VISUALISATION #define ACCES SYNTAXE #def ine SQUul,_urrH_f *rrnrlof
#define #undef #define #undef
SôTTtrT, M.ETH 2 rr vYvs!
Pnn-uuTerrOt'tS ASSISTANCE MONTTEUR
SYNTH MON]T
#define Sruur,EruuR r #undef MEM TRACE #define rnaôe FICHTER rt. #define #define
VDISK
\\t'
CONTROLE
/* /* /* /* /* /'k /* /* /* /* /* ,/* /* /* /*
Sans DATAVOX. clavier uniquement. */ Fonctions de suivi d'analyse activées. */ Fenêtre graphique pour affichage du réseau. */ Pas dtinterrogation sur fa syntaxe. */ Squelett.isation avec matrice de passage. */ Scrrrolotf
iq:l-
ian
:rran
nainJ-q
dranar:no
x/
Possibilité d'intervertir des mot.s. */ Précision sur l-es fautes syntaxiques. * / Guidage de Ltopérateur contrôleur. */ Synthèse vocale des ordres du contrôleur. */ fnterfacage avec l-e sj-mulateur SIMUV 22. */ Ài^â rrr rrar.rrrn de .ltal_l_OCatlOn * // clvnam.j vq u f vrr uJ rrerLlrYuçErre.. Sortie écran sur fichier NM TRC FIC en // */ Les fichiers internes seronE déplacés. */ ContrôIe de la plausibilité des requêtes. x/ T
1.2 - Environnement des fichiers Pour permetffo a plusieurs environnements syntaxiques d'exister simultanément ou dans des répertoires particuliers, I'application ne tient compte que de noms logiques. Les liens entre ces derniers et le nom réel (ainsi, éventuellement que sa localisation) devront être précisés ici. Une version en cours de développement pourra récupérer ce type d'information depuis un fichier texte précisé au lancement de I'application.
#define
NM_TRC_FIC
#define #def i-ne #define #define #define #define #define #define #define #define #define #define #define #define
FIC
GRPSEM
Fr-SYNTxT
FIC
SYNONY
FIC-PHONET
FIC
VCABLE
FIC-MONITR
LBL MONITR SIG-MONITR KEY-MONITR MNT_VCABLE
LBL-ACQUIT
lrfinh.iar
v !Poçrrr . uq ^-!lt u rtqrrnl- wl. rlrl- rr lr qrznnnrz rla1- rr rrnh^nâ1- dâ'|- rt ll^Fâ^^''
ttvocable . dat " "moni-teur. daLtt
lbl-" "monitr. rrmnniir qinll lrnnnil-r
/* /* /* /* /* /* /*
korzlt
. dat " "monivoc lrrnnrri{-
KEY_ACQUIT
Irrnarrillrâadrr i i-
DATAVOX
rr\\^^r^.-^.,\\rt \ \uoLovv^
SIG_ACQUIT
,/* /* /* /* /* /* /*
t-rnrl
lhlrl cinrr Lô\rrr
/*
\ \
-04-
du fichier trace. */ groupes lexicaux. */ Nom
dosr-ri
nl- i f da
l:
q\/nf âYê qz:v rl9
.
x //
l-iste des synonymes . * / fistes des homophones. */ vocabulaire annexe. */ ordres pour Ie moniteur. */ fichiers de synthèse */ a J-'usag'e du moniteur. */ vocabutaire incomplet. */ vocabulaire annexe. */ fichiers de synthèse */ a I'usaqe de SYSPEO. */ complète * MONITR. */ répertoire DATAVOX. */
Rapport de stage
SYSPEO
1.4 - Les ordres clavier Plusieurs des fonctions données ici sont dépendantes de la valeur des options de compilation associées.
<v>
<g>
Donne la liste des mots du vocabulaire ainsi que la plupart de leurs attributs. Donne la liste des groupes lexicaux. Affiche une représentation du réseau compilé sous forme de liens noeuds --> successeurs par un parcours en profondeur et sans répétition du graphe. Donne le contenu de toutes les sous-syntaxes. Affiche la matrice des liaisons Affiche la syntaxe du moniteur Choix du prochain ordre a exécuter en court-circuitant la tempbrisation. Précision ou répétition de I'ordre demandé en court-circuitant la temporisation. Affiche les caractéristiques des mobiles en vol. Bascule de l'écran texte à l'écran graphique. Ré-initialisation de la carte vocale. Utile dans certains cas de blocage. Nouvelle sélection du gain en décibels. Limitation mémoire importante.
<SPC> <ESC>
: :
<s> <R> <T> <L> <M> <P>
<o> <A> <v>
<i>:
Entrée clavier d'une requête quand la commande vocale est inactive. Sortie de l'application.
1.6 - Le fichier des groupes lexicaux Déclaration des groupes lexicaux rassemblant sous le nom d'un indicatif des éléments du vocabulaire. Ces éléments doivent appartenir au vocabulaire appris sous DATAVOX. Un élément ne peut appartenir à deux groupes distincts. Quand un élément se trouve entre ##, il est défini comme valeur par défaut dans le cas ou il serait absent dans la phrase mais cependant nécessaire. Il ne peut en avoir qu'un seul par groupe. Quand c'est le nom du $oupe qui apparait enfre ##, un élément est choisi au hasard directement par le progîamme. Une définition de groupe commence toujours par le nom de celui-ci suivi du signe =. Les éléments sont séparés par des virgules. Les espaces, retours-chariot ou tabulations sont ignorés. Une définition se termine toujours pas un point virgule. Iæs commentaires sont enffe
/
ou
\
I1 ne peut
y avoir de commentaires imbriqués.
Exemple:
alphabet : a1pha, bravo, charlie, defta, écho, fox-trot, gorf, hôtef, india, julj_et, ki1o, lima, mike, novenù)er/ oscarf papar quenec, romeor sierra, tang'o, uniforme, victor, whisky, x-ray; express j-ons : af f irmatif , négatif , roger, wiIco, #terminé#,. nombres : zêro, uDr unité, deux, t.rois, quatre, cinq, six, sept, huit, neuf, mil1e;
-65-
SYSPEO
Rapport de stage
séparateurs : sur' décimal, point, #virgule#,' stations : filêtzr marina, cambrai, cazauxt #marsan#, istres; #coufeurs# : bleur vertr rougfe,' indicatifs = vasco15, rictus2O, mi-ra?, #bravo9#, cora|2, meunierl; unités : mi-llibarr nautiques, noeuds, miles, pieds; pre-unités = cap, à-gauche-cap. à-droite-cap, niveau, vitesse, hauteurt
-
urres
-
:
altitude,'
?i;5:";:"1?::-i3:i:',::3:l;:'li"iËi"ll:i:::k""rion, stand-byt
autorisé, reçu, sécuritér service, vérification; actions : monter-pc, monter, différer, rappeler, stabilisert atterrissage, décoIIage, descendez, descenter autoriser, refire, éIéments-de-vol, débuter-descentei requêtes = #donne-moi#, contenu-de, précisions-sur,' #articles# = le, lesr der des,'
1.7 - Les fichiers des équivalences Définition des classes d'équivalences phonétiques. Chaque liste précise les éléments qui peuvent être confondus du fait de leur ressemblance phonétique. Les éléments doivent appartenir au vocabulaire appris sous DATAVOX. Un élément ne peut appartenir à deux listes distinctes.
Iæs éléments doivent apparaître entre parenthèses et séparés par des espaces. Les commentaires sont entre / ou\ Il ne peut y avoir de commentaires imbriqués. Exemple:
(milfe, miles, six) (de, deux, le) (autoriser, autorise) (cap. quatre) (sous-syntaxes, cinq) (descendez, descente)
Déclaration des éléments synonymes ou proches voisins. Ces équivalences perrnettent une plus grande souplesse au niveau du parlé tout en forçant le système à retomber dans une syntaxe rigide. Même syntaxe que précédemment.
Exemple:
(éféments-de-vol, relire, vérification) (hauLeur, alt.itude) (autorise, autoriser, autorisation) (miles, nautiques) (atterrissage, débuter-descente)
-66-
Rapport de stage
SYSPEO
1.8 - Le fichier de la syntaxe Syntaxe définie sous la forme d'une grammaire non contextuelle non récursive. L'axiome et les sous-syntaxes nomment les règles lexicales. La partie gauche est séparée de la partie droite par deux points (:). Une règle lexicale se termine toujours par un point virgule (;). I-es éléments de la partie droite d'une règle sont des sous-syntaxes sauf dans les cas suivants :
## encadre les noms des groupes lexicaux. <> encadre des terminaux du vocabulaire. Les symboles classiques utilisés dans cette syntaxe apparaissent également en partie droite pour former des expressions dérivables ou non.
* . I 0 {
}
tl ^
n'importe quel mot. pour suivi de pour le choix exclusif entre plusieurs éléments. pour grouper les éléments et les opérateurs puisqu'il n'y a pas de précédence et que I'associativité se fait à droite. pour grouper ou indiquer que les éléments sont optionnels. Il y a une propagation des effets qui s'étend aux éléments des sous-syntaxes dérivées sélectionnées et aux groupes lexicaux. pour préciser un mot clé ou un ensemble. La portée de cet opérateur est semblable à celle de { } ou 0.Les terminaux sont toujours des mots clés. désactive la pofié de I'opérateur [] pour les éléments spécifiés. Cet opérateur ne peut s'affecter à une sous-svntaxe.
Iæs commentaires sont entre / ou
\
Il
ne peut y avoir de commentaire imbriqué.
Exemple:
commande; / axiome de la grammaire. / ((([#indicatifs#] cornmande : [#stations#] (ordres I informations I rappel-s)) [#expressions#] ) { ^(t.erminé>^ } ) | requêtes,. requêtes : ((donne-moi) ( (^#articles#^ objet-requête) ((un-exempJ-e-avec) *) ) ); objeÈ-requête : (vocabulaire) ((contenu-de) . *) (<précisions-sur> { ^#articles#^ } *) *}) ((groupes-sémantiques> {^#articles#^ *}) ((sous-syntaxes> {^#articles#^ ((synonymes-de) *) (<homophones-de) *); rappels : ((rappeler> (( {(passant>}. ((<niveau>.nombres) I
|
|
|
|
|
|
|
|
(nonùlres. {<pieds>} ) ) ) l<à-vue>) )
<éIéments-de-vo1>,'
|
ordres:directionslmanoeuvre; direct j-ons : (<à-gauche-cap> | <à-droite-cap) I <cap>) nombres,. manoeuvre : <décollage> (<vitesse) ( (<Mach> #nombres#. {#séparateurs#.#nombres#}) (nombres {<noeuds>} ) )) (<monter-pc> (<monLer> ( (<niveau) nombres) |
|
|
|
-67-
|
Rapport de
stage
(
SYSPEO
(nombres {<pieOs>} ) <post-combustion>) ) )
(<descendez) | <stabiliser>
(aut.oriser))
| |
I
((niveau> nombres) (nombres {<pieds>}))) (<différer> . <atterrissage>) <débuter-descente> (<iff> ( (#nomnres#.#nombres#.#nombres#.#nombres#) <stand-by> | <fIash-on> | (flash-off>) ); informations : ((contact-radar) . nombres {<nautiques>}) (
I
I
|
|
I
|
(<piste>. #nombres# . <service). #couleurs# nombres . i<miIlibar>)),. nonbres : #nombres# { #nombres# { #nombres# { #nombres# }}};
1.9 - Le vocabulaire annexe Ce fichier contient la liste des mots prononcés par SYSPEO mais absents du vocabulaire de la reconnaissance. Ces mots ne seront donc utilisés que pour la synthèse vocale. Ne pas oublier les virgules entre les termes et le point-virgule pour terminer la(es) séquence(s). Les commentaires sont entre I ou \ Il ne peut y avoir de commentaire imbriqué.
Exemple:
et, je-ne-comprends-pâs, veuillez-préciser, i1-manque, bien-reçu, dix, onzet douze, treize, quatorzer quinze, seize, vingt, trente, quarante, cinquante, soixante, quatre-vingt, ^ôhl-
mi I Ia
\ Ces termes sont nécessaires pour 1'accès à la syntaxe. Option de compilation ACCES SYNTAXE levée. \ contient, contenu-dansrpossédant, synonymes, homophones, i nnnnnrr-rlrnqgqr19,lLLvu'vUu/ q^n1-
nrrni
m^l-
ôel-
i nannnrr.
1.10 - La syntaxe du moniteur Ce fichier contient les descriptions des ordres que peut donner le moniteur a l'élève. Ces ordres sont exprimés sous forme de phrases utilisant des mots du vocabulaire ou des groupes lexicaux (le moniteur ayant libre choix du mot dans ce groupe). Chaque ordre se termine par un mot clé attendu (entre parenthèses). Ce dernier devra apparaître dans la réponse de l'élève pour valider I'ordre, sinon ce dernier sera reproduit. - Une définition d'ordre se termine toujours par un point-virgule (;). - Les terminaux peuvent être entre <> mais cela n'a rien d'obligatoire. - Un groupe lexical (entre ##) sera remplacé par une instance aléatoire de ce groupe. - Les mots entre [] précisent des éléments devant apparaître dans la requête formulée. - (*) Veut dire qu'il n'y a pas de réponse attendue. Passage au suivant.
-68-
Rapport de stage
SYSPEO
Exemple:
faites-déco1ler [#indicatifs#] depuis #stations+ (déco1l-aqe) ; /-.i"^-,,\. changer <al-titude> de #indicatifs# \rrf vçour, augmenter (vitesse) de #indicatifs# (vitesse),' /rzifaqqa\. diminuer <vitesse) de [<bravo9>] faire monter [<bravo9>] altitude deux trois lmil1e] pieds (mi1le) diriger [<bravo9)] sur le cap un neuf zéro (cap); donner a [<bravo9>] une vitesse de un tr4ach virgule six (Mach) ; différer (atterrissage> pour [<bravog>] (atterrissage) placer <iff> de [<bravo9>] en [<stand-by>] (iff); faire atterrir [<bravo9>] sur-base-d.e [<marsan)] (*),'
,.
,.
2 . STnUCTURES DE DoNNEES 2.1 - Les tables Sont rassemblés dans des tables dynamiques organisées comme des listes
:
- Le vocabulaire - Les groupes lexicaux - læs sous-syntaxes
qrouoes
i""i"",r)(
vocabulaire
sous-syntaxes
Figure 2.1 : Structure des tables et chaînages. ql- rrr.l-
rlaf
f I aas
I qhnri
struct def vocabul-aire
êt^l{
- l-\/nê çJyv,
nrô
clofvre!,
onl- inn vyurvrr,
char mot IMAX MOT] int seuif; struct def_fIags f19,. struct def l-iaisons *ancr,. ,-
inrlov rrrue^,
dafarri. uç!ouç,
I. ,,
SYSPEO
Rapport de stage
struct def_vocabulaire **1ien_voca,' struct def vocabulaire *l-ien sema, *lion
I;
nhnn
iliîTaiIl"'
mot : contient la chaîne de caractère représentant l'élément enregistré (soit un mot
du
vocabulaire, soit un groupe lexical, soit une sous-syntaxe).
seuil : note exprimant la valeur de la reconnaissance du mot par la carte. Peu représentatif en I'absence de syntaxe.
ancr : lien vers un noeud du réseau lexical. Ce champ n'est pas utilisé avec le vocabulaire et les groupes lexicaux mais seulement avec les éléments d'une phrase et les sous-syntaxes.
Iien_voca : tableau de pointeurs. Utilisé uniquement avec les groupes lexicaux et les soussyntaxes. Pour les premiers, cette table contient des liens vers tous les éléments du vocabulaire appartenant au groupe. Pour les seconds, elle contient des liens vers toutes les sous-syntaxes filles (contenues également dans la liste). lien_sema : Utilisé par le vocabulaire pour préciser le groupe lexical auquel par les sous-syntaxes pour désigner la sous-syntaxe mère.
il
appartient et
:
utilisé uniquement par le vocabulaire, permet de chaîner les équivalences phonétiques du vocabulaire. Il faut souligner ici que le chaînage est circulaire et que tous les éléments phonétiquement équivalents sont liés en circuit fermé. Pour cette raison, et vu I'unicité du pointeur, il est interdit à un mot du vocabulaire d'appartenir à deux listes lien_phon
d'équivalence distinctes (obligation logique par transitivité de réunir les deux).
lien syno : même fonction
que lien_phon mais pour les équivalences synonymiques.
suivant : lien vers le prochain élément de la liste. état : champ servant à conserver une valeur de traitement.
type : précise
I'appafienance d'un élément à telle ou telle liste : TYPE_LEXICAL, TYPE_GROUPE, TYPE_SS_SYNTAXE, TYPE_SYNTAXE puisque cette structure est reprise pour les noeuds syntaxiques.
nro : donne la taille de la table
dynamique lien_voca. Aurement dit. pour les gtoupes lexicaux, le nombre d'éléments qu'ils contiennent.
clef : vaut vrai ou faux selon que l'élément (vocabulaire ou groupe) est un élément clé ou non. Cette valeur est active après la compilation de la syntaxe.
option : cette valeur n'est utilisée que pour les noeuds de la syntaxe. Précise si le noeud est optionnel ou non.
index : Si l'élément est un mot clé, il possède donc une entrée dans la matrice des liaisons. L'index dans la table est mémorisé ici. défaut : Valable pour le vocabulaire ou les groupes lexicaux. Précise si l'élément peut être utilisé comme valeur par défaut ou non pour compléter une phrase. Si défaut = -1, pas de valeur par défaut pour le groupe. Si défaut = 0, un choix doit ôtre fait parmi les éléments du groupe. Pour une valeur positive, l'élément désigné doit être pris comme défaut.
lV - ^rr\
Rapport de stage
SYSPEO
2.2 - Le réseau Le réseau syntaxique est un ensemble de structures chaînées enffe elles par des éléments de liaison. Iæ point d'entrée dans le réseau est lié à la variable pointeur res-txt. Certains champs des structures ont leur existence liée à la valeur de certaines options de compilation.
Figure 2.2 : Le réseau syntaxique
struct def_réseau_syntaxique { char contient qh^rii-rrno
struct struct struct struct struct
[[4AX_MOT] ;
alam.
def-vocabulaire *appart,. def-vocabulaire *sê- sntxt; def-Liaisons *l-iensl def-fIags fIg,. def_coord coord;
t;
Struct def_liaisons { struct d.ef_réseal' syntaxique struct def liaisons *suiv,. contient
:
mémorise d'indirection.
*e1em,.
le nom de l'entité représentée par le
noeud. Evite un niveau
type_elem : permet de connaître le type de l'élément. Essentiellement TYPE_GROUPE ou TYPE_LEXICAL. Duplique la valeur flg.type.
appart : lien vers un élément d'une des tables : vocabulairo ou groupe sémantique. ss sntxt : lien vers la sous-syntaxe dans la liste sous-syntaxe qui contient ou décrit l'élément du réseau. Ce lien établi à la compilation de la grammaire permet de connaître exactement les sous-syntaxes filles et mères pour l'élément considéré. Ceci est très utilisé pour I'accès à la syntaxe et pour les réponses par niveau de synthèse. F'I - (t -
Rapport de stage
SYSPEO
liens : structuro chaînée (par suiv) simulant les arcs du réseau vers les noeuds accessibles.
flg : voir précédemment. coord : stmcture contant trois valeurs (x,y et valide) mémorisant la position en coordonnées cartésiennes du noeud du réseau à l'écran, en cas de visualisation graphique. Valide précise si l'élément placé doit être affiché ou non, ceci en fonction de la densité demandée.
2.3 - Les liaisons entre les tables et le réseau Une forte connexion est assurée avec les différentes tables de façon à homogénéiser I'ensemble et surtout d'éviter une ffop grande duplication d'information. I1 est donc possible d'aborder le traitement de différentes façons puisque les connexions sont établies une fois pour toutes.
réseau
I
Y
Figure 2.3: Exemple de liaisons entre Ia syntaxe et les tables
2.4 - Les liaisons entre phrase, table et réseau. Une requête (phrase) prononcée par la locuteur est disponible dans un buffer mis à jour par les cartes de reconnaissance. Cette dernière ne contenant que des mots du vocabulaire (éventuellement étendu), elle sera traduite en une liste chaînée d'éléments de même sffucture que les tables (listes) vocabulaire, gloupes lexicaux ou sous-syntaxe. De cet fait, on pourra établir un chaînage avec les différents éléments de I'environnement (tables + syntaxe) pour
_72
_
Rapport de stage
SYSPEO
accélérer le traitement ultérieur. Une recopie de certaines informations dans les éléments de la phrase permettront d'éviter certaines indirections.
Figure 2.4 : insertion d'une phrase dans I'environnement syntaxique.
2.5 - Les 3 piles de la reconnaissance L'analyse de la phrase est réalisée avec I'aide de trois piles (construction hybride permettant une manipulation du type pile et liste doublement chaînée) particulière de structures identiques. L'accès à ces piles est réalisée au travers de fonctions classiques pour tous les accès de type pile. Pour des raisons de performances, il est possible d'accéder directement aux éléments stockés sans utiliser ces dernières (en lecture seulement pour éviter de les altérer). Pour cette raison, elles ont été définies sur la base de listes doublement chaînées. læs piles pouvant enregistrer n'importe quel élément (pointeur convertit en void), donc d'enregistrer également le type de l'élément empilé pour pouvoir ensuite (conversion inverse).
il importe y accéder
A noter que le squelette est enregistré dans une structure pile du même type.
struct def_dj-sque_analyse { void *l-ien; int type_Lien,' struct def_disque_analyse *mon, *des,- I; struct def_pile_analyse i struct def_disque_analyse *haut, *bas; );
-
rya
lù -
Rapport de stage
SYSPEO
liens vers les éléments empilés
Fàù,fl l:.b;às,
I
pile
Figure 2.5: Les piles utilisées lors de I'analyse syntaxique de la phrase.
lien : pointe sur l'élément empilé. Le type voidpermet de pointer n'importe quoi.
type lien : conserve le type
de l'élément empilé. Ceci permettra la conversion inverse.
mon : lien vers l'élément au dessus. des : lien vers l'élément en dessous.
haut : pointe sur l'élément en haut de la pile. bas : pointe sur l'élément en bas de la pile.
2.5.L - Les liaisons entre les piles
Ei:i:r:::::::
!tÈ;!in not:::i:i::
aèi::::
Ii
lls::::::::::
!vÈil!eI ll9!1r::::i:i: dèi:::::::::::
,ti!Ê:!g!f,
;*..
:
lÈh:r:::::i
ùÈ.jliin ùoni::::::::l
ijdj:li:
iii:il
ltÈJièit !19!lr::rii:iil d6:i:r::.::r
plrcnn
pl_nn_rcnn
Figure 2.6 : Articulation des trois piles principales de l'analyse.
.-1
- t'tÀ -
Rapport de stage
SYSPEO
Pile pl-rcnn : contient les éléments reconnus et des liens vers les éléments empilés dans une des deux autres piles. Ceci permet donc de séparer les traitements tout en conservant I'or6re d'enchaînement. Cette pile est la principale puisqu'elle relie les deux autres. Pile pl-sppstn : contient tous les éléments supposés pour la reconnaissance de la phrase. Pile pl_nn_rcnn : contient tous les éléments rejetés.
2.5.2 - Les liaisons entre piles, phrase et réseau.
En fin d'analyse, les piles, la phrase traitée, le réseau et les tables sont fortement connectées. Cette connexion est mise à profit pour les traitements ultérieurs et notamment I'affichage du réseau.
.,,Y9ÇabUlaire
chemin synlaxique validant la phrase
matrice des liaisons
Figure 2.7 : Connexions générales en fin d'analyse.
Rapport de stage
3.
SYSPEO
TnnCE D'EXEcUTIoN
Le
tracé d'exécution ci-dessous monffe un exemple d'assistance de I'opérateur par le moniteur. Les phrases prononcées ont été volontairement altérées pour mettre en évidence les capacités de tolérance à la syntaxe de SYSPEO. Pour cet exemple, seul le module moniteur est actif, le contrôleur et le simulateur on été inactivé. Phrase recue : ce qu'y est envoyée par la carte de reconnaissance vocale. Phrase reconnue : après le traitement de I'analysour. italique: interaction de SYSPEO par synthèse vocale. gils : ordres du moniteur en synthèse vocale ou à l'écran.
Création des tables sémantiques...(Entités 12, voca 84)...ok. Liens inverses...(84 références)...ok. Equiv ale nc e s pho
né tique s...ab ando n.
E quiv al e nc e s sy no ny mi que s ...( 5 g r o up
e (s))
...o k.
Création du réseau...(108 noeuds, 133 ercs,9 ss-synt.)...ok. E quiv al e nc e s p ho né tiq ue s ... ( 6 g r o up
e ( s ) ) ... o
k.
Création de la table des liaisons...(44 mots clés)...ok. Test de cohérence......ok. Création du moniteur...( I 0 définitions)...ok. Prêt pour contrôler...(6 avions)...ok. Ordre
: O- 2- 0, Rappel : 0- 1- 0.
phrase phrase
recue
: bravo9 marsan décollage
reconnue : bravo9 marsan décollage terminé
faire décoller bravo9 depuis marsan
recue : marsan décollage il-manque indicatifs phrase reconnue : bravo9 marsan décollage terminé phrase
bravo phrase phrase
recue
: donne-moi le contenu-de indicatifs
reconnue : donne-moi le contenu-de indicatifs
contenu-de indicatifs vascol5 rictus2} miraT bravo9 coraL2 meunierl phrase phrase
recue
: coralZ monter deux marsan niveau deux trois six
reconnue : coralZ marsan monter niveau deux trois six
- r0-
Rapport de stage
SYSPEO
changer altitude de bravo9
recue : bravo9 différer monter deux deux noeuds il-manque stations phrase reconnue : bravo9 marsan monter deux deux pieds terminé phrase
erreur-d-altitude phrase phrase
recue
: bravo9 marsan éléments-de-vol
reconnue : bravo9 marsan éléments-de-vol terminé
j -atten ds-autre-chose
je-vous-ai-demande de changer altitude de bravo9 phrase
recue
: trois bravo9 niveau deux deux trois marsan
il-manque rappeler phrase
reconnue : bravo9 marsan rappeler deux deux trois pieds terminé
j-attends-autre-chose phrase
recue
: bravo9 niveau deux trois cinq
il-manque stations phrase
reconnue : bravo9 maman rappeler passant niveau deux trois cinq
j-atten ds-autre-chose phrase
recue
: roger bravo9
mille monter deux trois cinq
il-manque stations phrase reconnue : bravo9 marsan monter deux trois cinq pieds
bravo augmenter vitesse de bravo9 diminuer vitesse de bravo9 faire monter bravo9 altitude deux trois mille pieds
recue : monter altitude de trois mille il-manque indicatifs et stations phrase reconnus : bravo9 marsan monter deux trois mille pieds terminé phrase
bravo diriger bravo9 sur le cap un neuf zéro phrase phrase
recue
: donne-moi cinq un-exemple-avec cap
reconnue : donne-moi un-exemple-avec cap
exemple : miraT metz cap zéro huit neuf sept terminé phrase
recue
: miraT cap un neuf cap
.'1.1
- tt -
Rapport de stage
SYSPEO
il-manque stations phrase reconnue : miraT marsan cap un neuf quatre terminé
j-avais-demande bravog pour indicatifs recommencez phrase phrase
recue
: bravog metz cap un neuf zéro éap un neuf zéro
reconnue : bravog metz
bravo donner a bravog une vitesse de un Mach virgule six
recue : donne-moi contenu_de vitesse terminé il-manque articles phrase reconnue : donne-moi le contenu_de vitesse phrase
j e -ne - c ompr ends -pas c onte
nu-
de vite s s e
recue : donne-moi contenu_de pré_unités il-manque articles phrase reconnue : donne-moi le contenu_de pré_unités phrase
contenu-de pré-unités : cap a-gauche-cap a-droite-cap niveauvitesse hauteur altitude phrase phrase
recue
: donne-moi un-exemple_avec ordres
reconnue : donne-moi un_exemple_avec ordres
exemple : indicatifs stations manoeuvre phrase phrase
recue
: donne-moi un un_exemple_avec manoeuvre
reconnue : donne-moi un_exempie_arrec manoeuvre
exemple : [ndlcatîfs stations manoeuvre
recue : donne-moi contenu_de manoeuvre il-manque arficles phrase reconnue : donne-moi de contenu-de manoeuvre phrase
contenu-de manoeuvre : décollage vftesse Mach nombres séparateurs nombres noeud,s monter-pc monter niveau pieds post-combustion descendez stabiliser autoriser différer att e rris s a g e d é b ut er - de s c e nt e iff s tand- by as h- o n a s h-
ft
phrase phrase
fl
off
recue
: donne-moi un-exemple_avec différer reconnue : donne-moi un-exemple_avec différer
exemple : bravog cazau)c différer afierrissage rcrminé phrase recue : différer trois atterissage bravog miles cazaux Le mot atterissage est suspect !!
(ô- ryn
Rapport de stage
phrase
SYSPEO
reconnue : bravo9 cazatrx différer atterrissage terminé
j-attends-autre-chose différer atterrissage pour bravog
recue : différer atterrissage pour bravog il-manque stations phrase reconnue : bravo9 marsan différer atterrissage terminé phrase
bravo placer iff de bravo9 en stand-by phrase phrase
recue
: stand-by marsan bravog
iff deux
reconnue : bravog marsan iff stand-by terminé
bravo faire atterrir bravo9 sur-base-de marsan Plus d'ordre a donner ! phrase
recue
: bravo9 il-manque stations phrase reconnue : Pile vide phrase
recue
phrase
recue
!
: bravo9 marsan il-manque ordres phrase reconnue : Pile vide ! : bravo9 marsan mach un
virgule six terminé
il-manque vitesse phrase
reconnue : bravo9 marsan vitesse mach un virgule six terminé
- tv-
Rapport de stage
SYSPEO
4 . LISTING DES STRUCTURES DE DONNEES ET FICHES SADT | -----/* Definition des structures utilisees pour gerer les fonctions vox xxx. Definition des variables et des structures utilisables dans */ 1e contexte le lrapplication SYSPEO. /+ I
:::::: ------
#include #include #include #inc]ude #include #include #incfude #include #include #include #include #include #include #include #include #include #include #define
<conio.h> <ctype.h> <dos.h> <errno . h> <fcnt1.h> <graph.h> <io.h> (ma11oc. h) <pgchart.h> <process.h> <stdarg.h>
<stdio.h> <stdlib.h> <string.h> <sys\types.h> <sys\stat.h> <time.h>
NOP
#include
0; /* Qperateur nul- servant aux substitutions de fonctions. */
t'syspeo_o . h"
/*
ôn]- innq
rla
nnmnilrtrf
quf
inn vrr.
*/ /
#ifdef CARTE VOCALE #include "rdlcmd.h" #define ITVECT 0x7a #define TDSAD 0x310 #endif /* CARTE VOCALE */ #define BLEU 1 #define -VERT 2 ûôô1f
nô
I
/* vecteur dtinterruption /* adresse TdS96/25 x/
DOS
*/
/* coufeurs */
I ktt.
4 #define 5 #define foerane bKUN b #define eRrSClarn r #define enrSrOxCe g #define BLEUCLAIR 9 #define -NOIR 10 #define -CIELCLAIR 11 #define _ROUGECLAIR l-2 #define MAUVECLAIR ]-3 #define .IAUNECLATR 14 #define -BLANC l-5 #define MÀX MOT 30 #define MAX PHRASE 80 #define MÀX-FICHIER 80
-ROUGE -MAUVE
#ifdef CARTE VOCALE #define ITVECT 0x7a #define TDSAD 0x310 #endif /* CARTE_VOCALE */ #ifdef STMULATEUR 1 #define PORT 0
/* nombre de caracteres dans un moL' /* nbr 2 car dans une phrase. */ /* nbr 2 car dans une specif de fic /* vecteur drinterruption /* adresse TdS96/25 x /
DOS
/* numero de port de
*/
-80-
COM1
*/
Rapport de stage
SYSPEO
#define NACK 21 #define ETX 3 #define ACK 6 #endif /* SIMULATEUR_I- */
buffer resultat */ texte a afficher */ application DATAVOX. */ descripteur fichier reference */ int. resp_flag, dsp_err,' reponses RdF1000 et TDS96/25 */ 'inlmnrla nnrla. */ /* mode de reconnaissance */ int err_trait,' erreur 1'acquisition dans /* x/ /* parametres dynamiques de reconnaisance i nt- nl.r mnl- c nh rr / * nombre de mots dans l-a phrase */ --_r..-*se; */ char mot cour IMÀX MOT] ; / * mot courant analvse */ int seui] cour; note du mot courânt /* */ int seuil-ref ; /* seuil- d,e reference 11 #define NOEUDS #define TERMINAUX 22 #define TOUT_NOEUD 33 #define verj-fier taille pile (x) \ i f ( (x) ::P r Ln- collP r r,er roN_MAX- 1 ) \ { imprim_text("Pil_e saturee !\n", ROUGE); \ imprim text (t'Aug:menter l-a valeuE de PILE_",_ROUGE) ; \ imprim_text("COMPILATTON MAX dans SySpEO.h \n", ROUGE); \ imprim text("et recompiler les modules.", ROUGE); \ vox*fin (0) ; ) #define pause O (void) (getchar O ) #define bip(n) {register short x:0,.for(,.x(n,.x++)putc(7,stdout),. } 70 /" seuil maximum admissible / mot */ #define SEUIL MAX PILE_cOMPILATION_MAX 500 /* pour 1a compilation de syntaxe. */ #define #ifdef MEM TRACE #define _mâI1oc (type) (trace_ma-lloc (sizeof (type) ) , \ (type* ) maf f oc (sizeof (type) ) ) #define _free (type) trace_free (sizeof (*type) , (void*) type) , free (typel #define _caIIoc (nb, type) (trace_calfoc (sizeof (type) ) , \ (type*) calloc (nb, sizeof (type) ) ) #ol ea #define _malIoc(type) (type*)malloc (sizeof (type) ) char test_buf [500] ; char texte [200] ; char path_appli IMAX_FICHIER] ; int ref_fd,'
/* /* /* /* /*
f f vuv,
*r!ofino
fraoll-rzno\ \9Jrv/!!vv\9JÈ'vl
froo/i.rrna\
#define calloc (nb, type) (type*) calloc (nb. sizeof (type) #endif 7* MEI',I_TRACE */ #define digit (x) ( (x) >:r0r&& (x) <:'9'?1:0)
)
*/ TB 9 /* code ascii pour tabufation x/ pour line feed. LF 10 /* code ascii x/ SPC 32 ,/* code ascii pour espace. */ CR 13 /* code ascii pour carriage return. CM1 '/' /* code ascii pour le delimiteur de commentaires. */ */ CM2 0x5c /* synonyme pour delimiter les commentaires. extern char CHATNE_VIDE [] ; extern char t_ignr [ ] ; *rlaf i nô a rTFrI)M lr.It t /* Terminateurs de phrases. * / */ #defineCrCNntignr /* Caracleres a ignorer. () ^ C SEPR . Separateurs #define entre mots. * / l" /* "l::{ } [] #define Rt',tPL re SPC /* Une tabulation vaut un espace. */ #define #define #define #define #define #define
- 81 -
Rapport de stage
SYSPEO
*/ #define LC TERM 0 /* valeur de retour quand terminateur rencontre. #define LC-EOF -1 /* valeur de retour quanO fin de fichier atteinte. */ #define FLG_ETAT 1, / * Masques logiques pour 1'acces */ FLG-TYPE 2 #define /* a ces postés. *-/ 4 #define FLG-NRO /* struct def-flg. */ 8 #define FLG CLEF #define FLG-OPTIoN l-6 #define FLG INDEX 32 #dCfiNC FLGIEFAUT 64 128 #defi-ne TOUS #define SIMPLE 0 *define PTR SEMA 1" /* Meme chose pour les pointeurs */ */ #define PTR-VOCA 2 /* de struct dèf vocabulaire. #define PTR SYNO 4 #define PTR PHON I #define PTR SUIVANT 16 #define PTR-ANCR 32 */ #define PRECISION 1, /* Requete adressee a SYSPEO. #define NAVTGATION 9 /* Ordre adresse a une piste radar. */ #define #define
PHONETIQUES 32]SYNoNYMIQUES 123
VIDE 0 #define MOT ---^--#define AUCUN 0 #define TYPE SEMANTTQUE 1 #define TYPE LEXICAL 2 #define SOUS SYNTAXE 3 4 #define INHIBITEUR #define TYPE PHRÀSE 5 #define TYPE_SYNTAXE 6 #define TYPE_SS-SYNTAXE .7
/* Element dans (el-ement.s non reconnus>. */ */ /* efement dans (el-ements reconnus> . */ /* element dans (elements supposes> .
#define LMT NN RCNN 111 #define LI4T-RCNN 222 333 #define LMT SPPS
/* identifiant /r< identifiant /* identiflant
#define INDICATIFS "indicatifs" #define STATTONS "stationstt #define NOMBRES "nombres"
/* :::::: | -----struct def liaisons,' struct def vocabulaire ; cl- rrr^1-
riof
f I ene
I
ch^rJ-
v11v!
(
semantique d'un avion. */ semantique drune base. */ semantique dtun digrit. */
Structures des donnees
:::: --------
*
/
"/
/** defini plus bas. */ / defini plus bas. */ â1-âl-
TYPE,
nro,
"-::'J-on
nl of
#i
fcief
opt SOIIEL METH
#endif /*
1
SQUEL METH
/
index, 1 */ def aut,'
,/* dans la matrice des l-iaisons. */ l;
#ifdef VISUALTSATION struct. def coord { short x; short y,' short val-ide,' }; #endif /* vrsuAlrsATroN */ I | + ------
-------------
-82-
+ " I/
Rapport de stage
SYSPEO
/* Type de donnees pour la memorisation du reseau syntaxique. */ struct def_reseau_syntaxique { char contient [MAX_MOT]; short type_eIem,' struct def vocabul-alre *appart,. #J.fdef ACCES_SYNTAXE struct def vocabulai-re *ss sntxt; #endif /* ACCES SYNTAXE */ struct def liaisons *liens,' ar- r,i^r-
#ifdef #endif /*
VTSUALISATION
VISUALISATION
rlaf
f I :^a
f 19.
struct def_coord coord;
*/ l;
struct def_liaisons { struct def_reseau_syntaxique struct def liaisons *suiv,'
*e1em,.
#define HAUT 2876 #define BAS 9432 #define trtot 5665 #define oPR 8876 /* operateur */ */ #define Rr,r 6322 /* resultat d'une sous evaluation. #define OP_SUIVI2 33 /* operateur de fa grammaire. */ #define OP_ALT 44 1* operateur I de ]a grammaire. */ /I +'- -----------/* cette pile est utilisee pour 1'analyse syntaxique. */ struct def_pile { short niveau, type; char valeur [MAX MOT] ; struct def liaiFons *Iien,' struct def-pile *mon, *des,'
-------
+ I
/
t;
/* pile_huni==pile_bas::NULL */
#define pile_vide (pile_haut::NULL)
/* cette pile est utilisee pour la reconnaissance des phrases. */ (pile) ::NULL I | (pile) ->bas::NULL) #define vide (pile) (struct def_vocabul-aire *) ( (x) ->l-ien) ) #define objet (x) (st.ruct def vocabulaj-re *) (x) ) #define obj_voc (x) ( (struct OeE tiaisons *) (x) ) ->elem) #define syntaxe (x) (x) ( (struct def liaisons *) ( (x) ->Iien) ) ->elem) liaison #define ( ( (struct def liaisons *) (x) ) -)el-em-)appart) #define liai x,voc (x) f,oeI]-ne
^,(x). rr_r_sz
(x) ->efem->liens
struct def_disque_analyse { void *1ien,' int type_Iien,' struct def_disque_analyse *mon, *des,' j; struct def_piIe_analyse { struct def_disque_analyse *haut, *bas,' l; t+ I '-
____-_ ------
/* cette structure stocke Ie lexique, les */groupes semantiques et les phrases en provenance des cartes. struct def_vocabulaire { char mot IMAX_MOT],' int seuil; struct def_f1ags flg; struct def_f iaisons *ancr,' struct def_vocabulaire **l-ien_voca,' struct def vocabul-aire *l-ien_sema, *l44vr.-r.rv.., ian nhnn :kl ian
-83-
crrnn
I
Rapport de stage
SYSPEO
*suivant; t. It I
t+
------
------
/* St-rrrr:trrrê crêrant leS trames vvL
I
struct def_tbI_vcl { char
Vôr:â
qoos srrr rli lês s\/nthoti scrrro ,Jrrurrguro urJYug.
--------
mot [MAX_MOT];
in1- rll'r w
frru
l-Ç!rr., rm
fn
l-rm.
* //
I.
l,
#ifdef SQUEL_METH_1 (tbl_chmnstil tjl) #define matrice(i,j) /* notation mathematique. *,/ #endif /* SQUEL_METH_1 */ |/ * :::::: -----/* Simulation graphique du reseau a l-recran. Mode VGA 640x480,16 cou1. #define VISU TEXTE 1 /* menu SYSPEO classique. */ #define VISU-RESEAU 2 /* fenetre qraphique d.u reseau. */ #ifdef VTSUALISATTON struct def_cons { struct def_reseau_syntaxique *car,. *cdr; .t; struct def_cons struct. def_tbl_visu { struct def vocabufaire *lien grp,' struct def-cons *lien cons; struct def-tbl visu *suivant,' I; #endif /* VISUALISATION */ t -
^ J
r</
::::::
/* Environnement du moniteur. Stockage des ordres a preciser a I'el-eve. */ #ifdef MONITEUR st.ruct def_monit_tb.l- { char a_dire IMAX_MOT] ; short i-mportant; struct def_vocabulaire *groupe; struct def vocabulaire *mem grp; *suiîânt; struct d.ef-monit tbl I; *liste; struct def entree tbl { struct def monit tbf struct def vocabulaire *mot attendu,. qhôrf
t.
f\/nê â1-]-ên.lrr
frOEIANE UKDK!.; U #define RAPPEL 1 extern short DIRE_ORDRE, DIRE_RAPPEL, FIN_ORDRE;
#endif /*
MONITEUR
*/
*/ ::::=::: -----/* Environnement de 1a tour. Stockage des parametres des avions en vo1. *,/ #ifdef CONTROLE 0 #define AU SOL 1 #define EN VOL #dCfiNE PHÂSE ATTERRTSSAGE 2 I+
#dEfiNE ATTENTE_ATTERRISSAGE
3
270 #deflne CAP AU SOL 0 #define VITESSE AU SOL a234 #define IFF AU SOL]-O #define ALTTTUDE AU SOL
/* oottr hrase do mersân rrninrromanf * / 2'70 ::: pour base de marsan uniquement *,/ ^?29 {* /* nnrrr kr:qa ria marqân lrniarramonl */ 2222 100 /* pour base de marsan uniquement */ struct def_avions { char indicatif IMAX MOT] ; EN VOL #define CAP :: --^#define -,--=^^= YIIEI.S-E_IN_VOL IFF EN VOL #defing #define ALTITUDE EN VOL - -
-=---=*":--
--^-
":==
'
YesL
-84-
Rapport de stage
SYSPEO
); #enOif /* l+
::::::
/ *
/
::::::
/
------
char station IMAX MOT] ; short etat; fi n# IIL VAp t ': l-nt vl_tesse,. Iong alt itude,' ]-nt l_rr,' short. if f tt,'
CONTROLE * /
::::=:::
/* ::::::
--
Trrnaa
n-aÀa€4
IYYe5
[JlYU.cllllf
-]
^
:::::
-----
::::::=:
*
/
x/ x /
typedef struct def_reseau_syntaxigue SYNTAXE; typedef struct def liaisons LIAISON,t- rznariaf s1- rrrôl- rief vOCabUIaire VOCABUL,rltnÂ^ô1
Crrrl^r
^ô1
nf
lô
p | | k
\Y.
typedef struct def3ile_analyse PILE,' typedef struct def_disque_analyse DISQUE; typedef struct def tbl vcl TRAMES; #ifdef VISUALISATION typedef struct def tbl visu VISU; #ENdif /* VISUALISÂTION */ #ifdef MONITEUR frrnaÀaf af r,1^i. .lef monit tbl MoNITR; #endif /* MONITEUR */ #ifdef CONTROLE qtrrl-idaf rrri^nc #endif /* CONTROLE */
i-rrnorlof
t
À\7T^N.
l+ ::::::
-----/*I + :::::: _-----
variabi_es exEernes
::::::
x
i
|_--__l_-:::::::^1
*grp voca, * groupe lexical */ *grp sema, //* groupe semantique */ *phrase; / * phrase enregistree */ extern LIAISON *res_txt; /x reseau syntaxique *,/ #i fdef SnTltrT, MFITH 1 extern VOCABÙL *Çrp_sstt; /* sous-syntaxes */ extern short **tbl chmns; /* Matrice des liaisons */ #endif /* SQUEL_METH_1 */ extern
VOCABUL
vYvru
extern extern extern #ifdef extern extern extern
LruL
int nb_lmt_mtrc; ,/* Nombre dtelements dans Ia matrice. */ char phr_rcnnIMAX_PHRÀSB]; /x phrase reconnue. */ short mode ecran,' CARTE VOCALE TRÀMES *tbf_vcl,' TRAMES *tbl vcl- monit;
short nb ImEs t61 vcl-,' exLern short monit nF :-mEs tbl vcl-; #endif /* CaRtn VOCALE */#ifdef SIMULATEUR 1 extern char buf envil ; extern char buf-rec[] ; exLern char terminl-il, termin2 [] ; #endif /* SIMULATEUR 1 */
/* buffer d'envol */ /* buffer de reception */
_Â(_
Rapport de stage
#ifdef TRACE FTCHTER extern fILs Tfichier t.race; #endif /* TRÂCE rrcuTrn "/ #include "syspeo3.h" I I
t + , +
SYSPEO
*/ /* Prototypes des fonctions . /* Appel final a cause des typedef. */
-----------
-------------
-----------
-------------
-ô0t\
+'| I + " II
...9 b
lirt
Ë
so \JA
t{
L
C
f
9.e r(o x()
C)
.g
5--> Ë aç
k
trE F9 ô: cjv
c,)
c)
1(.;)
q)
o
z
.(D
= E E
4-c \o
o ()
U'
.9
:
L
o)
<o L
c
o o
x
(E
(D
E q)
-o
é
c
o
a
o
(U
.q
Cg
o_
.= = () q)
(l)
.Ë
.c)
(s
:o
o tU
+X
L
xh I
r+
^
i:z >, (ÏJ(n
o_
Og
ol >o) tnA
U)
o->
a
(gc ()(g
o E o
IIJ
ol ïll
I
c)
c
L
(l) L
o =c o
g = 0)
E
c o
o)
E
CU
-= (l).(l)
o
.=v ;i\ 61
q) .9,
6 .E
tttl lll tlJ trj ul ^^^^ -NCf)<.
t-{
*(! (!>(l) F+x >,L: (,a=
L
;f
_9,
=L
I
a
(U
o-
ÈR J
I
6
'r-t
flq, F(! co oo o>
y
.9
9A EË
:P U'C
lJ
iI
S+9Ë
EEEE Ë(5(5(d
o333 -E()(J(J oooo F>>>
k-o-o_o .Y(s(É(d O.; ;; - uJ [! ul
o
LLJ F.l
o
z
U
n
c) -l-r
I
x
El ()!
s.fr
o)
E
ll I
;
aR
E ^I
9.ô
9q Ée
l
lôl
:U) ^1
-o
;Ë
q)
-=-ËE -', \rrô \\l(t
oo)-_a
ya q) !u .o)
()o cE r\^
rN
\\\
o
I
U)
q) (I)
a -
9o vx
É_> E o(/)
àU ;o (o)
z
-
t-!'
ps
o
| f'-
^
C\I
:J
a ,(l)
uJ
+q) ol'F
\Ë
I I
p
-.9 fO-
oo(g .=h fYaa
(l)q) >< ,=
ôâr
(gx
Éo
8g >i
E cc) ()X
5
I I
I
.o)
Ë
z
(-=
-R .sl o
=
ë
@
hc)
x
SL ^Lil
d
^ I
(/)(g
,!)
6g
k
l< .o)
|
>.c
u>
a
95
c(g q)c c>. ca o< .=i
Yo -(d
>L
O)
oo_
o o
^I
I
a
(f)
cq)
I
E
c(D
!IUO
.9ç
<-H
I
.eÈ oo
(, )a
<_c^ \Ëf,
o)
f;s rL s i9 >CI ;
0r^
.88
€Ë
p
E -E
o
t< {J
c)
c\
ir
o .9,
I
È-
l<!
6
tx
(-=
c c o c o 6
o
i.lo)
'6 E
.c)
E E
o 'i-i
at
.9
o
(t)
o c o
D
'=
-
{)
2
-9
T
a,,!
EI o (Jn
tl t_l
U
-.o
E x
q)
! r()
o
E
a ($
z
l<
cc o .=
()
o-
o
Q Q
-l
L(
oc) q)= 'g .s
o)
:Q v.t q)È _.9 .6
(l)
(g
:)
oE
a q)
E+ os)
() >\ f-o
I
^
g5
a
=a
ËE
58 ()>
(l)
È (l)
(E
.9 F
9= io
-__--> o-^
o o
E.p $q,
(/)c)
R.g Yt
Hh
-/
t-=
+o) oô (Jr.5 L-
rE'Ë .q)
E
x> ÉE
HH
o:9
EË qlE F:(g L
t^\
i\-ë ^uri
6
(= u
o a
.c) t-
L
Oo)oo Lu DrL
.93 >a ;
o .o tOY
*-_E dF
Ë
O
,{
+J
iâ.
c\
F
t<!
Fq) *Y.FN -{ :Y .i5
o
{o
58 'xb rll 6
r
E= ô:
.P
a
€
e.6
b
-.1
C)
z
Q) '+-)
XU
|
I
EJ
bo
|
Er
._.o (/)à cc) .eR
ONLI
11
(g0 )ar
HÈo
o L
tr
o
.c)
_o
z
L L
po
o)
a ,o -c
6
c a
c o .o)
q)
a
.(D
co) >r=
<-3r3>Ë
.=
I
Ia
(l)
Ë
pE
9q) ex
ô
_o
T]
Pi c.
@
att
-=
o-
A
o(go_ .=
I
I
(l)
\ --]>
r O
a cr)
N n.
Ëb
I I I
a q)
o)
L
(Do
E--->
c0)
o) ,o)
a
cL
.eE
.9
F^,
ov (l)
(tr
>\=
<_o \ (l)o
<3
.q)
1f>
a
fis oF-
19 >@ ;
q)
A^ tl rl
.88 ()Ë
Ë
.(!
lÉ
o o .= c o
fi
tFo
fr cn
k+J
v
f;FË
C)
#L
-
t-i
o)È
<-€'9 9v, .n
*,o .:< 'ii .c)o)
Ë€ Oar .ox U)
c\t
U)
z
q)
+)
Xn
(l)|
5r! -+J
611 D
:
ea
* Ët
i:a E'E
T
ËËË gi"nr Ë'9t È
BEA
t --t--la rl<-
^l^ | |
lElgç
*i IE;Ël * g'-s_ r+ | lËE;l is i lt-"1<--F tl
!Ft o)
|
v
-l
e o E
ô 'Ë
ll
l=
I
| lg[l Ë* [:] 5Ë A 'r'
Ë--->lpË
d
I|
-rt,r,
r------------l |
=ËH 6.=Y Ëd\
i |
\ttl
|
| ëP. | 3: II gE Êî$ ËÈ Et; I {r |
Ûd
I
| ^
llll
o q)
Ë
F
^\rtl'l rr s---> I--t---r.-
nrË\
x
tr---------2
tu
F--------->
a-;--)
8s ofr i9 >cn ;
o L L o
I I t
C\
P
.9
L 6
P ||
'aa
I n-l
u
ÈË
Ë,i 6a'l
A
ËrlrË;È - l*_i | |
F 'u
!È
Èo Cg L
5
1
:C'
k
<-95 o gI
l.-
o
g-->
i
=c) a
I '
l;*l4E l**;Ël.--Ëu lËËl Ëie lËË:El
F-
t
loli
f---> o
$H-+
o-h âr
tu
I :r * g, z-a \ oTok a.9
9E ;c ôg
o
o)!
c) o= AC
rl
(oc
>o
-o.
o
+l
Érl
$
3_' IJ
r
<_-8(!
Of
x }r
.c)
db
C)
Fl
z
k o) C)
q
(D
.g x (d c a (! U)
.q)
Og
oq) o_Ë
ut -=
o)
64 o5 -L
o o cr)
ôo
I
E
o
8x
!>
o E
Ë-->
8s Èr' =
; Ë9 ;'cn J
tr
ôl
t-
-c o (t
(D
5-->
o a (Û
<_ -
lÉ
5E
bq oÉ ÈoL-
o .> (É v)
c
(l).--
EF
EE tr i''r..
l.-
+J
=o Ë'Fs c\l
cf)
€ a
€
c)
z I
I
sl XN Q) +)
tl
.ql
-n
U
l< q)
q
ll t,t. ^A
'f't
lÈ
1A
lô_
r1
L
I
LI
(l)
'q) (l)iË
î:
\--/
6-g 'EÈ tq'6 .6o
h>
E=
I I
o
6
o O
I
o;
I
LU CO r-
o-
: .9 >o ; cn
k+J
U
a c)
o'9 o?; \ -u>'â---2 ^x-
È q)
L
(D
-co
I
e.E q)o-
5-q o)
I
k
I
l-r
I
L
.€
I
ll Ee-s-t ^^ ..ËÈ û
o <(D
g |
U) 'r-1
()
z
Rapport de stage
SYSPEO
BIBLIOGRAPHIE L'intelligence artificielle et le langage. Gérard Sabah. Hérmes. Assistance à I'opérateur, une approche de I'intelligence artificielle. Jean Boy. Eyrolles. Dialogue oral homme-machine, J ean-marie P i e rre l, H érme s. L'intelli gence Artificielle, E. Ri c h, M a s s o n. Systèmes de reconnaissance de la parole, Marc Ferretti, François Cinare, Edi-test. La reconnaissance de la parole, Joseph Mariani, La Recherche 170. Des machines qui comprennent notre langue, Daniel Kayser, La Recherche 170. Transportation & traffic theory. D.J. Buckley. Flight rules and air traffic procedures, Hubert G. Daniels Techniques de la navigation aérienne, Germain Coutaud, Que sais-je.
INDEX
D
datagramme. DATAVOX dérivation
.........
13
....... 13,76,21,53,62 ............. 34
E
élimination équivalences explications extracteurs ErAO..........
......29,39 ..., 45,66
.......... 31 ............ 1 1 .......... 60
F fenôtre
r9
fenôtre de résolution
JJ
-87-
Rapport de stage
G
automatique. grammaire... grammaire contextuelle. grammaire formelle grammaire générative grammaire systémique
............ 48
génération
.... 29,67 ............ 14 ............ 30, 34 ......... 14,32 .............. 33
groupes lexicaux ........ 30, 32, 33, 49, 52, 56, 65
R
H
historique.... homophones hypothèse....
recalage recalage temporel recherche aveugle.......
.......... 43
25,26,41 ..........29
iff................ images
spectrales
.............. 51
reconnaissance................ 33,36,48,61 reconnaissance
I îlots de confiance....
12,41,47,59 ................16,23
globale
............. 62
reconstruction..................
......... 39
références ........13,22 référenccs acoustiques .............. l5 références courtes ................ 19,22 références superflues ................ 19 règles lexicales ............... .....32,67 règles phonologiqucs ................ 24 règlcs syntaxiques............ .......,. 32 rcquête....,... .....43,56 réseau ...................29 réseau syntaxique... ................... 33
12,56,57 ,59
26,36 ...................... 22
réseaux à noeuds procéd uraux .........,............. 62 réseaux de 34.62
transitions
simulateur.... sonagramme sous-réseaux sous-syntaxe spectres........ squelette
...... 54,55, 56, 58, 60 ......... 23 ......... 34 15,32,49,67
.........23 29,35,36,39,73 squelettisation.................. .........29 stratégie gauche-droite.................................. 4
supposition ........ 43 suppositions anaphoriques 43,44,45,47 suppression synonyme ,,......25,42 13,19,30,67,83 syntâxe syntaxico-sémantique ............... 34 SYSPEO...... 16,25,33,46 24 , 55 , 51 , 60 système expcrt ....... .
N
synthèse non-attendus niveau de
................... 49 ......... 42
P
..
paramétrisation..............
permutation. phraséologie
1
4I,45,47
........... l5
....26,40 10,31,48,52
-RR-
Rapport de stage
SYSPEO
T
Terminaux tolĂŠrance..... treillis
15,30,51,67
.... 16, 19 ............. 16,23
v VECSYS..... vocabulaire voisement
.... 13,60 ..... 21,33 ............. 16
-89-