pensez à nettoyer vos scripts !

Slides:



Advertisements
Présentations similaires
Cédric Gendrot - TAL SLOW ILPGA
Advertisements

Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Chapitre 4 la représentation des nombres. Chapitre 4 : La représentation des nombres 1 - Introduction 1.1 – Notion de mot 2 - La représentation des entiers.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
Exercice : Soient les fonctions définies sur N ( ensemble des entiers naturels donc positifs ) par : f(x) = - 2x + 6 ; g(x) = x + 1 ; k(x) = la plus grande.
Semaine 01 La programmation créative Introduction.
UE2 - M22 Licence acoustique
1ère étape : répondre aux questions en 2 temps
Ajouter le code dans une page html
Exploitation de logiciels :
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
OUTILS D’AIDES AUX SYNDICATS
Scratch un outil au service de la technologie
PROGRAMMER AVEC PRAAT.
Pointeurs et langage C.
ED 268 I.L.P.G.A. PRAAT.
AIDE A L’UTILISATION DU LOGICIEL LATISPRO
Javadoc et débogueur Semaine 03 Version A17.
Collecte de données CAPI
Ajouter le code dans une page html
Synthèse par di-phones
Précision d'une mesure et chiffres significatifs
Algorithme de Dichotomie
Arguments de la ligne de commande
Un Algorithme , c'est Quoi ?
Algorithme de Dichotomie
Après 3 séances Tous les binômes ont commencé l'exercice « Formes »
Excel (et toute l’informatique) :
Exercice 4 : Soit la suite (un) définie par u0 = 0 et un+1 = 2 un + 1
4.3 Estimation d’une proportion
Sauvegarde système sous WINDOWS 10
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Cours N°9: Algorithmiques Les Tableaux 1
Les tableaux.
4.2 Estimation d’une moyenne
Manipulation D’Une Base De Données
Programmation en C++ C++ de base
Cours N°10: Algorithmiques Tableaux - Matrices
Formules de calculs et Fonctions. Structure des formules de calcul Commencez toujours votre calcul par le signe =, ensuite sans laisser d’espaces, placez.
Les jeux coopératifs Collège Amfipagiton Alcamo, Italie Mars 2015
Exercice : le jeu. Vous devez concevoir l’algorithme permettant de jouer avec votre calculatrice : elle détermine au hasard un nombre caché entier entre.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
D Copyright © 2004, Oracle. Tous droits réservés. Utiliser SQL*Plus.
Guide n° 3 Formation initiale
Choisi ton entrainement
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Les classes et les objets
P LAMBOLEZ Partie maths V GILLOT Partie anglais
Reconstitution de paléoclimats grâce à la palynologie:
RESERVATION DES TERRAINS EN LIGNE SOUS via
Exercice : Soient les fonctions définies sur N ( ensemble des entiers naturels donc positifs ) par : f(x) = - 2x + 6 ; g(x) = x + 1 ; k(x) = la plus.
Position, dispersion, forme
Flowchart Itération Cours 04.
Principes de programmation (suite)
PROGRAMMATION ET ENSEIGNEMENT
Programmation Scratch
Tableau de bord d’un système de recommandation
Python Nicolas THIBAULT
Journée 2ème: introduction
Enchantonslecole.fr.
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
Type Tableau Partie 1 : Vecteurs
Module 23 séance 1.
Transcription de la présentation:

pensez à nettoyer vos scripts ! To Formant (burg)... 0.01 5 5500 0.025 50

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"

É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

Comment afficher le résultat…? 2 possibilités dans la fenêtre "Info" (+ simple) dans un fichier résultat que l'on créé (+ complet)

Dans la fenêtre "Info" La commande : print / printline ….c'est vu !

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...

# 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")

# 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")

# 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")

# 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")

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

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!

exercice5

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)

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... 0.01 75 600 pitch = selected("Pitch") toto = Get value at time... 1.08 Hertz Linear fileappend 'outputfile$' 'toto' 'newline$'

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"

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

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

Les seules fonctions qui vont nous intéresser ici

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... 1 2 Get label of interval... 1 2 ...Mais on ne prend que ce qui est intéressant!

d'abord prévoir d'insérer les résultats dans des variables ! Que modifier…? Get number of intervals... 1 Get starting point... 1 2 Get ending point… 1 2 Get label of interval... 1 2 nb_intervalles = Get number of intervals... 1 beg_phoneme = Get starting point... 1 2 fin_phoneme = Get ending point… 1 2 phoneme$ = Get label of interval... 1 2 d'abord prévoir d'insérer les résultats dans des variables !

Le raisonnement !

L’intervalle est il nommé « a » ? si oui, faire les calculs!

2 notions indispensables !!! les boucles de répétition for ………….. endfor Les structures de condition if …………… endif

Commençons par un exercice simple : énumère n de 1 à 10 si n est égal à 5 alors fais une pause….

Littéralement…….répétition Du 1er intervalle jusqu'au dernier ("for") prend l'étiquette (quel phonème?) (fin des instructions) ("endfor ")

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 "

… 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

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

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

… 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

exercice6

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]

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

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

Pourquoi ? En fait, le fichier Excel

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...

Il faut stocker cette information… plutôt que de la demander à chaque fois!

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

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

L’intervalle est il nommé « a » si oui, stocker l’info!

Quelles sont les valeurs temporelles de chacun de ces intervalles Quelles sont les valeurs temporelles de chacun de ces intervalles? (début-fin)