Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
pensez à nettoyer vos scripts !
To Formant (burg)
2
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"
3
É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
4
Comment afficher le résultat…?
2 possibilités dans la fenêtre "Info" (+ simple) dans un fichier résultat que l'on créé (+ complet)
5
Dans la fenêtre "Info" La commande : print / printline ….c'est vu !
6
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...
7
# chemin et nom des fichiers à ouvrir
path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" file$ = path$ + "track02.wav" file2$= path$ + "track02.TextGrid" # ouverture des fichiers nommés son$ et grille$ Read from file... 'file$' son = selected ("Sound") Read from file... 'file2$' grille = selected ("TextGrid")
8
# chemin et nom des fichiers à ouvrir
path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" file$ = path$ + "track02.wav" file2$= path$ + "track02.TextGrid" # ouverture des fichiers nommés son$ et grille$ Read from file... 'file$' son = selected ("Sound") Read from file... 'file2$' grille = selected ("TextGrid")
9
# chemin et nom des fichiers à ouvrir
path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" file$ = path$ + "track02.wav" file2$= path$ + "track02.TextGrid" # ouverture des fichiers nommés son$ et grille$ Read from file... 'file$' son = selected ("Sound") Read from file... 'file2$' grille = selected ("TextGrid")
10
# chemin et nom des fichiers à ouvrir
path$ = "C:\WINDOWS\Bureau\cours_prog_praat\" file$ = path$ + "track02.wav" file2$= path$ + "track02.TextGrid" # ouverture des fichiers nommés son$ et grille$ Read from file... 'file$' son = selected ("Sound") Read from file... 'file2$' grille = selected ("TextGrid")
11
outputfile$= path$ + "resultats.xls"
fileappend 'outputfile$' Fo 'tab$' formant1 'tab$' formant2 'tab$' … sans '….' pour insérer des annotations (très utile!!!) fileappend 'outputfile$' 'toto:0' 'tab$' 'f1:0' 'tab$' 'f2:0' 'tab$' … avec '….' pour écrire le contenu des variables
12
soit ... Notez qu'on peut/doit insérer... 'tab$' 'newline$'
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!
13
exercice5
14
exercice5 1- à 2.9 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 votre dossier 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)
15
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$'
16
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"
17
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
18
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
19
Les seules fonctions qui
vont nous intéresser ici
23
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!
24
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 !
25
Le raisonnement !
26
L’intervalle est il nommé « a » ? si oui, faire les calculs!
27
2 notions indispensables !!!
les boucles de répétition for ………….. endfor Les structures de condition if …………… endif
28
Commençons par un exercice simple :
énumère n de 1 à 10 si n est égal à 5 alors fais une pause….
29
Littéralement…….répétition
Du 1er intervalle jusqu'au dernier ("for") prend l'étiquette (quel phonème?) (fin des instructions) ("endfor ")
30
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 "
31
… 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 i fin_phoneme = Get end point... 1 i 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 … du 1er au dernier intervalle …. fin
32
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
33
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
34
… 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
35
exercice6
36
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]
37
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
38
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
39
Pourquoi ? En fait, le fichier Excel
41
Une fois que l'on sait… On pourrait faire la chose suivante
lancer une analyse de Fo, de formants, d’intensité parmi tous les intervalles repérez les bons et prendre les valeurs lancer une analyse de formants et ainsi de suite...
42
Il faut stocker cette information…
plutôt que de la demander à chaque fois!
43
Comment faire? 1- passer en revue tous les intervalles de la grille
il faut connaître le nombre d'intervalles passer du premier au dernier avec une boucle prendre la "valeur" de chaque intervalle 2- si l'intervalle est le bon incrémenter le décompte (initialisé à 0) enregistrer les "bonnes" valeurs
44
Une subtilité noiist = Get number of intervals... 1 nos = 0
for j from 1 to noiist syllable$ = Get label of interval... 1 j if (syllable$ <> "a" nos = nos + 1 syllable'nos' = j endif endfor for l from 1 to nos current_syllable = syllable'l' label$ = Get label of interval... 1 current_syllable start_syllable = Get starting point... 1 current_syllable end_syllable = Get end point... 1 current_syllable syllable_duration = round((end_syllable - start_syllable)*1000) fileappend "'outputfile1$'" ('label$') 'tab$' 'syllable_duration' 'newline$' endproc
45
L’intervalle est il nommé « a » si oui, stocker l’info!
46
Quelles sont les valeurs temporelles de chacun de ces intervalles
Quelles sont les valeurs temporelles de chacun de ces intervalles? (début-fin)
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.