Sunteți pe pagina 1din 13

Un modle de dialogue

base de scripts

1. Introduction
Dans ce chapitre le lecteur trouvera un exemple dtaill de la ralisation d'un
dialogue homme machine multimodal pour un logiciel de dessin (ICPdraw =
Interaction et Communication Parle pour le dessin). Le modle de dialogue
adopt est fond sur les scripts de dialogue et le modle de tche sur les scripts
de tche. Il sagit dun cas dcole, volontairement simplifi pour en faciliter la
comprhension.
ICPdraw est une application de dessin (type MacDraw) multimodale [Caelen,
92a]. L'utilisateur dispose d'une palette d'outils graphiques et de menus de
fonctions et il dispose dun langage dinteraction proprement multimodal (parole,
clavier, geste la souris). Le logiciel prvoit lensemble des fonctions habituelles
ncessaires au dessin : slection de plusieurs objets par pointage ou entourage ou
dsignation verbale, dplacement des objets, changement des coloris, dessin
dobjets gomtriques, etc. Ces objets gomtriques peuvent tre groups, cachs
ou saisis par des poignes. Le contexte interactionnel est synergique (cest--dire
quon peut parler en mme temps que lon agit avec la souris, par exemple
noncer la commande dessine un cercle ici accompagne dun clic souris de
dsignation du lieu).
Les explications, les demandes de confirmation, les demande de prcision et les
aides sont fournies lutilisateur par synthse vocale ou par affichage textuel dans
la zone de dialogue ou sur des fentres volatiles lorsque la rponse est longue. Un
aperu gnral de l'interface est donn fig. 1.
Iconbox
ICPdraw
File Edit

Configure

ICPdraw

Events
Speaking...

Which color?

Sentence hyp.

draw>green

1. green 0.95
2. blue 0.2

Fig. 1 : Linterafce graphique dICPdraw (version Xwindows). Elle est compose de quatre fentres,
la premire (ICPdraw) est dcoupe en zones et menus dfinissant l'espace de travail graphique et
lespace de dialogue, la deuxime (Iconbox) contient un logo, la troisime (Events) visualise ltat
des canaux de communication et indique, par exemple, l'utilisateur quand il peut parler, la

quatrime (Sentence hyp.) visualise les rsultats du systme de reconnaissance vocale (les 4
meilleures hypothses sont retenues et ranges selon un score dcroissant).

2. Les langages d'interaction dICPdraw


On distingue dans ICPdraw quatre types de langages dinteraction :
le langage dinteraction verbale pour la manipulation des objets de
lapplication,
le langage dinteraction gestuelle, qui est une extension la dsignation par
pointage et la slection de menus et doutils,
le langage de demande daide, permettant lutilisateur de demander des
aides en cours de travail (comment faire, comment dire, etc.),
le langage de rplique qui lui est autoris en rponse aux questions de la
machine.
Le langage de manipulation
Le langage interne de manipulation des objets dICPdraw est dfini comme une
liste de commandes dont la forme logique est :
Com(<arg1><arg2>...<argn>)
Com

reprsente une commande (action lmentaire),

argi

sont les arguments de la commande.

