Issuu on Google+

,/\.

,Ë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.

-(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

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

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 ()Ë

Ë

.(!

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 (Û

<_ -

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

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-


Stage de fin d'études syspeo