######################################################## # # NAME: pp_show_series10.psc # # INPUT: - soundfile (aiff) # - TextGrid with segmentation # - Pitch object (checked for errors) # - each of these for each item; names of items without extension in text file. # # USAGE: # On the basis of checked tracks, the scripts produces a text file with an F0 values # for each of 8 points of measurement. Takes voicing at edges into consideration. # # BY: Bert Remijsen # LAST CHANGED: 01/10/2004 # # ######################################################## form Produce data for normalized f0 tracks comment filename of inputfilelist (without extension .txt): text listfile serie10 comment inputlist and files are located in: text inputdir C:\bert\confs\2004_leipzig\testdataf0_plot comment write output to the following file: text outputfile C:\bert\confs\2004_leipzig\testdataf0_plot\show.txt endform Read Strings from raw text file... 'inputdir$'\'listfile$'.txt end = Get number of strings for fileteller from 1 to 'end' select Strings 'listfile$' file$ = Get string... 'fileteller' echo Processing 'file$', file 'fileteller' out of a total of 'end' Read from file... 'inputdir$'\'file$'.aiff Read from file... 'inputdir$'\'file$'.Pitch Read from file... 'inputdir$'\'file$'.TextGrid select Pitch 'file$' Interpolate Rename... 'file$'_inter call domain call domaino1 'o1orib' call domainv2 'v2orie' call collecto1 'o1b' 'o1e' call collectv1 'v1b' 'v1e' call collecto2 'o2b' 'o2e' call collectv2 'v2b' 'v2e' # remove files select all minus Strings 'listfile$' Remove endfor select Strings 'listfile$' Remove procedure domain # domain for duration measurements select TextGrid 'file$' nlabels = Get number of intervals... 1 for label from 1 to 'nlabels' labelx$ = Get label of interval... 1 'label' if (labelx$ = "o1") o1orib = Get starting point... 1 'label' o1e = Get end point... 1 'label' endif if (labelx$ = "v1") v1b = Get starting point... 1 'label' v1e = Get end point... 1 'label' endif if (labelx$ = "o2") o2b = Get starting point... 1 'label' o2e = Get end point... 1 'label' endif if (labelx$ = "v2") v2b = Get starting point... 1 'label' v2orie = Get end point... 1 'label' endif endfor endproc #domain for pitch measurement o1b procedure domaino1 o1orib select Pitch 'file$'_inter o1bfr = Get frame from time... 'o1orib' vlago1b = 0 repeat frwaardeo1b = Get value in frame... 'o1bfr' Hertz if frwaardeo1b != undefined o1b = Get time from frame... 'o1bfr' echo o1b: 'o1b' vlago1b = 1 endif o1bfr = 'o1bfr' + 1 until 'vlago1b' = 1 bdiffo1b = 'o1orib' - 'o1b' endproc #domain for pitch measurement v2e procedure domainv2 v2orie select Pitch 'file$'_inter v2efr = Get frame from time... 'v2orie' vlagv2e = 0 repeat frwaardev2e = Get value in frame... 'v2efr' Hertz if frwaardev2e != undefined v2e = Get time from frame... 'v2efr' echo v2e: 'v2e' vlagv2e = 1 endif v2efr = 'v2efr' - 1 until 'vlagv2e' = 1 ediffv2 = 'v2orie' - 'v2e' endproc procedure collecto1 eltbego1 eltendo1 select Pitch 'file$'_inter deltao1 = 'eltendo1' - 'eltbego1' stepo1 = 'deltao1'/7 timexo1 = 'eltbego1' for stepxo1 from 1 to 8 valo1 = Get value at time... 'timexo1' Hertz Linear erbvalo1 = hertzToErb ('valo1') if ('stepxo1' < 8) echo 'file$' 'stepxo1' 'timexo1' 'valo1' 'erbvalo1' 'eltbego1' 'eltendo1' 'stepo1' fappendinfo 'outputfile$' endif timexo1 = 'timexo1'+'stepo1' endfor endproc procedure collectv1 eltbegv1 eltendv1 select Pitch 'file$'_inter deltav1 = 'eltendv1' - 'eltbegv1' stepv1 = 'deltav1'/7 timexv1 = 'eltbegv1' for stepxv1 from 8 to 15 valv1 = Get value at time... 'timexv1' Hertz Linear erbvalv1 = hertzToErb ('valv1') echo 'file$' 'stepxv1' 'timexv1' 'valv1' 'erbvalv1' 'eltbegv1' 'eltendv1' 'stepv1' fappendinfo 'outputfile$' timexv1 = 'timexv1'+'stepv1' endfor endproc procedure collecto2 eltbego2 eltendo2 select Pitch 'file$'_inter deltao2 = 'eltendo2' - 'eltbego2' stepo2 = 'deltao2'/7 timexo2 = 'eltbego2' for stepxo2 from 15 to 22 valo2 = Get value at time... 'timexo2' Hertz Linear erbvalo2 = hertzToErb ('valo2') if (('stepxo2' > 15) and ('stepxo2' < 22)) echo 'file$' 'stepxo2' 'timexo2' 'valo2' 'erbvalo2' 'eltbego2' 'eltendo2' 'stepo2' fappendinfo 'outputfile$' endif timexo2 = 'timexo2'+'stepo2' endfor endproc procedure collectv2 eltbegv2 eltendv2 select Pitch 'file$'_inter deltav2 = 'eltendv2' - 'eltbegv2' stepv2 = 'deltav2'/7 timexv2 = 'eltbegv2' for stepxv2 from 22 to 29 valv2 = Get value at time... 'timexv2' Hertz Linear erbvalv2 = hertzToErb ('valv2') echo 'file$' 'stepxv2' 'timexv2' 'valv2' 'erbvalv2' 'eltbegv2' 'eltendv2' 'stepv2' fappendinfo 'outputfile$' timexv2 = 'timexv2'+'stepv2' endfor endproc