Les fichiers "scripts"

Home

Dernière mise à jour :

Pour plus de détails sur les fichiers scripts, consulter la bibliographie sur le site Internet PERCEVAL.

Version

Cette documentation s'applique à Perceval v.3.0.3.

Définitions

Un script est un fichier texte qui décrit les caractéristiques et le déroulement d'une expérience.

Nous appelons trial une épreuve qui consiste :

En général, une expérience est constituée d'une série de trials.

PERCEVAL est conçu pour ne pouvoir recueillir qu'une seule réponse par trial.
LANCELOT est conçu pour pouvoir recueillir plusieurs réponses par trial.

Les principes du pilotage par script

Le déroulement d'un test est décrit par un fichier pilote (" script "), une technique déjà utilisée dans les recommandations du projet européen SAM (Speech Assessment Methodology) pour le système S.O.A.P. (cf. HOWARD-JONES, P., SAM Partnership, (1991), 'SOAP' - A Speech Output Assessment Package for Controlled Multilingual Evaluation of Synthetic Speech, Proceedings of Eurospeech 91, vol. 1, p 281-283.).

Dans ce type de méthodes, le cœur du logiciel d'expérimentation se comporte comme un analyseur lexico-syntaxique qui lit et interprète le fichier " script " sélectionné (cf. CAVÉ, C. , DI CRISTO, P., GHIO, A. TESTON, B., (1995) , Une station de tests automatisée pour l'évaluation de la qualité et l'intelligibilité de la parole, Travaux de l'Institut de Phonétique d'Aix, 16, p 123-139.). Il adapte alors le déroulement du test en fonction des commandes et autres informations lues dans le " script ". Ce type de fonctionnement permet une très grande souplesse dans la conception de test.

Les scripts peuvent être directement écrits à la main à condition d'utiliser une syntaxe correcte. En complément, un utilisateur novice peut suivre les instructions données par une application assistant la conception, ceci dans un environnement facile à utiliser à base de menu déroulant. Pour chaque sujet soumis au test, un fichier de réponses contenant les informations nécessaires à l'exploitation des résultats est généré. Ces fichiers sont écrits sous forme de texte tabulé et peuvent être directement lus dans un tableur (ex : Excel) ou dans des applications de traitement statistique. Un script est un fichier texte composé de différentes sections :

Script example

Figure 1 : exemple de script PERCEVAL

Une section correspond à un type d'information. Le nom de la section est écrit de la façon suivante: [nom_section]. Chaque section contient un ensemble de lignes contenant une clé ("CLE=") et un contenu de la clé (à droite du signe '='). Ce contenu peut être fragmenté en différents champs d'information distingués par des séparateurs.

La section [INFORMATION] apporte des informations générales.

La section [TRIAL_DATA] contient un ensemble de données.

La section [TRIAL_EVENTS] décrit le déroulement du test.
Dans l'exemple de la Figure 1, la commande de la ligne X20 permet d'afficher à l'écran le contenu de la 1ère colonne (#1) des TRIAL_DATA. Par exemple, pour le trial n°1 sera affiché le texte " 1) main 2) bain ". La commande de la ligne X30 permet de faire écouter le fichier audio dont le nom est fourni dans la 2ième colonne (#2) des TRIAL_DATA. Dans notre exemple, le fichier " bain.wav " sera produit. La commande de la ligne X40 déclanche l'attente de la réponse du sujet. Dans notre exemple, un délai de réponse de 2000 ms sera accordé au sujet. Si ce temps est dépassé, le résultat sera considéré comme une non réponse.