A ce langage interne correspond un langage externe multimodal ( destination de


l'utilisateur), deux composantes, langagire et gestuelle.
La composante langagire
Les noncs admissibles dans le langage oral sont des noncs :
bien forms comme : dessiner un cercle vert ici
avec ellipse des mots grammaticaux comme : dessiner cercle vert ici
de ritration comme : encore ou ...cercle vert
de rectification comme : non... vert
de confirmation comme : oui
Ils peuvent tre dcrits par la grammaire Go (avec une signification vidente des
notations, | oprateur "ou", . oprateur "et", () lment facultatif, {} liste) :
Go
Com
Action
Action
Ritration
Ritration
Rectification

->
->
->
->
->
->

Action | Ritration | Rectification


Vo.(GN).(GPL) | Vo.Pr.(GPL)
Vi
GN | GPL | AdjC
{encore}
non.GN | non.GPL | non.AdjC

Rectification
Tche
GT
GN
GPL
Pr
PP
PD
Vo
Vi
Dt
AdjT
N
NT
AdjC
LocP
LocA

->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->
->

plus.AdjT
Vo.(GT)
(Dt.).NT
(Dt).(AdjT).N.(AdjC) | Dt.AdjT | Dt.AdjC
LocP | LocA
PP | PD
{le, les}
{}
{dessiner, dplacer, effacer, dupliquer}
{annuler, quitter}
{le, les, un, deux, trois, quatre, ce, ces}
{grand, petit}
{carr, cercle, triangle, trait}
{noms des tches rpertories}
{blanc, noir, bleu, jaune, rouge, vert}
{ droite, gauche, en haut, en bas, au centre}
{ici, l, vers l, par ici, par l}

Le module qui traite des entres en langage naturel (parles ou crites) dispose
d'analyseurs linguistiques capables de fournir la structure des constituants (cstructure) et la structure fonctionnelle (f-structure) de la commande. Ces
analyseurs utilisent le formalisme des grammaires lexicales fonctionnelles
[Reynier, 90] et fonctionnent avec le systme de reconnaissance automatique de
parole continue ECHO (voir annexes). ECHO utilise des modles de Markov
cachs.
La composante gestuelle
Le langage gestuel comprend des actions de dsignation/slection et des actions
de dessin main leve. Il se formalise par la grammaire Gg :
Gg
Dfinitions
A1
A2
R
Traj
A1(Lieu).R
A1(Lieu).Traj.R

:
:
:
:
:
:

enfoncement du bouton n1 de la souris


enfoncement du bouton n2 de la souris
relchement d'un bouton
trajectoire du curseur de la souris
dsigne un lieu de la zone de travail
dsigne une aire de la zone de travail

Grammaire Gg :
Action -> A1(Obj).R | A1(Lieu).Traj.R (slection d objet(s))
Action
Action
Action
Action

-> A1(palette_carr).R.A1(Lieu).R (dessiner un carr)


-> A2(Lieu).Traj(carr).R (dessine un carr)
-> A1(palette_triangle).R.A1(Lieu).R (dessiner un triangle)
-> Traj(triangle).R (dessiner un triangle)

Action -> A1(palette_cercle).R.A1(Lieu).R (dessiner un cercle)


Action -> Traj(cercle).R (dessiner un cercle)

Action -> (Dsigne(obj)).A1(palette_kill).R (effacer cet objet)


Action -> Traj(Z) | Traj()).R (effacer cet objet)
Action -> A1(Obj).Traj.R (dplacer cet objet)
Action -> Traj.R (dupliquer cet objet)
La racine commune aux deux grammaires Go et Gg est lentre Com. Lunion
des deux grammaires en une seule dfinit la grammaire multimodale Gm = Go U
Gg.
Le langage de demande daide
Le langage de demande d'aide dfinit l'ensemble des noncs de demande daide
que peut formuler l'utilisateur. L'aide est active par le contrleur de dialogue ou
sur demande de l'utilisateur. Cette aide est prsente oralement (synthse de la
parole) ou de manire crite (dans une fentre volatile). Il ne sagit pas ici pour la
machine de gnrer des noncs complexes et extrmement varis : on peut
simplement utiliser des phrases trous dans lesquelles sont insrs les lments
variables.
La demande daide porte sur :
les objets de lapplication (type, couleur, position),
les oprations possibles sur les objets,
les langages dinteraction,
laide elle-mme.
La grammaire du langage de demande d'aide Ga est la suivante :
Ga
Dem_aide

->

Dem_aide_obj ->
Dem_aide_obj ->
Dem_aide_obj ->
Dem_aide_obj ->
Dem_aide_op ->
Dem_aide_op ->
Dem_aide_op ->
Dem_aide_l ->
Dem_aide_l ->
Dem_aide_aide ->
V
->
Vo
->
Vi
->
N
->
LocP
->
LocA
->

Dem_aide_obj | Dem_aide_op | Dem_aide_l |


