La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

PROGRAMMER AVEC PRAAT.

Présentations similaires


Présentation au sujet: "PROGRAMMER AVEC PRAAT."— Transcription de la présentation:

1 PROGRAMMER AVEC PRAAT

2 Plan 1- Introduction au langage de Praat
2- Les Log-files : un bon compromis 3- Votre premier script 4- L'analyse acoustique : le son 5- Deux conseils 6- L'analyse acoustique : la "TextGrid"

3 Tout d'abord Le dossier du cours contient :
1- Ce PowerPoint: vous pourrez y retrouver les informations nécessaires pour réaliser les exercices. 2- Un récapitulatif des fonctions abordées 3- Le fichier son "Track02" et sa grille d'étiquetage

4 Plan 1- Introduction au langage de Praat
2- Les Log-files : un bon compromis 3- Votre premier script 4- L'analyse acoustique 5- Deux conseils 6- L'analyse acoustique : la "TextGrid"

5 Programmer??? C’est un langage de « scripts »…
1- un langage interprété 2- d'accès plus abordable (pas du C)…mais... 3- proche du Visual Basic de Microsoft (suite de Macros améliorées)

6 Un exemple concret Réaliser une analyse acoustique grâce à un script!
voici un fichier de 20 secondes étiqueté… ...(étiqueté : c’est indispensable si l’on veut connaître les caractéristiques de certains phonèmes)

7 Objectif ! Analyser tous les [a] de cet extrait Fo
valeurs des 3ers formants intensité globale durée

8 On ouvre le fichier en question!
Dans "Praat Objects" , ouvrir : le fichier son « track02.wav » et sa grille d’étiquetage «  track02.TextGrid » Pour l’utilisation basique de Praat, voir

9

10

11 Sélectionnez le son avec sa grille
d'étiquetage pour "l' Éditer"

12

13

14 exercice1

15 exercice1 Ouvrez le fichier son "Track02.wav" ainsi que sa "TextGrid":
Read > Read from file... Sélectionnez les 2 et visionnez ainsi le son avec son étiquetage : Edit : pour visionner Utilisez les touches "all" "in" "out" "sel" pour découvrir le fichier et les barres en bas de la fenêtre pour l'écouter.

16 Plan 1- Introduction au langage de Praat
2- Les Log-files : un bon compromis 3- Votre premier script 4- L'analyse acoustique 5- Deux conseils 6- L'analyse acoustique : la "TextGrid"

17 Un bon compromis…. Les « log-files »
permet de comprendre la syntaxe un peu brute de la programmation…mais beaucoup plus simple! permet d’obtenir un résultat « semi-automatique »

18 Qu’est-ce ?????? Inspiré de Kay csl
De petites commandes sont inscrites dans un espace réservé à cet effet Les informations demandées sont inscrites dans un « log file » dès que : on sélectionne un extrait on pointe sur un endroit du signal … et que l'on active un raccourci !!

19

20 Notez ici : 2 Log Files à appeler séparément ensuite

21 lieu d’enregistrement

22 ce qui va être écrit la syntaxe est enregistrée dès que l'on appuie sur "Return"

23 écrire dans le "log file" c'est ce qu'on veut!

24 écrire dans le la fenêtre "info" qui apparaîtra en général…pénible!

25 Notez la syntaxe (1) Time 'time:6' seconds , pitch 'f0:2' Hertz 't1:4' 'tab$' 't2:4' 'tab$' 'f1:0' 'tab$' 'f2:0' 'tab$' 'f3:0' 't1:4’ 't2:4’  'f1:0’ 'f2:0’ 'f3:0'

26 Notez la syntaxe (2) Tout ce qui est entre '……' est une variable
en résultat, ce sera un chiffre. (ex: 't1' 'f1' ...) Si ce n'est pas entre '……' c'est une annotation en résultat, ce sera le texte écrit (ex: time formant1…)

27 Notez la syntaxe (3) Il s'agit donc de savoir ce que l'on peut mettre dans les '……', un éventail: ‘time’ retourne l'indice temporel de (a) le curseur ou (b) le milieu de la sélection ‘t1’ & ‘t2’ retournent l'indice temporel du début & de la fin de la sélection ‘dur’ retourne la durée en secondes de la sélection.

