############################################################ ### get_pitch.praat ### based on Jeff's get_formants.praat ### ### MEASURES PITCH VALUES FOR SEGMENTS IN A TEXTGRID ### SCRIPT ASSUMES YOU HAVE A TIER "TONES" ### THIS SCRIPT IS A WORK IN PROGRESS AND NEEDS ### A METHOD TO EXTRACT LONGER CONTOURS ### A WAY TO LABEL TOKENS (TEXTGRID TIER?) ### TCOG CALCULATION (NEED PITCH LISTING ACCESS) ############################################################ #PROMPT THE USER FOR INPUT form Measure pitch values for segments in a textgrid sentence sound_file myname positive Pitch_floor 200 positive Pitch_ceiling 600 positive Voicing_threshold 0.3 endform #DELETE THE OLD PITCH FILE IF IT EXISTS filedelete pitch_'sound_file$'.txt #SELECT THE SOUND AND FIND THE PITCH select Sound 'sound_file$' To Pitch (ac)... 0 'Pitch_floor' 15 "no" 0.03 'Voicing_threshold' 0.01 0.35 0.14 'Pitch_ceiling' #COUNT THE NUMBER OF INTERVALS IN THE TONES TIER OF THE TEXTGRID select TextGrid 'sound_file$' intervals = Get number of intervals... 1 #GO THROUGH THE TONE INTERVALS ONE BY ONE for i from 2 to intervals-1 select TextGrid 'sound_file$' tones$ = Get label of interval... 1 i #SEE IF THE INTERVAL LABEL IS A TONE if tones$ != "" and tones$ != "sp" #GET TIMES DURING THE TONE start = Get starting point... 1 i end = Get end point... 1 i quarter = start + (end-start) / 4 halfway = start + (end-start) / 2 three_quarters = start + (end-start) * 3 / 4 #IDENTIFY THE TONE j = Get interval at time... 2 halfway tone$ = Get label of interval... 2 j tone_start = Get starting point... 2 j tone_end = Get end point... 2 j #MEASURE F1 AND F2 AT THREE TIMES select Pitch 'sound_file$' p1 = Get value at time... 'quarter' Hertz Linear t1 = Get value at time... 'quarter' Hertz Linear p2 = Get value at time... 'halfway' Hertz Linear t2 = Get value at time... 'halfway' Hertz Linear p3 = Get value at time... 'three_quarters' Hertz Linear t3 = Get value at time... 'three_quarters' Hertz Linear #RECORD THE FORMANT MEASUREMENTS fileappend pitch_'sound_file$'.txt 'tone$','t1','p1','newline$' fileappend pitch_'sound_file$'.txt 'tone$','t2','p2','newline$' fileappend pitch_'sound_file$'.txt 'tone$','t3','p3','newline$' endif endfor select Pitch 'sound_file$' Remove