Dem_aide_aide
quel.N | quelles.sont.les.couleurs
quelle.est.la.couleur.du.N
quelle.est.la.taille.du.N
o.est.le.N
comment.Vi | comment.Vo | comment.V
quest.ce.que.LocP
quest.ce.que.LocA
quel.est.le.vocabulaire
quels.sont.les.gestes
aide
{ritrer, rectifier, corriger, confirmer}
{dessiner, dplacer, effacer, dupliquer}
{annuler, quitter}
{carr, cercle, triangle, trait}
{ droite, gauche, en haut, en bas, au centre}
{ici, l, vers l, par ici, par l}

Ce langage est assez sommaire car il na dintrt que pour le dbut de


lapprentissage de lutilisateur qui a surtout besoin de savoir ce quil peut faire,
comment le faire et comment lexprimer. Il y a des demandes de prcison comme
quest.ce.que.LocP qui lui permettent de avoir ce que signifie exactement
droite, gauche, etc.
Le langage de rplique
Dans les cas dambigut de commande, dimprcision, derreur,
dincomprhension, etc. la machine est amene poser des questions
lutilisateur. De la part de la machine le langage est fig mais les rponses de
lutilisateur peuvent tre relativement varies (mais on peut fermer le nombre de
rponses en choisissant judicieusement la forme des questions). Elles sont rgies
par une grammaire dite des rpliques, sensible au contexte de la question. Ces
contextes sont :
Clarification, confirmation
Rparation des erreurs,
Demande de prcision,
Incomprhension.
Carification, confirmation
Grammaire des rpliques Gr
Qc1 : Quel objet parmi ceux-ci ? + clignotement R -> GN | {celui-l, celui-ci}
Qc2 : Lobjet prcdent ?
R -> {oui, non}
Qc3 : Est-ce daccord ?
R -> {oui, non}
etc.
Rparation des erreurs
Qe1 : Je ne peux pas excuter votre commande
Qe2 : Dsol, je ne peux rien faire
Qe3 : Dsol, je ne sais pas rpondre la question
Qe4 : Voulez-vous annuler ?
R -> {oui, non}
etc.
Demande de prcision
Qo : Quel objet ?
Qc : De quelle couleur ?
Qt : De quelle taille ?
Ql : O ?
etc.

R -> GN | {celui-l, celui-ci}


R -> AdjC
R -> AdjT
R -> LocP | LocA

Incomprhension
Qi1 : Pouvez-vous rpter ?
R -> Enonc_com| Dem_aide
Qi2 : Pouvez-vous reformuler votre demande ? R -> Dem_aide
Qi3 : Pouvez-vous reformuler votre commande ?
R -> Dem_com
etc.

Le modle de tches

