Travaux pratiques d’expérimentation humaine : montage d’une manip de restauration phonémique

Christophe Pallier^{1}

Un stimulus sonore est transmis par un signal acoustique, c’est à dire une onde longitudinale de pression. Celle-ci fait vibrer le tympan, dont le mouvement est transmis à la cochlée par les osselets situés dans l’oreille moyenne. Un son peut être engendré, par exemple, par le déplacement de la membrane d’un haut-parleur ou par les vibrations des cordes vocales ; il peut être recueilli par la membrane d’un micro et transformé en potentiel électrique.

Fig. 1 – Oscillogramme et spectrogramme d’une onde acoustique correspondant à un morceau de phrase

1http ://www.pallier.org

Fig. 2 – Anatomie de l’oreille

1 Premiers pas avec l’éditeur de son Praat

Pour créer ou manipuler des stimuli sonores, on peut utiliser l’éditeur de son Praat développé par Paul Boersma and David Weenink de l’université d’Amsterdam.

Téléchargez Praat sur le site http ://www.praat.org

Exercise 1 Cliquez sur le menu “New/Sound/Create Sound” puis sur le bouton “Ok”. Ecoutez et visualisez le son “sineWithNoise” (fonctions “Play” et “Edit”). Calculez et affichez son spectre (Spectrum/To Spectrum). Quelle est la fréquence du ton pur inclus dans le bruit de fond ?

Exercise 2 Créez des tons purs de frequences 64Hz, 128Hz, 256Hz, 512Hz,... 8192Hz. Connaissez-vous les fréquences audibles par l’humain ?

Exercise 3 Créez un ton pur de 400 Hz et un ton pur de 410 Hz de 1 seconde et donnez leur les noms ’t400’ et ’t410’. Additionnez-les en tapant la formule suivante (dans New/Sound/Create Sound) :

Sound\_t400[col]+Sound\_t410[col]

Visualisez le signal et le spectre.

Fig. 3 – Voies auditives

Exercise 4 Enregistrez un signal de parole si vous avez un micro (Sinon chargez le fichier phrase1.wav). Remarquez que la qualité de la reproduction d’un son digital dépend de la fréquence d’échantillonage et de la résolution (8,16,24 bits).

Utilisez “To Manipulation” pour modifier la hauteur de la voix.

2 La robustesse du signal de parole

L’intelligibilité de la parole est remaquablement robuste aux distortions du signal acoustique.

Par exemple, le signal de parole utilise essentiellement les fréquences comprises entre 100 et 5000 Hz, mais on peut supprimer une large partie de ces fréquences et le signal demeure compréhensible [Fletcher, 1929].

Exercise 5 Filtrer une phrase entre 0 et 1000 Hz, puis entre 1500 et 5000 Hz, en utilisant : Filter/pass-band. Essayez d’autres bande-passantes.

On peut écréter le signal, voire le discrétiser complétement (remplacant les valeurs positives par +1 et les valeurs négatives par -1) [Licklider, 1946, 1950], et il demeure compréhensible.

Exercise 6 Redresser le signal : Modify/formula : 0.2*abs(self[col])

puis le dichotomiser : Modify/formula :

if self[col]>0 then 0.2 else -0.2 endif

Quand on interrompt ou qu’on inverse le signal dans des tranches de plusieurs dizaines de millisecondes, la compréhension peut demeurer très bonne Miller and Licklider [1950], Saberi and Perrot [1999].

Exercise 7 Observer qu’une phrase complétement renversée temporellement est incompréhensible

Exercise 8 Implémentez les manipulations décrites dans Saberi and Perrot [1999] (the pdf is here). (pour le renversement temporel consulter “Help/formulas tutorial”). Confirmez-vous leurs observations ?

Cela suggère que le signal de parole est très redondant, et aussi, sans doute, que le cerveau va au delà des données, c’est à dire interprète un signal incomplet.

L’un des arguments les plus souvent cités en ce sens est le phénomène de restauration phonémique mis en évidence par Warren [1970] . Il s’agit d’une illusion dans laquelle on entend des sons de parole qui ont en fait été enlevés du signal et remplacés par du bruit blanc. Typiquement, les personnes décrivent entendre une phrase intacte avec un bruit superposé.

1. Ouvrez le fichier son modif.wav (Menu “Read from file”) et écoutezle plusieurs fois (Bouton “Play”). Décrivez votre impression.

2. Téléchargez les fichiers modif nonoise.wav et intact.wav et écoutez-les.

3. Visualisez les fichiers sons précédents (Bouton “Edit”). Visualisez le spectrogramme.

