J'ai un script praat qui extrait des informations formants d'un dossier de fichiers Wave:Praat: Obtenez l'intensité formants
clearinfo
min_f0 = 75
max_f0 = 350
directory$ = "./soundfiles/"
outputDir$ = "./test/"
strings = Create Strings as file list: "list", directory$ + "/*.WAV"
numberOfFiles = Get number of strings
for ifile to numberOfFiles
select Strings list
filename$ = Get string... ifile
Read from file... 'directory$''filename$'
soundname$ = selected$ ("Sound", 1)
outputFileName$ = outputDir$ + soundname$ + ".f0123"
appendInfoLine: outputFileName$
select Sound 'soundname$'
formant = To Formant (burg): 0, 4, 5000, 0.025, 50
formantStep = Get time step
selectObject: formant
table = Down to Table: "no", "yes", 6, "yes", 3, "yes", 3, "yes"
numberOfRows = Get number of rows
select Sound 'soundname$'
pitch = To Pitch: 0, min_f0, max_f0
selectObject: table
Append column: "Pitch"
for step to numberOfRows
selectObject: table
t = Get value: step, "time(s)"
selectObject: pitch
pitchValue = Get value at time: t, "Hertz", "Nearest"
selectObject: table
Set numeric value: step, "Pitch", pitchValue
endfor
#export to csv
selectObject: table
Save as comma-separated file: outputFileName$
removeObject(table)
select all
minus Strings list
Remove
endfor
select all
Remove
exit
Et il génère la sortie suivante:
time(s),intensity,nformants,F1(Hz),B1(Hz),F2(Hz),B2(Hz),F3(Hz),B3(Hz),F4(Hz),B4(Hz),Pitch
0.025370,0.000007,3,213.115,14.053,2385.911,791.475,3622.099,677.605,--undefined--,--undefined--,--undefined--
0.031620,0.000007,3,208.843,15.034,2487.710,687.736,3818.027,645.184,--undefined--,--undefined--,197.5315925472943
...
Cela fonctionne très bien pour ce que je besoin, mais y a-t-il un moyen d'obtenir l'intensité de chaque formant? À l'heure actuelle, je n'ai qu'une seule estimation de l'intensité.
Vous devez obtenir la valeur du spectrogramme au point temps-fréquence correspondant. Le langage de script Praat est si douloureux, donc pas de véritable exemple;) –
Par Intensité de chaque formant, vous voulez dire l'intensité à ce moment particulier, ou cette fréquence particulière ,? et avez-vous trouvé une solution jusqu'à présent? –
zeeshan, je peux obtenir l'information formant en fréquence pour un ensemble donné de bacs de temps. Ce que je veux c'est, pour chaque bin, l'intensité à cette fréquence et à cette unité de temps. Je n'ai pas encore trouvé de solution. Merci. –