Lire le très court article "Cognitive Restoration of reversed speech" de Saberi et Perrot (http://www.pallier.org/ressources/tpexp3/Saberi.reversed.speech.Nature_1999.pdf).
Leurs données suggèrent qu'on peut renverser temporellement le signal de parole dans des fenêtres successives de 50 millisecondes de durées sans que l'intelligibilité soit affectée. Ce résultat est important car cette transformation a tendance à détruire des indices que l'on croyait très importants dans l'identification des sons de parole.
Je vous demande de réaliser au moins un stimulus où les échantillons sont inversés temporellement par segments de 50 millisecondes.
Vous pouvez utiliser l'un des fichiers (voire tous) : ph1.wav, ph2.wav, ph3.wav ou ph4.wav disponibles sur http://www.pallier.org/ressources/tpexp3.
Il est possible de réaliser cette opération manuellement dans Praat ("Extract sound selection" dans le menu File de la fénètre d'édition "Edit" et la fonction "Modify/Reverse" associé à un objet son sont vos amis).
Ceux qui sont à l'aise en maths et/ou en programmation peuvent implémenter cet algorithme dans le language de leur choix (python, praat, C, java...) et générer des versions avec des segments de longueurs différentes.
J'attend de vous une courte explication de ce que vous avez fait et la confirmation (?) que la ou les phrase ainsi transformée est bien compréhensible par un sujet naïf (i.e. qui ne l'a pas déja entendue).
Cet exercive ne doit pas prendre plus d'une heure (un peu plus éventuellement pour ceux qui s'aventuront à programmer). Si vous n'y arrivez pas, expliquez moi simplement ce que vous eters arrivé à faire et ce que vous avez essayé de faire sans succès.
On ouvre le son dans l'éditeur de Praat, et grâce à l'indication du temps donnée très précisément par Praat, on sélectionne à la souris une tranche de 50 ms puis on utilise la fonction "inverser" du menu, puis on recommence avec la tranche temporelle suivante, et on fait comme ça jusqu'à la fin du fichier son.
Move cursor to... 0 for i from 0 to 44 curs=Get cursor Select... curs curs+0.05 Reverse selection Move cursor to... curs+0.05 endfor
Read from file... D:\Katrin\MasterSciencesCo\ExpHum\ownstuff\ph1.wav # entrer la longueur des tranches désirée tranche = 0.12 reste = Get finishing time n = floor (reste/tranche) fin = n*tranche Edit editor Sound ph1 for i from 1 to n x = tranche*(i-1) y = tranche*i Select... 'x' 'y' Reverse selection endfor Select... 'fin' 'reste' Reverse selection endeditor Rename... ph1rev Write to WAV file... D:\Katrin\MasterSciencesCo\ExpHum\ownstuff\ph1rev.wav Remove
Idée: appliquer aux indices du vecteur qui contiennent les échantillons la transformation:
(1+x div 100)*100 - x modulo 100 /pre>
Formula... self[(1+col div 2205)*2205-(col mod 2205)]
Généralisation:
procedure reverse_segments file$ newfile$ duration Read from file... /home/pallier/cours/methodo/phoneme.restauration/'file$'.wav Copy... 'newfile$' x = Get sampling frequency length = (duration * x) div 1000 Formula... self[(1+col div length)*length-(col mod length)] Write to WAV file... /home/pallier/cours/methodo/phoneme.restauration/'newfile$'.wav endproc call reverse_segments "ph1" "100ph1" 100 call reverse_segments "ph1" "50ph1" 50 call reverse_segments "ph2" "100ph2" 100 call reverse_segments "ph2" "50ph2" 50