28 Notez la syntaxe (4) f retourne la Fo (a) au curseur ou (b) moyennée sur la sélection f1, f2, f3, f4, f5 retournent les valeurs formantiques (a) au curseur ou (b) valeur moyennée sur la sélection b1, b2, b3, b4, b5 comme ci-dessus mais pour la largeur de bande intensity retourne l'intensité (a) au curseur ou (b) moyennée sur la sélection

29 Notez la syntaxe (5) Dernières astuces !!!
'tab$' créé une tabulation dans le fichier .txt ‘f1:0’ ‘dur :3’ 'time :4' Le format :3 permet d'obtenir 3 décimales Le format :2 permet d'obtenir 3 décimales

30 pour lancer le 1er "log-file"...
…ou le deuxième !

31 Attention ! Vous ne pouvez pas demander des valeurs de Fo (par ex.) si la courbe de Fo n'est pas affichée à l'écran "Show Pitch" "Show Intensity" "Show Formants"

32

33 Une astuce! Cela peut être vraiment pratique si vous disposez du système "intelliPoint" : la roulette… vous pouvez alors programmer le click droit de la souris pour faire appel à un raccourci (Shift + F12) La partie "Log Files" a été inspirée de K.Crosswhite

34 exercice2

35 exercice2 Essayez en cliquant sur le 1er [a] du fichier, d’obtenir ces informations…. 1- l'indice temporel 2- la Fo 3- la valeur des 3 premiers formants Tout cela en un "log-file" que vous placerez sur le bureau

36 exercice2 : solution Voici une des possibilités

37

38 Reprenons …….

39 inutiles manuellement - …mais qui seront reproduites par le script
Notez des commandes - qui peuvent sembler inutiles manuellement - …mais qui seront reproduites par le script

40 point important Il s’agit de comprendre la logique
Les opérations se dérouleront dans la fenêtre « Praat objects », c’est + rapide, et les mêmes commandes sont disponibles

41 Ces commandes se retrouveront dans la fenêtre "Praat Objects"

42 Plan 1- Introduction au langage de Praat
2- Les Log-files : un bon compromis 3- Votre premier script 4- L'analyse acoustique 5- Deux conseils 6- L'analyse acoustique : la "TextGrid"

43 Votre 1er script! voici les étapes….pour se mettre dans le bain
1- ouvrir un script vierge 2- ouvrir un fichier et sa grille d’étiquetage... 3- …puis les insérer dans le script! 4- sauver le script, puis l'exécuter 5- ré-utiliser le script plus tard 6- La notion de chemin 7- La notion de variable 8- Nommer les fichiers… pour les (r)appeler

44 1- ouvrir un script vierge
Donc désormais, tout se passe dans la fenêtre « Praat Objects » « Control > New Praat script

45

46 2- ouvrir un fichier et sa grille d’étiquetage...
On va pouvoir écrire dans ce script Comment ouvrir un fichier par un script ? Peu de syntaxe à apprendre, il s’agit de Macros

47 En fait... Toutes les actions réalisées après ouverture de Praat sont enregistrées dans un historique Il est sage de commencer par "formater cet historique"

48

49 3- …puis les insérer dans le script!
Ouvrons donc un fichier et puis copions la syntaxe de l’action dans le script… …avec la commande "Paste History" (ou Ctrl+H) qui se trouve juste sous la commande que l'on vient de voir

50

51 Votre 1er script! voici les étapes….pour se mettre dans le bain
1- ouvrir un script vierge 2- ouvrir un fichier et sa grille d’étiquetage... 3- …puis les insérer dans le script! 4- sauver le script, puis l'exécuter 5- ré-utiliser le script plus tard 6- La notion de chemin 7- La notion de variable 8- Nommer les fichiers… pour les (r)appeler 9- mettre des commentaires

52 …pour répéter la manœuvre !
Il suffira ensuite de... Sauvegarder le script ( File > Save ou Ctrl+s ) … Puis le lancer ( Run > Run ou Ctrl + r ) …pour répéter la manœuvre !

53

54

55 5- ré-utiliser le script plus tard
Pour exécuter ce script un autre jour : il faudra l'appeler depuis la fenêtre "Praat Objects" ...puis l'exécuter comme d'habitude...

56

57 exercice3