4. remplacer par un bruit blanc un autre segment de la phrase intact.wav, d’un des fichiers ph*.wav sur le site http ://www.pallier.org/ressources/tpexp2/, ou d’une autre phrase que vous enregistrerez (Menu New/Record mono

     sound).

Note : Utiliser les fonctions Cut/Copy/Paste de la fenêtre d’édition.

Pour créer un bruit blanc : New/Sound/Create Sound, puis :

     formula=randomGauss(0,0.1)

3 Implications théoriques

Dans les années 1940, avec les premières techniques d’enregistrement et de visualisation de la parole, il semblait qu’il allait devenir possible de définir des caractéristiques acoustiques invariantes associées à chaque son de parole (les phonèmes). Selon ce point de vue, la perception de la parole consisterait à identifier des patterns acoustiques correspondant, successivement, à chaque phonème. Une fois les phonèmes identifiés, les mots compatibles avec ceux-ci seraient recherché dans le lexique mental . Cela correspond à un modèle montant (bottom-up) de la perception de la parole (cf. figure 4A). Les grandes distortions qu’on peut imposer au signal de parole suggèrent que s’il existe des invariants, ceux-ci sont assez abstraits.

Des résultats comme ceux de Warren sont généralement interprétés en supposant que la perception est également influencée par les connaissances a priori du sujet. Dans les modèles dits interactifs McClelland and Elman [1986], McClelland and Rumelhart [1986], cette influence est due à un feed-back des niveaux supérieurs de traitements (lexique, sémantique,...) vers le niveau de décodage en phonèmes (figure 4B).

Fig. 4 – Modèle montant (A) et interactifs (B) de la perception de la parole

A  B

L’expérience originale de Warren (1970) montre-t-elle vraiment qu’il y a une influence des connaissances lexicales sur le décodage des phonèmes ?

Les connaissances des sujets influencent leurs décisions, mais il n’est pas évident qu’elles affectent l’étape précoce de décodage des phonèmes. En d’autres termes, la réponse des sujets pourrait provenir d’un biais de réponse post-perceptuel.

Samuel [1981] a fait une remarque cruciale : les modèles interactifs prédisent une restauration phonémique plus importante dans des mots que dans des pseudomots, et il a utilisé l’approche de la théorie de détection du signal pour séparer les composantes perceptives et décisionnelles.

4 La théorie de détection du signal

La théorie de détection du signal modélise la prise de décision.

Imaginez le scénario suivant : vous devez détecter un son cible dans du bruit. L’expérience consiste en une suite d’essais, certains ne contenant que du bruit, d’autres contenant du bruit et le signal superposé. Le son cible étant faible, la détection dans le bruit n’est pas évidente ; pour chaque essai, il y a donc quatre possibilités :

Décision

Cible présente Non Oui
Non  rejet correct fausse alarme
Oui  manqué détection correcte

À la fin de l’expérience, il y a donc 4 pourcentages, correspondant à chacune des cases du tableau. En fait, ces 4 pourcentages ne sont pas indépendants^{2} : la performance d’une personne peut être caractérisée, par exemple, par le taux de détection correcte (Hits) et le taux de fausse-alarmes (FA). On peut la représenter par un point dans un repère FA/Hits.

Par exemple, la figure 5 montre les performances de 3 sujets (points (a), (b) et (c)). (a) a une performance parfaite ; (c) répond au hasard et (b) répond systématiquement que le signal est présent (son taux de fausse alarme est de 100 %). Bien que les performances de (b) et de (c) soient différentes, on a envie de dire qu’ils ont la même sensibilité de détection (nulle), mais que leur biais de réponse sont différents. ^{3}

Ces cas sont extrèmes. Grosso-modo, plus la performance d’un sujet est proche du point (a) (ou éloigné de la diagonale principale du carré, d’équation Hits=FA), plus sa sensibilité de détection est bonne. Un sujet non biaisé correspondra à un point situé sur la petite diagonale du carré (Hits=1-FA). La

2Le nombre d’essais contenant la cible ou pas son fixés à l’avance. Par conséquent, la somme de spourcentage sur chaque ligne du tableau fait 100%.

3Remarquons que le biais de réponse peut varier au cours du temps chez le même sujet.

Fig. 5 – Diagramme fausses alarmes/détections correctes (FA/Hits)

théorie de détection du signal fournit à partir des taux de FA et de Hits, des estimations de la sensibilité et du biais de réponse.