La section [SETTINGS_GROUP1] définit la configuration du test.
Plusieurs configurations sont possibles dans un même script, chacune correspondant à un groupe de sujets. Au début du test, des instructions au sujet sont affichées à l'écran. Ces instructions sont contenues dans un fichier texte dont le nom est, par exemple, " Pairemin.txt " (cf. *1). Une phase d'entraînement peut être exécutée. Les trials utilisées sont définis dans *2. Durant la phase de test proprement dite, l'ordre des trials peut être fixé à l'avance ou proposé dans un ordre aléatoire (cf. *3). Le format d'affichage (police de caractère, taille, couleur, etc.) est paramétré en *4. Les touches de réponses sont listées en *5: touches du clavier standard (CK_…), du pavé numérique (VK_…) ou du boîtier à boutons (BK_…). Selon la nature du test, il est possible de coder directement la réponse comme correcte ou incorrecte (cf. *6). Dans notre exemple, cette information est contenue dans la 3ième colonne (#3) des TRIAL_DATA. La pause (cf. *7) définit le temps d'inactivité entre deux trials. Les résultats seront écrits dans un fichier réponse dans un format décrit en *8. La Figure 2 fournit un exemple obtenu avec le script ci-dessus.

Responses example

Figure 2 : exemple de fichier de réponses au test des paires minimales

A: $SUBJECT spécifie le code du sujet.
B: $TRIAL fournit l'index du trial.
C: #1 est le contenu de la 1ière colonne des TRIAL_DATA. Dans l'exemple, il s'agit du texte affiché à l'écran qui correspond au choix forcé.
D: #2 est le contenu de la 2ième colonne des TRIAL_DATA. Dans l'exemple, il s'agit du fichier audio produit.
E: #3 est le contenu de la 3ième colonne des TRIAL_DATA. Dans l'exemple, il s'agit de la réponse correcte à donner.
F:$RESPONSE est la réponse donnée par le sujet.
G:$RESP_STATUS spécifie si la réponse du sujet est correcte ou non ("ok" si correct, "err" si incorrect).
H: #4 est le contenu de la 4ième colonne des TRIAL_DATA. Dans l'exemple, il s'agit du trait distinctif testé.
I: #5 est le contenu de la 5ième colonne des TRIAL_DATA. Dans l'exemple, il s'agit du contexte vocalique testé.
J: $RTIME est le temps de réponse.

La section INFORMATION

La section [INFORMATION] apporte des informations générales. Ces informations sont optionnelles mais il est fortement conseillé de les remplir pour un meilleur suivi.

Clés autorisées

La section TRIAL_DATA

La section [TRIAL_DATA] est un tableau contenant un ensemble de données.

Ce tableau est une matrice de K colonnes x N lignes.

Chaque colonne contient un type d'information.

Chaque ligne correspond à un trial. Les différents éléments d'une ligne doivent être encadrés des séparateurs <...> (ex: <data1><data2>). Pour faciliter le formatage des données entre séparateurs, il est possible d'utiliser l'assistant à la génération de script qui permet d'importer/copier des fichiers tabulés et de sauvegarder le résultat en texte où chaque donnée est formattée avec les séparateurs.

Clés autorisées

Appel aux TRIAL_DATA

Le déroulement et les réglages de l'expérience nécessitera l'appel aux données TRIAL_DATA. Pour cela, il suffit de mentionner #1 pour faire appel aux données de la colonne n°1, #2 pour faire appel aux données de la colonne n°2 ou #AUDIO si "AUDIO" est un nom de champs apparaissant dans la clé FIELDS=(voir ci-dessus).

La section SETTINGS_GROUPn

Il est possible d'avoir plusieurs sections SETTINGS_GROUP par script, SETTINGS_GROUP1 correspondant au groupe 1, SETTINGS_GROUP2 correspondant au groupe 2...

