Dernière mise à jour :
Pour plus de détails sur les fichiers scripts, consulter la bibliographie sur le site Internet PERCEVAL.
Cette documentation s'applique à Perceval v.3.0.3.
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.
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 cur 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 :
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.
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] apporte des informations générales. Ces informations sont optionnelles mais il est fortement conseillé de les remplir pour un meilleur suivi.
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.
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).
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...).
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>
Ci-dessous la liste des clés autorisées. Pour plus de détails, suivre ce lien.
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>
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>
Ci-dessous la liste des Commandes autorisées. Pour plus de détails, suivre ce lien.
Listes des commandes possibles dans la section des commandes et/ou intégrables dans les pages HTML.
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.
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%>