Documente Academic
Documente Profesional
Documente Cultură
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).
argi
->
->
->
->
->
->
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
:
:
:
:
:
:
Grammaire Gg :
Action -> A1(Obj).R | A1(Lieu).Traj.R (slection d objet(s))
Action
Action
Action
Action
->
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
->
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)
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 :
ici, l :
ce :
ces :
le, un :
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.
Action
si-err
Raction
Question
Ritration
Rectif.
si-err
si-err
abandon
Continu.
Fig. 1 : Le modle dinteraction
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
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
fin
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