58 exercice3 1- Effacez l'historique… (Clear History)
2-Ouvrez le fichier son "Track01.wav" et sa grille d'étiquetage "Track01.TextGrid" 2- Inscrivez l'opération dans un script, sauvegardez le dans le dossier "cours_prog_praat" (script1 par ex) 3- Fermez Praat, ouvrez le à nouveau, ouvrez le script et exécutez le

59 En fait …. En programmation, les puristes disent : « pas de nom de fichier dans un script » … et c’est bien vrai, mais pour l’instant c’est plus simple! Ces notions sont indispensables si l’on veut: lire des fichiers puis écrire les résultats ailleurs faire des scripts «autonomes »

60 Votre 1er script! voici les étapes….pour se mettre dans le bain
1- ouvrir un script vierge 2- ouvrir un fichier et sa grille d’étiquetage... 3- …puis les insérer dans le script! 4- sauver le script, puis l'exécuter 5- ré-utiliser le script plus tard 6- La notion de chemin 7- La notion de variable 8- nommer les fichiers… pour les (r)appeler 9- mettre des commentaires

61 6- La notion de chemin Allons y progressivement
Il faut connaître la notion de chemin relatif Admettons que l’on donne un chemin unique vers un dossier qui contiendra tout notre travail… C:\WINDOWS\Bureau\cours_prog_praat\

62 nom de variable : on peut mettre
7- La notion de variable Nommons le dans le script : path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" nom de variable : on peut mettre n’importe quoi toto$ bloublou$ ici c’est le chemin donné par Windows !

63 Point essentiel!!!!!!!! Voilà le plus grand principe de la programmation : mettre les informations dans des "variables"… Puisqu'on peut les ré-utiliser ensuite… par exemple l'afficher avec la commande print 'path$'

64 Quelques « détails »... Ce qui peut paraître compliqué également:
les signes de ponctuation: "   $ '  # En fait Praat est assez permissif…

65 …ce qu'il faut savoir tout de même
la variable 'toto$' sera mémorisée comme un nom la variable 'toto' sera mémorisée comme un chiffre les "..." ne sont pas interprétées les '….' seront interprétées comme pour les "Log Files"!

66 Maintenant... Pour ouvrir les fichiers dans ce dossier…
path$ = "C:\WINDOWS\Bureau\cours_prog_praat\"   file$ = path$ + "track01.wav" file2$= path$ + "track01.TextGrid" Read from file... 'file$' Read from file... 'file2$' Pour l’instant ça paraît plus compliqué… mais il faut s’y habituer… l’utilité deviendra évidente bientôt!

67 nom de variable : on peut mettre
8- Nommer les fichiers Un des rares exemples sans macro…une fois que vous avez ouvert un nouvel élément dans la fenêtre "Praat Objects" (que ce soit un son, une grille, une analyse de Fo, formants…) Read from file... 'file$' son = selected ("Sound") Read from file... 'file2$' grille = selected ("TextGrid ") nom de variable : on peut mettre n’importe quoi à droite de = c’est très strict!

68 toujours au même endroit
8 - … pour les rappeler Sélectionner un son revient à cliquer dessus…voici comment faire "par écrit" select 'son' select 'grille' Glissez une pause entre chaque pour observer les étapes... select 'son' pause select 'grille' pause select 'son' pratique ces pauses! quand le script "plante" toujours au même endroit

69 9- mettre des commentaires
Un grand classique !!! Pour progresser, c’est vraiment indispensable…mais aussi pour se souvenir de ce qu’on a fait 4 mois + tôt ! Il suffit de commencer une ligne par #

70 exercice4

71 exercice4 1- Indiquez le chemin et ouvrez les 2 mêmes fichiers avec la méthode suivante path$ = "C:\WINDOWS\Bureau\cours_prog_praat\ "   file$ = path$ + "track01.wav" file2$= path$ + "track01.TextGrid" Read from file... 'file$' Read from file... 'file2$' 2- Nommez les "son" et "grille", puis sélectionnez les tour à tour 2 fois, utilisez les pauses pour vérifier que ça fonctionne! 3- N'hésitez à décrire le tout par des commentaires. 4 - Utilisez la fonction print pour afficher 'path$', 'file$' et 'son'

