Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
PROGRAMMER AVEC PRAAT Cédric Gendrot - TAL SLOW ILPGA
2
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Plan 1- Introduction au langage de Praat 2- Votre premier script 3- L'analyse acoustique : le son 4- Ecrire dans un fichier 5- L'analyse acoustique : la "TextGrid" Cédric Gendrot - TAL SLOW ILPGA
3
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Plan 1- Introduction au langage de Praat 2- Votre premier script 3- L'analyse acoustique 4- Ecrire dans un fichier 5- L'analyse acoustique : la "TextGrid" Cédric Gendrot - TAL SLOW ILPGA
4
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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) Cédric Gendrot - TAL SLOW ILPGA
5
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Un exemple concret Réaliser une analyse acoustique grâce à un script! Prenez votre fichier "Praat Demo" étiqueté… ...(étiqueté : c’est indispensable si l’on veut connaître les caractéristiques de certains phonèmes) Cédric Gendrot - TAL SLOW ILPGA
6
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Objectif final ! Analyser tous les [a] de cet extrait Fo valeurs des 3ers formants intensité globale durée Cédric Gendrot - TAL SLOW ILPGA
7
inutiles manuellement - …mais qui seront reproduites par le script
Notez ces commandes - qui peuvent sembler inutiles manuellement - …mais qui seront reproduites par le script Cédric Gendrot - TAL SLOW ILPGA
8
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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 Cédric Gendrot - TAL SLOW ILPGA
9
Ces commandes se retrouveront dans la fenêtre "Praat Objects"
Cédric Gendrot - TAL SLOW ILPGA
10
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Plan 1- Introduction au langage de Praat 2- Votre premier script 3- L'analyse acoustique 4- Ecrire dans un fichier 5- L'analyse acoustique : la "TextGrid" Cédric Gendrot - TAL SLOW ILPGA
11
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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 Cédric Gendrot - TAL SLOW ILPGA
12
1- ouvrir un script vierge
Donc désormais, tout se passe dans la fenêtre « Praat Objects » « Control > New Praat script Cédric Gendrot - TAL SLOW ILPGA
13
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
14
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 Cédric Gendrot - TAL SLOW ILPGA
15
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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" Cédric Gendrot - TAL SLOW ILPGA
16
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
17
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 Cédric Gendrot - TAL SLOW ILPGA
18
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
19
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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 Cédric Gendrot - TAL SLOW ILPGA
20
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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 ! Cédric Gendrot - TAL SLOW ILPGA
21
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
22
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
23
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... Cédric Gendrot - TAL SLOW ILPGA
24
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
25
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice1 Cédric Gendrot - TAL SLOW ILPGA
26
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Exercice1 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_slow5" (script1 par ex) 3- Fermez Praat, ouvrez le à nouveau, ouvrez le script et exécutez le Cédric Gendrot - TAL SLOW ILPGA
27
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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 » Cédric Gendrot - TAL SLOW ILPGA
28
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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 Cédric Gendrot - TAL SLOW ILPGA
29
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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\ Cédric Gendrot - TAL SLOW ILPGA
30
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 ! Cédric Gendrot - TAL SLOW ILPGA
31
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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$' Cédric Gendrot - TAL SLOW ILPGA
32
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Quelques « détails »... Ce qui peut paraître compliqué également: les signes de ponctuation: " $ ' En fait Praat est assez permissif… Cédric Gendrot - TAL SLOW ILPGA
33
…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 "..." (ou rien) ne sont pas interprétées les '….' seront interprétées Cédric Gendrot - TAL SLOW ILPGA
34
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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! Cédric Gendrot - TAL SLOW ILPGA
35
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! Cédric Gendrot - TAL SLOW ILPGA
36
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 Cédric Gendrot - TAL SLOW ILPGA
37
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 # Cédric Gendrot - TAL SLOW ILPGA
38
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice2 Cédric Gendrot - TAL SLOW ILPGA
39
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice2 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' Cédric Gendrot - TAL SLOW ILPGA
40
Voici une des possibilités
exercice2 : 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' Cédric Gendrot - TAL SLOW ILPGA
41
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Plan 1- Introduction au langage de Praat 2- Votre premier script 3- L'analyse acoustique 4- Ecrire dans un fichier 5- L'analyse acoustique : la "TextGrid" Cédric Gendrot - TAL SLOW ILPGA
42
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é... Cédric Gendrot - TAL SLOW ILPGA
43
Les commandes possibles lorsqu'un son est sélectionné !!
"Query > …. " Cédric Gendrot - TAL SLOW ILPGA
44
Les commandes possibles lorsqu'une grille d'étiquetage
est sélectionné !! "Query > …. " Cédric Gendrot - TAL SLOW ILPGA
45
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
On a vu... Pour les analyses manuelles… … 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" ! Cédric Gendrot - TAL SLOW ILPGA
46
Sélectionnez le son en cliquant dessus
cliquez sur "Periodicity" pour obtenir un "Pitch Tier" Cédric Gendrot - TAL SLOW ILPGA
47
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
48
Query... Le principe est le même pour ….. la Fo Rappel:
Sound > Periodicity > To Pitch pour obtenir le "Pitch" Cédric Gendrot - TAL SLOW ILPGA
49
Query... Le principe est le même pour ….. l'analyse formantique
Rappel: Sound > Formants & LPC > To Formant(burg) pour obtenir le "Formant" Cédric Gendrot - TAL SLOW ILPGA
50
Query... Le principe est le même pour ….. l'analyse d'intensité
Rappel: Sound > To Intensity pour obtenir l'intensité Cédric Gendrot - TAL SLOW ILPGA
51
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"). Cédric Gendrot - TAL SLOW ILPGA
52
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 3 ! Cédric Gendrot - TAL SLOW ILPGA
53
Utilisons un indice temporel fixe
à 1.08s du début du fichier se trouve... un [a] dans "Paris" (au milieu du [a]) Prenons la valeur de Fo à cet instant! Manuellement pour coller la syntaxe……de macros Cédric Gendrot - TAL SLOW ILPGA
54
Sélectionnez le son en cliquant dessus
cliquez sur "Periodicity" pour obtenir un "Pitch Tier" Cédric Gendrot - TAL SLOW ILPGA
55
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
56
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
57
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
58
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!!! Cédric Gendrot - TAL SLOW ILPGA
59
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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? Cédric Gendrot - TAL SLOW ILPGA
60
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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! Cédric Gendrot - TAL SLOW ILPGA
61
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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' Cédric Gendrot - TAL SLOW ILPGA
62
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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 $! Cédric Gendrot - TAL SLOW ILPGA
63
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice3 Cédric Gendrot - TAL SLOW ILPGA
64
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice3 Prenez la valeur de Fo à 1.08s, 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.08s + affichage) 5- collez l'action dans le script 6- améliorez les macros 7- enregistrez et re-faites tourner. Cédric Gendrot - TAL SLOW ILPGA
65
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice3 : 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.08 sec du début du fichier est égale à 'toto' Hertz Cédric Gendrot - TAL SLOW ILPGA
66
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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.08 sec du début du fichier est égale à 'toto' Hertz permet d'obtenir … Cédric Gendrot - TAL SLOW ILPGA
67
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Précision des valeurs !!! # Affichage de la variable 'toto'…tt ce qui n'est pas entre '..' #est affiché tel quel! print la valeur de Fo à 1.08 sec du début du fichier est égale à 'toto:2' Hertz permet d'obtenir … Cédric Gendrot - TAL SLOW ILPGA
68
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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! Cédric Gendrot - TAL SLOW ILPGA
69
- les formants - l'intensité
Continuons pour ….. - les formants - l'intensité Cédric Gendrot - TAL SLOW ILPGA
70
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
C'est la même démarche!!! Nettoyons l'historique Cédric Gendrot - TAL SLOW ILPGA
71
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
72
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
73
Le principe est le même pour ….. l'analyse formantique
Rappel: Sound > Formants & LPC > To Formant(burg) pour obtenir le "Formant" Cédric Gendrot - TAL SLOW ILPGA
74
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
75
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
76
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
77
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!!! Cédric Gendrot - TAL SLOW ILPGA
78
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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? Cédric Gendrot - TAL SLOW ILPGA
79
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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! Cédric Gendrot - TAL SLOW ILPGA
80
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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' Cédric Gendrot - TAL SLOW ILPGA
81
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
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 $! Cédric Gendrot - TAL SLOW ILPGA
82
Pour les autres formants...
Il faudra changer ici …. Cédric Gendrot - TAL SLOW ILPGA
83
Le principe est le même pour ….. l'analyse d'intensité
Rappel: Sound > To Intensity pour obtenir l'intensité Cédric Gendrot - TAL SLOW ILPGA
84
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice4 Cédric Gendrot - TAL SLOW ILPGA
85
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
valeur de Fo, intensité, 3 premiers formants …. Cédric Gendrot - TAL SLOW ILPGA
86
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Plan 1- Introduction au langage de Praat 2- Votre premier script 3- L'analyse acoustique 4- Ecrire dans un fichier 5- L'analyse acoustique : la "TextGrid" Cédric Gendrot - TAL SLOW ILPGA
87
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Écrire dans un fichier La prochaine étape sera de mêler ces analyses aux informations fournies par la "TextGrid"… Mais avant tout 1 conseil indispensable : 1- afficher le résultat dans un fichier (et non plus sur la fenêtre Info de Praat Cédric Gendrot - TAL SLOW ILPGA
88
Comment afficher le résultat…?
2 possibilités dans la fenêtre "Info" (+ simple) dans un fichier résultat que l'on créé (+ complet) Cédric Gendrot - TAL SLOW ILPGA
89
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Dans la fenêtre "Info" La commande : print ….c'est vu ! Cédric Gendrot - TAL SLOW ILPGA
90
Afficher le résultat dans un fichier que l'on créé...
la commande la plus simple : fileappend elle permet de créer un fichier de sortie pour enregistrer les résultats… Pour indiquer où placer ce fichier … on va procéder comme avant... Cédric Gendrot - TAL SLOW ILPGA
91
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
# 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") Cédric Gendrot - TAL SLOW ILPGA
92
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
# 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") Cédric Gendrot - TAL SLOW ILPGA
93
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
# 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") Cédric Gendrot - TAL SLOW ILPGA
94
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
# 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") Cédric Gendrot - TAL SLOW ILPGA
95
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
outputfile$= path$ + "resultats.xls" fileappend 'outputfile$' Fo 'tab$' formant1 'tab$' formant2 'tab$' … sans '….' pour insérer des annotations (très utile!!!) fileappend 'outputfile$' 'toto:2' 'tab$' 'f1:2' 'tab$' 'f2:2' 'tab$' … avec '….' pour écrire le contenu des variables Cédric Gendrot - TAL SLOW ILPGA
96
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
soit ... fileappend 'outputfile$' 'newline$' Fo 'tab$' formant1 'tab$' formant2 'tab$' formant3 'tab$' intensité 'tab$' 'newline$' Notez qu'on peut/doit insérer... 'tab$' 'newline$' ...On pourra ainsi remplir les cases d'une feuille Excel! Cédric Gendrot - TAL SLOW ILPGA
97
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice5 Cédric Gendrot - TAL SLOW ILPGA
98
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice5 1- à 1.08 secondes du début du fichier Reprenez le script de l'exercice 3 Écrivez les résultats dans un fichier "resultats.xls" que vous placerez dans le dossier "cours_slow5" ds ce fichier, inscrivez sur la 1ère ligne le nom du fichier et sur la 2ème : phonème | Fo | formant1 | …(passez d'une cellule à l'autre avec 'tab$' et d'une ligne à l'autre avec 'newline$') N'affichez dans la fenêtre "Info" aucun résultat mais affichez l'information suivante : Analyse terminée, les résultats se trouvent dans XXXXXX (dans XXX vous placerez le chemin menant à votre fichier résultat) Cédric Gendrot - TAL SLOW ILPGA
99
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Exercice5 : solution # chemin et nom des fichiers à ouvrir path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" file$ = path$ + "track01.wav" file2$= path$ + "track01.TextGrid" outputfile$= path$ + "resultats.xls" fileappend 'outputfile$' 'newline$' Fo 'tab$' phonème 'tab$' fo 'tab$' formant1 'tab$' 'newline$' # 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 fileappend 'outputfile$' 'toto' 'newline$' Cédric Gendrot - TAL SLOW ILPGA
100
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Plan 1- Introduction au langage de Praat 2- Votre premier script 3- L'analyse acoustique 4- Ecrire dans un fichier 5- L'analyse acoustique : la "TextGrid" Cédric Gendrot - TAL SLOW ILPGA
101
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Revenons à nos moutons ! Il va falloir mélanger : 1- les informations prises sur le son 2- les informations fournies par la "TextGrid" On peut passer à la 2ème partie Cédric Gendrot - TAL SLOW ILPGA
102
Mêler le fichier son aux informations de la grille d'étiquetage?
Par définition, la grille d'étiquetage connaît le nombre total d'intervalles le début et la fin de chaque intervalle l'étiquette de chaque intervalle Cédric Gendrot - TAL SLOW ILPGA
103
Les seules fonctions qui vont nous intéresser ici
Cédric Gendrot - TAL SLOW ILPGA
104
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
105
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
106
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
107
Si l'on colle ces actions
Comme vous l'avez sans doute déjà remarqué, la moindre opération est enregistrée... Get number of intervals... 1 Get starting point Get label of interval ...Mais on ne prend que ce qui est intéressant! Cédric Gendrot - TAL SLOW ILPGA
108
d'abord prévoir d'insérer les résultats dans des variables !
Que modifier…? Get number of intervals... 1 Get starting point Get ending point… 1 2 Get label of interval nb_intervalles = Get number of intervals... 1 beg_phoneme = Get starting point fin_phoneme = Get ending point… 1 2 phoneme = Get label of interval d'abord prévoir d'insérer les résultats dans des variables ! Cédric Gendrot - TAL SLOW ILPGA
109
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
Le raisonnement ! Cédric Gendrot - TAL SLOW ILPGA
110
L’intervalle est il nommé « a » ? si oui, faire les calculs!
Cédric Gendrot - TAL SLOW ILPGA
111
2 notions indispensables !!!
les boucles de répétition for ………….. endfor Les structures de condition if …………… endif Cédric Gendrot - TAL SLOW ILPGA
112
Littéralement…….répétition
Du 1er intervalle jusqu'au dernier ("for") prend l'étiquette (quel phonème?) (fin des instructions) ("endfor ") Cédric Gendrot - TAL SLOW ILPGA
113
Littéralement….…condition
Si l'intervalle est nommé "a" "if" réalise les actions suivantes ... Get starting point, Get ending point, formants, Fo et intensité ... (fin des instructions) "endif " Cédric Gendrot - TAL SLOW ILPGA
114
… du 1er au dernier intervalle
nb_intervalles = Get number of intervals... 1 for i from 1 to nb_intervalles phoneme$ = Get label of interval... 1 i if (phoneme$ = "a") beg_phoneme = Get starting point... 1 current_syllable fin_phoneme = Get end point... 1 current_syllable phoneme_dur = fin_phoneme - beg_phoneme fileappend 'outputfile1$' 'phoneme$' 'tab$' 'phoneme_dur' 'newline$' endif endfor … du 1er au dernier intervalle … prend l'étiquette du ième intervalle … si l'étiquette est un "a" … si l'étiquette est un "a" …… fin Cédric Gendrot - TAL SLOW ILPGA … du 1er au dernier intervalle …. fin
115
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
nb_intervalles = Get number of intervals... 1 for i from 1 to nb_intervalles phoneme$ = Get label of interval... 1 i if (phoneme$ = "a") beg_phoneme = Get starting point... 1 current_syllable fin_phoneme = Get end point... 1 current_syllable phoneme_dur = fin_phoneme - beg_phoneme fileappend 'outputfile1$' 'phoneme$' 'tab$' 'phoneme_dur' 'newline$' endif endfor Cédric Gendrot - TAL SLOW ILPGA
116
pas d'espace dans les noms
Notez bien ! On peut soustraire la valeur d'une variable à celle d'une autre en enregistrant la valeur dans une 3ème variable phoneme_dur = fin_phoneme - beg_phoneme pas d'espace dans les noms de variables Cédric Gendrot - TAL SLOW ILPGA
117
pas de majuscule non plus
Notez bien ! On peut soustraire la valeur d'une variable à celle d'une autre en enregistrant la valeur dans une 3ème variable phoneme_dur = fin_phoneme - beg_phoneme pas de majuscule non plus Cédric Gendrot - TAL SLOW ILPGA
118
… comme dans l'exemple que l'on utilise
Notez bien ! ça marche aussi pour les variables contenant des mots et non des chiffres ( toto$ || toto ) path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" file$ = path$ + "track01.wav" … comme dans l'exemple que l'on utilise dans notre script Cédric Gendrot - TAL SLOW ILPGA
119
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice6 Cédric Gendrot - TAL SLOW ILPGA
120
Cédric Gendrot - TAL SLOW 5 - 2003-2004 - ILPGA
exercice 6 Terminez l'exercice …. analysez la Fo, la durée, l’intensité et les valeurs des 3 premiers formants de tous les [a] de ce fichier et affichez le résultat dans un fichier Excel (présentation libre… mais soignée!). consignes : prenez deux types de valeurs une au milieu de chaque [a] …il faudra déterminer ce milieu grâce aux valeurs de début et de fin des différents [a]. l ’autre sera une valeur moyenne calculée sur toute la durée de chaque [a] Cédric Gendrot - TAL SLOW ILPGA
121
Les bonnes habitudes de programmation
Le script ici fonctionne ! … … mais n'est pas très "efficace" en termes de programmation perte de temps ( :-) ! ) peu évolutif Cédric Gendrot - TAL SLOW ILPGA
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.