Suivant la théorie de la détection du signal Tanner and Swets [1954], le traitement perceptif d’un stimulus donne lieu à une réponse interne de l’organisme. La distribution de cette grandeur est différente selon que le stimulus contient la cible ou pas. Par exemple, la figure 6 décrit les distributions provoquées, chez un radiologue, par des clichés de patients ayant ou non des tumeurs. Sa prise de décision est modélisée par un seuil (figure 7)

Fig. 6 – Distributions associées à un stimulus contenant ou non la cible (Modélisation d’une décision

Le calcul de la sensibilité (d′) et du biais ’β (dans le modèle gaussien à variances égales), à partir des taux de fausse alarme et de hits, est assez simple :

d′ = z(H) − z(F)
β = e^{− \frac{z(H)^{2}−z(F)^{2}}{2}}

Où z désigne la fonction inverse de la fonction de distibution de la loi normale. Autrement dit, z transforme un centile dans en “Z-score”.

Fig. 7 – Effet de la position du critère de décision Fig. 8 – Courbes d’iso-d′ (à gauche) et d’iso-β (à droite On peut calculer d′ et β avec un tableur : il suffit de trouver la fonction inversant la distribution de la loi normale. Dans OpenOffice Calc, c’est la fonction LOI.NORMALE.STANDARD.INVERSE. Dans Excel, il semblerait que ce soit NORMSINV.

Certains logiciels de statistiques possèdent des fonctions permettant calculer d′ et β. Dans le logiciel de statistique “R” (http ://www.r-project.org), on peut définir les fonctions :

dprime <- function(hit,fa) {
  qnorm(hit) - qnorm(fa) }
beta <- function(hit,fa) {
  zhr <- qnorm(hit)
  zfar <- qnorm(fa)
  exp(-zhr*zhr/2+zfar*zfar/2)
}

5 À vous de jouer : réalisation d’une expérience simple de détection de signal

Votre mission est de programmer une expérience très simple de détection d’un ton pur faiblement audible, caché dans du bruit.

Le sujet entend des stimuli bruités, les uns après les autres dans un ordre aléatoire. Après chaque stimulus, il doit indiquer en cliquant sur un bouton de la souris s’il pense que le stimulus contient un ton pur (c.-à.-d. une sinusoïde) ou non.

5.1 Construction des stimuli

Vous pouvez soit récupérer les fichiers bruit.wav et signal.wav), soit créer les stimuli vous-même :

Avec Praat, générez un bruit blanc durant une seconde, puis un autre stimulus durant également une seconde et contenant un ton pur superposé à un bruit blanc. La difficulté est d’ajuster l’amplitude de la sinusoïde jusqu’à ce que ce qu’elle soit difficilement détectable (pour que la tâche de détection du ton pur ait un sens). Sauvez ces sons comme des fichiers bruit.wav et

signal.wav

5.2 Programmation de l’expérience

Voici le code python minimal pour jouer un fichier son :

import pygame
pygame.mixer.init(22050) # frequence d'échantillonage
sound=pygame.mixer.Sound('ph1.wav')
channel=sound.play()
while channel.get_busy():
     pygame.time.wait(10)

Exercise 9 Compléter ce code pour jouer une suite de fichiers sons.

Quand vous aurez fini, vous pourrez comparer votre code au suivant.

Remarquez que nous avons définit une fonction play qui joue un fichier son, et une boucle principale qui lit successivement les éléments de la variable liste et appelle la fonction play.

Exercise 10 Modifier le code précédent pour que l’ordre des stimuli soit alétoire (pensez à utiliser random.shuffle)

Exercise 11 Modifier votre code pour détecter le bouton de souris qui est appuyé après chaque stimulus.

Aide : voir le code suivant :

        response = 0
        while not(response):
            for event in pygame.event.get():
                if event.type == MOUSEBUTTONDOWN:
                    response=event.button

Exercise 12 Modifier votre code pour sauver les réponses du sujet dans un fichier.

Finalement, comparez votre code à celui de signal.detection.py. Notez qu’il y a plusieurs façons de programmer la même chose...

6 Faire passer la manip et analyser les résultats

À partir du fichier de résultat, calculer les taux de hits et de fausse alarme, puis calculer d′ et β.

7 Modification de la manip

On a vu que la tâche de détection posait un “problème” de biais de réponse. Une variante consiste à présenter deux stimuli à chaque essai : l’un qui contient la cible et l’autre qui ne la contient pas. La tâche du sujet est de désigner lequel des deux stimuli contient la cible. Cette tâche est appelée “two alternative forced-choice”. Il n’y a pas de problème de biais de décision dans cette situation et la tâche est un peu plus facile pour les sujets.

Vous pouvez modifier la manip pour implémenter une tâche de two-alternative forced choice. Selon le modèle théorique présenté dans Macmillan and Creelman [2005] le d2AFC^{′} dans cette tâche devrait être égal à ddetect^{′}/\sqrt{2} .

8 Réalisation d’une expérience semblable à celle de Samuel (1981)

Dans l’expérience 2 de Samuel [1981], les stimuli étaient des mots ou des pseudomots, dont un phonème avait été soit caché par du bruit, soit remplacé par du bruit. À chaque essai, le sujet entendait d’abord le stimulus original, intact, puis une des deux versions modifiées. Il devait dire si le phonème était juste caché ou remplacé par le bruit.

8.1 sélection du matériel

Sélectionner 20 mots français fréquents, bi ou trisyllabiques, contenant un son [f], [s] ou [ch]. (utiliser www.lexique.org)

Inventer 20 pseudomots similaires (mais pas trop ;-).

Enregistrer ces items avec Praat (New/Record mono sound).

8.2 Construction des stimuli

Pour chaque item, il faut construire une version où un bruit est ajouté sur le phonème critique, et une version ou le bruit remplace le phonème critique.

Pour additionner un bruit blanc sur un son dans un intervalle temporel, par exemple [0.693,0.776], dans Praat, utiliser Modify/formula :

if x>0.693 and x<0.776 then self[col]+randomGauss(0,0.1) else self[col] endif

Il se pose la question d’avoir un niveau de bruit adéquat (c.-à-d. tel que la tâche de détection ne soit ni trop facile, ni trop difficile). Voir l’article de Samuel (1981) : celui-ci ajuste le niveau de bruit à l’energie moyenne du signal remplacé (root mean square).

Il faudra sans doute tâtonner pour trouver les amplitudes adéquates.

8.3 Programmation de la manip

On pourrait utiliser le programme précédent signal.detection.py. Mais il faudrait construire à priori toutes les paires ’item intact item added’ et ’item intact item replaced’. C’est fastidieux mais possible (et cela peut en fait être automatisé, par exemple dans Praat).

Une autre approche consiste à modifier la boucle principale du programme signal.detection.py pour qu’il joue le fichier intact avant le fichier modifié. Si le nom du fichier intact se déduit facilement du nom du fichier modifié, cette solution est rapide.

8.4 Faire passer l’expérience et regarder les résultats

Reproduit-on les résultats de Samuel (1981) ?

9 Pour poursuivre

À propos des effets lexicaux sur la perception des phonèmes, le débat n’est pas clos : voir Norris et al. [2000], Samuel and Pitt [2003].

Ceux intéressés par la théorie de détection du signal pourront lire Macmillan and Creelman [2005].

Références

H. Fletcher. Speech and Hearing. Van Nostrand, New York, 1929.

J. C. R. Licklider. Effects of amplitude sitortion upon the intelligibility of speeh. J. acoust. Soc. Amer., 18 :429–434, 1946.

J. C. R. Licklider. The intelligibility of amplitude dichotomized, time-quantized speech waves. J. acoust. Soc. Amer., 22 :820–823, 1950.

Neil A. Macmillan and C. Douglas Creelman. Detection theory : a user’s guide. LEA, 2nd edition, 2005.

J. L. McClelland and J. L. Elman. The trace model of speech perception. Cognitive Psychology, 18 :1–86, 1986.

J. L. McClelland and D. E. Rumelhart. Parallel distributed processing : Explorations in the microstructures of cognition. Vol 2. Psychological and Biological Models. MIT Press, Cambridge Mass., 1986.

G. A. Miller and J. C. R. Licklider. The intelligibility of interrupted speech. Journal of the Acoustical Society of America, 22 :167–173, 1950.

D. Norris, J. M. McQueen, and A. Cutler. Merging information in speech recognition : Feedback is never necessary. Behavioral and Brain Sciences, 23(3) : 299–370, 2000.

K. Saberi and D. R. Perrot. Cognitive restoration of reversed speech. Nature, 398 : 760, 1999.

A. G. Samuel. Phonemic restauration : Insights from a new methodology. Journal of Experimental Psychology : General, 110 :474–494, 1981.

A.G. Samuel and M.A. Pitt. Lexical activation (and other factors) can mediate compensation for coarticulation. Journal of Memory and Language, 48 :416–434, 2003.

W. P. Tanner and J. A. Swets. A decision-making theory of visual detection. Psychological Review, 61 :401–409, 1954.

R. M. Warren. Perceptual restauration of missing speech sounds. Science, 167 : 392–393, 1970.