Chaque clé de la section définit des caractéristiques générales (ex: ordre des trials, format des réponses, format d'affichage...).

SETTINGS_GROUPn vs SETTINGS_COMMON

Il est possible:

[SETTINGS_COMMON]
FINAL_MESSAGE_FORMAT=<MessageFinal.htm>
TRAINING_ORDER=<RANDOM 1-10>
RESPONSE_FORMAT=<$DATE><$SUBJECT>...
...

[SETTINGS_GROUP1]
TITLE=<Evaluation avec feedback>
TRIAL_COMMANDS=<TRIAL_EVENTS1>
INSTRUCTION_FORMAT=<InstructionsAvecFeedback.txt>
TRAINING_ORDER=<RANDOM 11-60>
SOUND_FEEDBACK=<POSITIVE positive1.wav positive2.wav><NEGATIVE negative1.wav negative2.wav>
DISPLAY_FEEDBACK=<POSITIVE positive1.bmp positive2.bmp><NEGATIVE negative.bmp)

[SETTINGS_GROUP2]
TITLE=<Evaluation sans feedback>
TRIAL_COMMANDS=<TRIAL_EVENTS2>
INSTRUCTION_FORMAT=<InstructionsSansFeedback.txt>
TRAINING_ORDER=<RANDOM 61-100>

Clés autorisées

Ci-dessous la liste des clés autorisées. Pour plus de détails, suivre ce lien.

LANCELOT et PERCEVAL

PERCEVAL uniquement

LANCELOT uniquement

La section des commandes (ex: TRIAL_EVENTS, TRIAL_TEMPLATE)

Syntaxe générales des commandes

Une clé de commande est formée d'un index de commande, d'une commande et d'éventuels arguments-paramètres. Ces clés ont toutes la synatxe suivante:

Xn=COMMANDE <(CODE_PARAMETRE1) VALEUR_PARAMETRE1><(CODE_PARAMETRE2) VALEUR_PARAMETRE2>

Exemple :

X10=PLAY_SOUND <#wave>
X20=DISPLAY_TEXT <#texte>

Les sections de commandes

Par défaut, la section des commandes est unique:

Toutefois, si la clé TRIAL_COMMANDS est mentionnée dans la section SETTINGS, ce sera la valeur de cette clé qui explicitera la section des commandes à utiliser.

Exemple :

[SETTINGS_GROUP1]
TRIAL_COMMANDS=<APPRENTISSAGE_AUDITIF>

[SETTINGS_GROUP2]
TRIAL_COMMANDS=<APPRENTISSAGE_VISUEL>

[APPRENTISSAGE_AUDITIF]
X10=PLAY_SOUND <#wave>

[APPRENTISSAGE_VISUEL]
X10=DISPLAY_TEXT <#texte>

Commandes autorisées

Ci-dessous la liste des Commandes autorisées. Pour plus de détails, suivre ce lien.

LANCELOT et PERCEVAL

PERCEVAL

LANCELOT

Listes des commandes possibles dans la section des commandes et/ou intégrables dans les pages HTML.

Supplément LANCELOT

Listes complémentaires des commandes interactives uniquement intégrables dans les pages HTML et interdites dans la section des commandes.

Plus de détailss sur les marques cachées dans les pages HTML.

Remarques générales

Les séparateurs

Dans les scripts Perceval ou Lancelot, une ligne est composée d'une clé suivie du signe '=' et de la valeur de la clé.

CLE=valeur de la clé

Les différents éléments (paramètres) pouvant composés la valeur d'une clé doivent être encadrés des séparateurs <...>.

CLE=<param1><param2>

Exemples :

TRIAL1=<data1><data2>
X10=PLAY_SOUND <file.wav><TIME_BEGIN 0><TIME_END 1000>
RESPONSE_FORMAT=<$SUBJECT><$TRIAL><#2>

Si, pour une raison quelconque, le contenu d'un paramètre devait être composé des signes '<' ou '>', il est nécessaire de renforcer les séparateurs de paramètres par les signes '<%separator%' à la place de '<' et '%separator%>' à la place de '>'.

Exemples :

TRIAL1=<%separator% 10>2 %separator%><vrai>
RSTATUS_MARK_FORMAT=<%separator% OK <B><FONT COLOR="#008800">Correct</FONT></B> %separator%>