# This script extracts voiced intervals form a Sound object. # First the script generates a Pitch object and a TextGrid object from the selected # Sound object. In the TextGrid object voiced and unvoiced sound intervals # are delimited and marked by V and U, respectively. Next, on the basis of the voicing # information in the TextGrid object the script extracts the voiced sound intervals # from the selected Sound object, and finally it concatenates them into a new Sound object # from which the user may generate other objects, eg. a Spectrum object and/or # an LTAS object. # 20020423 John Tøndering, slightly modified Niels Reinholt Petersen # specify parameters for To Pitch (ac) and To TextGrid (vuv) form From Sound to Voiced sound comment Specify arguments for "To Pitch (ac)" - consult Help if needed boolean Pitch_object_allready_exist_and_no_changes_needed comment Finding the candidates positive Time_step 0.01 positive Minimum_pitch 65 positive Max_number_of_candidates 15 boolean Very_accurate comment Finding a path positive Silence_threshold 0.03 positive Voicing_threshold 0.7 positive Octave_cost 0.01 positive Octave_jump_cost 0.35 positive Voiced_unvoiced_cost 0.14 positive Maximum_pitch 400 comment Specify arguments for "To TextGrid (vuv)" - consult Help if needed positive Maximum_period 0.02 positive Mean_period 0.01 endform name$ = selected$("Sound") # extract pitch if very_accurate = 1 very_accurate$ = "yes" else very_accurate$ = "no" endif if pitch_object_allready_exist_and_no_changes_needed = 0 To Pitch (ac)... time_step minimum_pitch max_number_of_candidates very_accurate$ silence_threshold voicing_threshold octave_cost octave_jump_cost voiced_unvoiced_cost maximum_pitch endif # delimit and mark voiced and unvoiced intervals select Sound 'name$' plus Pitch 'name$' To PointProcess To TextGrid (vuv)... maximum_period mean_period # extract voiced intervals into one Sound object per interval and concatenate # these Sound object into one Sound object select Sound 'name$' plus TextGrid 'name$' Extract intervals... 1 no V numberOfSelectedSounds = numberOfSelected ("Sound") Concatenate # remove the one interval Sound objects for i from 1 to 'numberOfSelectedSounds' slet_fil$ = "'name$'_V_'i'" select Sound 'slet_fil$' Remove endfor nytnavn$ = "'name$'_voiced" select Sound chain Rename... 'nytnavn$' select PointProcess 'name$' Remove