Group: Forum Members
Posts: 19,
Visits: 64
|
Hi,
I am trying to code a script where participants ear a sequence of five words and then have to announce to which category (among 3) the fifth word belongs to. The correct response is directly recorded via the speech recognition engine. Each word belongs to one of 3 category (animal, vehicule or color), and each category has 20 exemplars (20 sounds). The first 4 words could be selected randomly among any of the 3 category while the last should be selected only in the "correct" category (i.e. the one corresponding to the trial).
When the participant has given an answer, he/she begin a new trial, and so on. For now I tried to code it like this :
<trial couleurs> / inputdevice = speech /stimulustimes = [100= replace (couleurs, vehicules, animal); 200= replace (couleurs, vehicules, animal); 300= replace (couleurs, vehicules, animal); 400= replace (couleurs, vehicules, animal); 500= couleurs] /posttrialpause = 250 /validresponse = ("couleurs", "animal", "vehicules") /correctresponse = ("couleurs") / trialduration = values.interTrialIntervalTest </trial>
<trial animal> /stimulustimes = [100= replace (couleurs, vehicules, animal); 200= replace (couleurs, vehicules, animal); 300= replace (couleurs, vehicules, animal); 400= replace (couleurs, vehicules, animal); 500= animal] /posttrialpause = 250 /validresponse = ("couleurs", "animal", "vehicules") /correctresponse = ("animal") / trialduration = values.interTrialIntervalTest / inputdevice = speech </trial>
<trial vehicules> /stimulustimes = [100= replace (couleurs, vehicules, animal); 200= replace (couleurs, vehicules, animal); 300= replace (couleurs, vehicules, animal); 400= replace (couleurs, vehicules, animal); 500= vehicules] /posttrialpause = 250 /validresponse = ("couleurs", "animal", "vehicules") /correctresponse = ("transport") / trialduration = values.interTrialIntervalTest / inputdevice = speech </trial>
<sound animal> / items = ("A_baleine.wav", "A_chat.wav", "A_cheval.wav", "A_chien.wav", "A_crabe.wav", "A_dauphin.wav", "A_fourmis.wav", "A_gorille.wav", "A_kangourou.wav", "A_koala.wav", "A_lion.wav", "A_ours.wav", "A_papillon.wav", "A_pinguin.wav", "A_requin.wav", "A_serpent.wav", "A_souris.wav", "A_tigre.wav", "A_tortue.wav", "A_vache.wav" ) / playthrough = true </sound>
<sound couleurs> / items = ("C_beige.wav", "C_blanc.wav", "C_bleu.wav", "C_bordeaux.wav", "C_brun.wav", "C_fushia.wav", "C_grenat.wav", "C_gris.wav", "C_jaune.wav", "C_marron.wav", "C_mauve.wav", "C_noir.wav", "C_ocre.wav", "C_orange.wav", "C_pourpre.wav", "C_rose.wav", "C_rouge.wav", "C_turquoise.wav", "C_vert.wav", "C_violet.wav") / playthrough = true </sound>
<sound vehicules> / items = ("T_avion.wav", "T_bateau.wav", "T_bicyclette.wav", "T_bus.wav", "T_camion.wav", "T_camionnette.wav", "T_canoe.wav", "T_car.wav", "T_fusee.wav", "T_jet.wav", "T_metro.wav", "T_moto.wav", "T_navire.wav", "T_paquebot.wav", "T_scooter.wav", "T_taxi.wav", "T_tramway.wav", "T_velo.wav", "T_voilier.wav", "T_voiture.wav") / playthrough = true </sound>
<block categoryDT> / preinstructions = (pg5) /trials=[1-26=random(vehicules, couleurs, animal)] </block>
But it doesn't work : instead of earring 5 sounds, I only ear 3 words, played at the same time. I tried various combination of stimulus presentations with the /stimulustimes and /stimulusframes commands, but the script never plays 5 words in a row, only a maximum of 3. If anyone has a solution for this problem, he/she will have my eternal gratitude.
|
Group: Administrators
Posts: 13K,
Visits: 104K
|
Ignore my previous (now deleted) reply. I overlooked the question at the bottom of your post. #1: It is usually a *bad* idea to use selectionmodes in /stimulustimes. Those should generally be avoided. #2: Inquisit will select *no more than one* item per stimulus element per trial. For example, if the stimulus "coleurs"
/stimulustimes = [100= replace (couleurs, vehicules, animal); 200= replace (couleurs, vehicules, animal); ...]
is randomly chosen at both 100ms and 200ms you are going to hear the same item twice.
I suppose this is what you mean when stating "the script never plays 5 words in a row, only a maximum of 3". That is the expected and intended behavior.
What you need to do is set up multiple stimulus elements per category -- coleurs1 to coleurs5, vehicules1 to vehicules5, etc. -- and have them sample from a single selection pool per category:
<trial couleurs> ... /stimulustimes = [100= replace (couleurs1, vehicules1, animal1); 200= replace (couleurs2, vehicules2, animal2); 300= replace (couleurs3, vehicules3, animal3); 400= replace (couleurs4, vehicules4, animal4); 500= couleurs5] ... </trial>
<sound couleurs1> / items = ("C_beige.wav", "C_blanc.wav", "C_bleu.wav", "C_bordeaux.wav", "C_brun.wav", "C_fushia.wav", "C_grenat.wav", "C_gris.wav", "C_jaune.wav", "C_marron.wav", "C_mauve.wav", "C_noir.wav", "C_ocre.wav", "C_orange.wav", "C_pourpre.wav", "C_rose.wav", "C_rouge.wav", "C_turquoise.wav", "C_vert.wav", "C_violet.wav") / playthrough = true / select = list.couleursitems.nextindex </sound> ... <sound couleurs5> / items = ("C_beige.wav", "C_blanc.wav", "C_bleu.wav", "C_bordeaux.wav", "C_brun.wav", "C_fushia.wav", "C_grenat.wav", "C_gris.wav", "C_jaune.wav", "C_marron.wav", "C_mauve.wav", "C_noir.wav", "C_ocre.wav", "C_orange.wav", "C_pourpre.wav", "C_rose.wav", "C_rouge.wav", "C_turquoise.wav", "C_vert.wav", "C_violet.wav") / playthrough = true / select = list.couleursitems.nextindex </sound>
<list couleursitems> / poolsize = 20 / selectionrate = always </list>
You must also pay attention as to whether / when to reset() the list /ontrialend. Otherwise you run the risk of repeating items if the list runs out of unsampled items mid-trial.
|
Group: Forum Members
Posts: 19,
Visits: 64
|
Hi Dave,
Thanks a lot for your answer, it works perfectly now!
|