Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
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
11
Sélectionnez le son avec sa grille
d'étiquetage pour "l' Éditer"
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 !!
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"
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
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
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"
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
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 !
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...
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"
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é
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"
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
108
Le principe est le même pour ….. l'analyse formantique
Rappel: Sound > Formants & LPC > To Formant(burg) pour obtenir le "Formant"
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é
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.