72 exercice4 : début de solution
path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" file$ = path$ + "track01.wav" file2$= path$ + "track01.TextGrid" Read from file... 'file$' Read from file... 'file2$' # chemin et nom des fichiers à ouvrir # ouverture des fichiers nommés 'son' et 'grille' # sélection des sons avec pause pour voir si ça marche! # Affichage dans la fenêtre Info.. 'newline$' permet de passer à la ligne

73 Voici une des possibilités
exercice4 : solution Voici une des possibilités # chemin et nom des fichiers à ouvrir path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" file$ = path$ + "track01.wav" file2$= path$ + "track01.TextGrid" # ouverture des fichiers nommés 'son' et 'grille' Read from file... 'file$' son = selected ("Sound") Read from file... 'file2$' grille = selected ("TextGrid") # sélection des sons avec pause pour voir si ça marche! select 'son' pause select 'grille' # Affichage dans la fenêtre Info.. 'newline$' permet de passer à la ligne print 'path$' 'newline$' 'file$' 'newline$' 'son'

74 Plan 1- Introduction au langage de Praat
2- Les Log-files : un bon compromis 3- Votre premier script 4- L'analyse acoustique : le son 5- Deux conseils 6- L'analyse acoustique : la "TextGrid"

75 Commençons……le principe !
Comment obtenir nos premières valeurs….? Comment fait on manuellement???? Il suffit d'utiliser le menu "Query" qui apparaît lorsqu'un élément est sélectionné...

76 Les commandes possibles
lorsqu'un son est sélectionné !! "Query > …. "

77 Les commandes possibles lorsqu'une grille d'étiquetage
est sélectionné !! "Query > …. "

78 On a vu... Pour les Log-Files… … il était essentiel de montrer les analyses de Fo (et autres) sur l'écran… pour prendre des mesures ! Pour les scripts… …il est essentiel d'avoir les analyses sur le "plan de travail" !

79 Sélectionnez le son en cliquant dessus
cliquez sur "Periodicity" pour obtenir un "Pitch Tier"

80

81 Query... Le principe est le même pour ….. la Fo Rappel:
Sound > Periodicity > To Pitch pour obtenir le "Pitch"

82 Query... Le principe est le même pour ….. l'analyse formantique
Rappel: Sound > Formants & LPC > To Formant(burg) pour obtenir le "Formant"

83 Query... Le principe est le même pour ….. l'analyse d'intensité
Rappel: Sound > To Intensity pour obtenir l'intensité

84

85 La difficulté est la suivante !!
Toutes ces commandes requièrent des informations temporelles… Or ces informations temporelles sont contenues dans la grille d'étiquetage ("TextGrid").

86 Allons y progressivement !
Il va falloir mélanger : 1- les informations prises sur le son 2- les informations fournies par la "TextGrid" Commençons par nous familiariser avec la première partie… dans l'exercice 5 !

87 Utilisons un indice temporel fixe
à 2.9s du début du fichier se trouve... un [a] dans "consacrent" (à 1/2 du [a] environ) Prenons la valeur de Fo à cet instant! Manuellement pour coller la syntaxe……de macros

88 Sélectionnez le son en cliquant dessus
cliquez sur "Periodicity" pour obtenir un "Pitch Tier"

89

90

91

92 Il faut maintenant ... … coller ces actions dans le script.
"Edit > Paste History" (ou Ctrl+H) attention ! si vous n'avez pas pris soin de formater l'historique avant les commandes… il peut y avoir beaucoup de lignes!!!

93 Voici ce qu'on obtient... select Sound track01 To Pitch Get value at time Hertz Linear Un langage à scripts : "des macros améliorées"… ça veut dire quoi?

94 Il faudra changer (1) select Sound track01 To Pitch Get value at time Hertz Linear select 'son' To Pitch Get value at time Hertz Linear select Sound track01 en select 'son' pour rendre le script + autonome!

95 Il faudra changer (2) select Sound track01 To Pitch Get value at time Hertz Linear select 'son' To Pitch pitch = selected("Pitch") Get value at time Hertz Linear Nommez le "Pitch" si l'on doit s'en servir plus tard…. select 'pitch'

96 Il faudra changer (3) select Sound track01 To Pitch Get value at time Hertz Linear select 'son' To Pitch pitch = selected("Pitch") toto = Get value at time Hertz Linear Il faut enregistrer le résultat…. dans une variable bien sûr! c'est un résultat chiffré…donc…pas de $!