On ne peut pas dire que dans les tches de conception comme le dessin, il y ait un
vritable modle de tche. En effet le dessin ne peut tre une activit planifie
(sauf sil sagit de reproduire un dessin et non de le crer), il favorise au contraire
une activit de type opportuniste. Le modle de tches peut donc se ramener un
ensemble de scripts dans lequel il faut laisser lutilisateur un contrle le plus
souple possible. On a donc dfini dans ICPdraw un modle hirarchis seulement
deux niveaux : les scripts et les scnarios.
La syntaxe des scripts et des scnarios
Convenons d'une syntaxe simple pour dcrire un langage de scripts (cela nous
vitera d'utiliser une criture plus lourde lie un langage de programmation).
Un script (et un scnario) a la structure suivante :
Type : Nom(ARGUMENTS)
prcondition
corps du script
effet
La prcondition est une formule qui doit tre vrifie pour pouvoir activer le corps
du script. Le corps du script contient des instructions ou des arguments qui
recevront une valeur au moment de l'activation du script. L'effet est un appel un
autre script qui sera lui-mme excut si sa prcondition le permet. Les
conventions de notations sont les suivantes :
Les actions (ou fonctions) sont directement associes aux langages
d'interactions, par exemple Vo signifie un verbe de la catgorie Vo.
Les oprateurs :
% indique un prototype ou un nom de classe
$ est une valeur dune variable
= est l'affectation d'une valeur au membre gauche
| est le connecteur ou non exclusif
. est le connecteur et
>> est un lien entre informations multimodales
Les scripts lmentaires
Les actions de base du systme sont en nombre rduit (pour simplifier l'expos).
Elles portent sur les objets lmentaires (carr, cercle, trait, triangle). Ces actions
et ces objets sont dcrits l'aide de scripts avec les conventions dcrites cidessus :
La base des scripts lmentaires est :
Action : Slectionner(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
Activation = A1(obj).R | A1(zt).traj.R
OBJ = OBJ | $obj | $traj
TAILLE = TAILLE
COUL = COUL
VISIBLE = VISIBLE
SELECT = 1
Action : D-Slectionner(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
Activation = A1(zt).R
OBJ = Tout(obj)

TAILLE = TAILLE
COUL = COUL
VISIBLE = VISIBLE
SELECT = 0
Action : Dessiner(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
Activation = Vo(%dessiner) | A2(zt).traj(X).R | A1(palette).R.A1(zt).R
OBJ = OBJ | $N | $PP | $PD | $X | $palette
LIEU = LIEU | $LocP | $LocA=A1($zt) | $dfaut
TAILLE = TAILLE | $AdjT | $traj | $dfaut
COUL = COUL | $AdjC | $palette | $dfaut
VISIBLE =1
SELECT = 1
Action : Effacer (OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
Activation
=
Vo(%efface)
|
A2(obj).traj(Z).R
A1(palette_kill).R.Slectionner(OBJ)
OBJ = OBJ | $N | $PP | $PD | $obj
LIEU = LIEU
TAILLE = TAILLE
COUL = COUL
VISIBLE = 0
SELECT = 1
Action : Agrandir(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
Activation = A1(poigne(OBJ)).traj.R
OBJ = OBJ
LIEU = LIEU
TAILLE = TAILLE | $AdjT | $traj
COUL = COUL
VISIBLE = 1
SELECT = 1
Action : Dplacer(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
Activation = Vo(%dplace) | A1(obj).traj.R
OBJ = $N | $PP | $PD | $obj
LIEU = $LocP | $fin(traj) | $LocA=A1($Lieu)
TAILLE = TAILLE
COUL = COUL
VISIBLE = 1
SELECT =1
Action : Dupliquer(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
Activation = Vo(%duplique) | A2(obj).traj.R
OBJ = $N | $PP | $PD | $obj
LIEU = $LocP | $fin(traj) | $LocA=A1($Lieu)
TAILLE = TAILLE
COUL = COUL
VISIBLE = 1
SELECT =1
Action : Quitter
Activation = Vi(%quitte) | A1(menu_quit)

La base des objets et des atrributs est :


Triangle : Sorte_de OBJ
Nom = triangle
Position = LIEU
Taille : TAILLE
Couleur : COUL
Visible = VISIBLE
Slection = SELECT
Carr : Sorte_de OBJ
Nom = carr
Position = LIEU
Taille : TAILLE

A2(obj).traj().R

Couleur : COUL
Visible = VISIBLE
Slection = SELECT
Cercle : Sorte_de OBJ
Nom = cercle
Position = LIEU
Taille = TAILLE
Couleur = COUL
Visible = VISIBLE
Slection = SELECT
Trait : Sorte_de OBJ
Nom = trait
Position = LIEU
Taille = TAILLE
Couleur = COUL
Visible = VISIBLE
Slection = SELECT
Position : Sorte_de ATTRIBUT
LIEU = (x, y)
Taille : Sorte_de ATTRIBUT
TAILLE = {grand, petit}
Couleur : Sorte_de ATTRIBUT
COUL = {rouge, jaune, vert, bleu, blanc, noir}
Visible : Sorte_de ATTRIBUT
VISIBLE = {0, 1}
Slection : Sorte_de ATTRIBUT
SELECT = {0, 1}

Les lments dictiques et anaphoriques sont dfinis par :


le :

Anaphore >> OBJ(SELECT=1)


Cataphore >> A1(Obj).R | A1(Lieu).Traj.R

les :

Anaphore >> {OBJ(SELECT=1)}


Cataphore >> A1(Lieu).Traj.R

Dictique >> A1(Obj).R | A1(Lieu).Traj.R

ici, l :

Dictique >> A1(Lieuj).R | A1(Lieu).Traj.R

vers l, par ici, par l :

Dictique >> A1(Lieu).Traj.R

ce :

Dictique >> (GN($N) | GN($AdjT) | GN($AdjC)).(A1(Obj).R | A1(Lieu).Traj.R)

ces :

Dictique >> (GN($N) | GN($AdjT) | GN($AdjC)).A1(Lieu).Traj.R

le, un :

Dt >> GN($N) | OBJ($AdjT) | OBJ($AdjC) | A1(Obj).R | A1(Lieu).Traj.R

les,{nbre} : Dt >> GN($N) | OBJ($AdjT) | OBJ($AdjC) | A1(Lieu).Traj.R


droite, gauche, en haut, en bas, au centre : Dt >> Zone_travail

Les scnarios
Les scnarios sont des scripts de niveau suprieur qui permettent dencapsuler les
actions de base. Ils obissent aux mmes rgles de syntaxe (la variable HIST
dfinit un pointeur sur lhistorique de la tche).
Base de scnarios

Action : Annuler(HIST)
Activation = Vi(%annuler) | A1(menu_undo)
HIST = Dessiner(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT) | Agrandir(OBJ, LIEU,
TAILLE, COUL, VISIBLE, SELECT) | Dplacer(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
| Dupliquer(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT) | Slectionner(OBJ, LIEU, TAILLE,
COUL, VISIBLE, SELECT) | D-Slectionner(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT) |
Effacer (OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
Action : Commande-Action(HIST)
Activation = Com
HIST = Dessiner(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT) | Agrandir(OBJ, LIEU,
TAILLE, COUL, VISIBLE, SELECT) | Dplacer(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
| Dupliquer(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT) | Slectionner(OBJ, LIEU, TAILLE,
COUL, VISIBLE, SELECT) | D-Slectionner(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT) |
Effacer (OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT) | Annuler | Quitter
Action : Demande-aide(HIST)
Activation = Dem_aide
HIST = Aide_obj(N, LocP, LocA) | Aide_op(V, Vi, Vo) | Aide_l | Aide_aide
Action : Introduction
Bienvenue sur ICPdraw
Action : Aide_obj

(non dcrit)

Il est trs facile dcrire les scripts daide (Aide_obj, Aide_op, Aide_l, Aide_aide),
nous ne les dtaillons pas ici.

Le contrleur de dialogue dICPdraw


Le contrleur de dialogue est normalement charg (voir le chapitre 2) :
de lorganisation de la communication (gestion des tours de parole),
du contrle dynamique de linteraction,
du choix des stratgies de dialogue (ractivit, ngociation, cooprativit,
etc.)
de la rparation des erreurs de communication,
de laide lapprentissage ou de lapprentissage lui-mme,
des aides dans la tche et de la conduite des activits.
Nous prsentons ci-aprs deux variantes de contrle du dialogue, l'une sans
gestion de stratgies, sans apprentissage et sans demande daide, l'autre avec
ces trois aptitudes.
Un premier modle
Ce premier modle est stratgie entirement ractive. Il est implment l'aide
d'un automate dtats finis (fig. 1). Un tel automate est quivalent une grammaire
contexte libre, ce qui classe le modle dans la catgorie des modles structurels
(voir chap. 2). Remarquons quil est dailleurs plus proche dun modle
dinteraction (de type manipulation directe multimodale) que dun vritable modle
de dialogue.

Action
si-err
Raction

Question

Ritration

Rectif.

si-err

si-err

abandon

Continu.
Fig. 1 : Le modle dinteraction

Il fonctionne simplement de la manire suivante :


si laction est correctement interprte et excutable alors le systme passe
dans ltat raction (il excute la commande de lutilisateur) et attend une
nouvelle commande daction, de ritration ou de rectification,
si laction conduit une situation incohrente, le systme pose une question
et se met en attente dune rponse de rectification. Deux erreurs
conscutives ne sont pas tolres, le systme passe dans ltat
continuation cest--dire en attente dune nouvelle action. Les incidences du
dialogue sont volontairement vites, elles sont traites comme des
abandons implicites (avec retour une nouvelle action).
Ce qui conduit lalgorithme suivant :
Dialogue
Introduction
HIST=
Continuation : Attente(Acte)
Interprtation(Acte, Com)
TantQue Com Quitter Faire
si erreur alors
Analyse (erreur, Question(Q))
Attente(Acte)
Interprtation(Acte, Com)
si erreur alors aller_ Continuation
finsi
finsi
Commande-action(HIST)
Continuation : Attente(Acte)
Interprtation(Acte, Com)
finTantQua
FinDialogue
Interprtation(X, Y) : procdure qui slectionne le script Y pour un acte de dialogue Acte
Analyse(erreur, X) : en fonction du type derreur la machine fait laction X
Question(Q) : la machine pose la question Q
Raction : excution de lacte et attente dun nouvel acte
Continuation : attente dun nouvel acte

10

Dans ce modle, la commande est excute chaque fois que cest possible, mme
si la commande est incompltement spcifie (et donc le rsultat est
immdiatement perceptible), sinon le systme reste sans raction.
Un deuxime modle
Dans ce deuxime modle, les stratgies sont plus varies et les aides mieux
adaptes. Ce modle intgre aussi lapprentissage dune squence dactions
comme une tche. Pour tenir compte de l'apprentissage il faut ajouter laction
suivante dans la base des actions lmentaires :
Action : Apprentissage(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
Activation = erreur

Cette action permet de dclencher une procdure dapprentissage (certes


complexe ! mais non traite dans ce chapitre) pour construire un nouvel objet
OBJET (cela suppose que ce nouvel OBJET est rajout dans la base).
L'algorithme de ce deuxime modle de dialogue est maintenant :
Notations :

U = usager {aid=1, non-aid=0}


= profondeur du dialogue = nombre de tours de parole {nombre entier}
= type de stratgie utilise {ractive, cooprative}
seuil = seuil arbitraire partir duquel on change de stratgie

Dbut

Fin
Acq(A)

fin

Introduction
Usage(, U)
seuil = 20
HIST =
= 0
Acq(A)
si erreur alors Apprentissage(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
finsi
Tantque A Quitter
cas A = Commande_action(HIST)
cas A = Demande_aide(HIST) ; U = 1
cas A = ; Parole(Pouvez-vous reformuler, je nai pas compris)
si > seuil alors = ract
finSi
Acq(A)
si erreur alors Apprentissage(OBJ, LIEU, TAILLE, COUL, VISIBLE, SELECT)
FinTantque
Clture

Attente(Acte)
Interprtation(Acte, A)
si U alors Explication(A)

finsi

si = coop

finsi

alors Qc(A)
Attente(Acte)
= + 1
Interprtation(Acte,B)
si B = %non alors erreur
finsi

11

Les scnarios ajouter sont :


Introduction
Window_texte( Bienvenue sur ICPdraw )
Parole( Bienvenue sur ICPdraw )
Fin
Usage(, U)
Parole( Connaissez-vous le systme ? )
Attente(Acte)
Interprtation(Acte, A)
si A = %oui
alors = ract.
sinon = coop ; Icone(visage) ; Parole( Je vais vous dcrire brivement le systme, mais
vous pouvez minterrompre en cliquant sur mon icne. ICPdraw est un logiciel de dessin multimodal qui
interprte des commandes verbales et gestuelles. Il fonctionne aussi comme un diteur graphique, laide
des menus et de la palette. Les actions verbales sont nonces limpratif. Par exemple, dessine un cercle
vert en haut. Les actions gestuelles sont des gestes esquisss la souris, elles se font en appuyant sur le
bouton du milieu )
finsi
Parole( Voulez-vous une aide permanente ? )
Attente(Acte)
Interprtation(Acte,A)
si A = %oui
alors U = 1
sinon U =0
Parole( Maintenant vous pouvez travailler )
Fin
Clture

fin

Parole(Voulez-vous sauvegarder le dessin ?)


Attente(Acte)
Interprtation(Acte, A)
si A = %oui alors Sauvegarde
finsi
Parole (au revoir)

Commentaires
La description de ces deux modles nest videmment pas suffisamment dtaille
pour passer directement la programmation. Il y aurait lieu de dcrire plus
prcisment les procdures dexcution des scripts et des scnarios. Mais l
ntait pas le but de ce chapitre.
On remarquera dans le deuxime modle que :
a) la stratgie mise en uvre est dynamique. Elle dpend du choix volontaire de
lutilisateur et de la profondeur du dialogue (vers la fin du dialogue on revient
systmatiquement une stratgie ractive),
b) loffre daide est aussi dynamique, comme pour la stratgie, elle est librement
choisie par lusager ou impose sil fait trop derreurs.
c) la procdure dapprentissage est active par les erreurs de la machine : on
suppose que ces erreurs sont engendres par le fait quelle ne sait pas faire ce
quon lui demande.
Evidemment ces trois points ne sont pas des lois pour le dialogue, ce ne sont que
des exemples de ce quil est possible de faire.

12

Conclusion
ICPdraw est une application de dmonstration qui a ralise sur une station de
travail Silicon Graphics Indy avec un systme de reconnaissance vocale en mots
enchans, ECHO, mis au point au laboratoire CLIPS-IMAG (et prcdemment
lICP dans le cadre du projet Multiworks ESPRIT II n2105). Le vocabulaire utilis
est dune cinquantaine de mots, la syntaxe est limite comme indiqu dans ce
chapitre.
Le dialogue est en temps rel. Cette plate-forme permet de tester et de valider (a)
les concepts du dialogue multimodal ainsi que ceux (b) dune architecture rpartie.
Elle a permis de faire merger le problme de la dsignation multimodale
notamment dans le cas ou les objets sont anims (problme de la rfrence
perdue lorsque lon prononce la commande dtruis le cercle du bas pendant que
lon dplace ce cercle avec la souris) et dinitialiser les tudes sur lusage des
modalits. En effet on ne matrise pas encore les situations dans lesquelles les
usagers utiliseront prfrentiellement tel mode ou tel autre et sils auront tendance
se contenter dhabitudes appauvrissantes vis--vis de loffre multimodale.
Lusage du multimodal produit des effets de bord car les commandes peuvent
devenir ambigus en se recouvrant dans le temps : une certaine
dsynchronisation du geste et de la parole, des phnomnes de rptition, etc.
augmentent avec la charge cognitive ou la charge de travail. Lutilisateur tend
spcialiser les modes (la parole pour des commandes rptitives ou qui ne
ncessitent pas la mobilisation du regard, ou la prcision du geste cest--dire
exigeant une planification motrice ou perceptive importantes) et le geste pour des
actions immdiates et lmentaires forte ractivit.
Aprs une tude restreinte, il apparat que cette interface amliore lefficacit
globale de lusager en lui permettant dexcuter plusieurs commandes en mme
temps : cest le paralllisme des commandes qui lui permet notamment danticiper
et de prparer les objets du dessin lavance. Ainsi on saperoit que ses
stratgies sont optimises en fonction de ces nouvelles possibilits : par exemple il
peut afficher ple-mle une srie dobjets par commande vocale (dessine un
cercle noir, un rouge, un vert, etc.) puis dans un second temps il peut les
positionner prcisment la souris (ventuellement en continuant en afficher de
nouveaux par la voix).
Lutilisateur natteint pas une telle expertise sans entranement. Au bout dun
temps dusage, il simplifie ses commandes en les rendant trs brves et souvent
trs elliptiques. Cest pourquoi nous avons choisi ce vocabulaire et cette syntaxe
qui ont pu paratre trs simples.

13

S-ar putea să vă placă și