97 exercice5

98 exercice5 Prenez la valeur de Fo à 1.82s, sauvez la dans une variable, puis affichez la. 1- Reprenez votre script! 2- Ouvrez le si vous l'avez fermé 3- Re-formatez l'historique de Praat (ça se passe toujours dans la fenêtre "...script") 4- exécutez les opérations (valeur de Fo à 1.82s + affichage) 5- collez l'action dans le script 6- améliorez les macros 7- enregistrez et re-faites tourner.

99 Votre 1er script! voici les étapes….pour se mettre dans le bain
1- ouvrir un script vierge 2- ouvrir un fichier et sa grille d’étiquetage... 3- …puis les insérer dans le script! 4- sauver le script, puis l'exécuter 5- ré-utiliser le script plus tard 6- La notion de chemin 7- La notion de variable 8- nommer les fichiers… pour les (r)appeler 9- mettre des commentaires

100 exercice5 : solution # chemin et nom des fichiers à ouvrir path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" file$ = path$ + "track01.wav" file2$= path$ + "track01.TextGrid" # ouverture des fichiers nommés son$ et grille$ Read from file... 'file$' son = selected ("Sound") Read from file... 'file2$' grille = selected ("TextGrid") select 'son' To Pitch pitch = selected("Pitch") toto = Get value at time Hertz Linear # Affichage de la variable 'toto'…tt ce qui n'est pas entre '..' est affiché tel quel ! print la valeur de Fo à 1.82 sec du début du fichier est égale à 'toto' Hertz

101 Un détail important ! # Affichage de la variable 'toto'…tt ce qui n'est pas entre '..' #est affiché tel quel! print la valeur de Fo à 1.82 sec du début du fichier est égale à 'toto' Hertz permet d'obtenir …

102 Comme pour les "Log Files"
# Affichage de la variable 'toto'…tt ce qui n'est pas entre '..' #est affiché tel quel! print la valeur de Fo à 1.82 sec du début du fichier est égale à 'toto:2' Hertz permet d'obtenir …

103 Un autre point! Les infos affichées ne sont pas automatiquement effacées d'une exécution de script à l'autre Votre fenêtre "info" commence à être chargée…. Placez clearinfo à n'importe quel endroit du script et elle sera nettoyée!

104 - les formants - l'intensité
Continuons pour ….. - les formants - l'intensité

105 C'est la même démarche!!! Nettoyons l'historique

106

107

108 Le principe est le même pour ….. l'analyse formantique
Rappel: Sound > Formants & LPC > To Formant(burg) pour obtenir le "Formant"

109

110

111

112 Il faut maintenant ... … coller ces actions dans le script.
"Edit > Paste History" (ou Ctrl+H) attention ! si vous n'avez pas pris soin de formater l'historique avant les commandes… il peut y avoir beaucoup de lignes!!!

113 Voici ce qu'on obtient... select Sound track01 To Formant (burg) Get value at time Hertz Linear Un langage à scripts : "des macros améliorées"… ça veut dire quoi?

114 Il faudra changer (1) select Sound track01 To Formant (burg) Get value at time Hertz Linear select 'son' To Formant (burg) Get value at time Hertz Linear select Sound track01 en select 'son' pour rendre le script + autonome!

115 Il faudra changer (2) select Sound track01 To Formant (burg) Get value at time Hertz Linear select 'son' To Formant (burg) formant = selected("Formant") Get value at time Hertz Linear Nommez le "Formant" si l'on doit s'en servir plus tard…. select 'formant'

116 Il faudra changer (3) select Sound track01 To Formant (burg) Get value at time Hertz Linear select 'son' To Formant (burg) formant = selected("Formant") f1 = Get value at time Hertz Linear Il faut enregistrer le résultat…. dans une variable bien sûr! c'est un résultat chiffré…donc…pas de $!

117 Pour les autres formants...
Il faudra changer ici ….

118 Le principe est le même pour ….. l'analyse d'intensité
Rappel: Sound > To Intensity pour obtenir l'intensité


Télécharger ppt "PROGRAMMER AVEC PRAAT."

Présentations similaires


Annonces Google