# This script will calculate the durations of all labeled segments in all TextGrid objects. # The results will be save in a text file, each line containing the label text and the # duration of the corresponding segment.. # # This script is distributed under the GNU General Public License. # Copyright 12.3.2002 Mietta Lennes # Revised by Qibin Ran, 2012-12-10. # ask the user for the directory, tier number and name of saved file: form Calculate durations of labeled segments comment Where are your wav/TextGridfiles? text openpath 请在此输入wav和TextGrid文件的地址\ comment Which tier of the TextGrid object would you like to analyse? integer Tier 1 comment Where do you want to save the results? text textfile durations.xls endform Create Strings as file list... fileList 'openpath$'*.TextGrid numberOfFiles=Get number of strings for ifile from 1 to numberOfFiles select Strings fileList fileName$=Get string... 'ifile' Read from file... 'fileName$' # check how many intervals there are in the selected tier: numberOfIntervals = Get number of intervals... tier # loop through all the intervals for interval from 1 to numberOfIntervals label$ = Get label of interval... tier interval # if the interval has some text as a label, then calculate the duration. if label$ <> "" start = Get starting point... tier interval end = Get end point... tier interval duration = (end - start) *1000 # append the label and the duration to the end of the text file, separated with a tab: resultline$ = "'label$' 'duration''newline$'" fileappend "'textfile$'" 'resultline$' endif endfor endfor select all Remove exit 该文件夹所有TextGrid的时长已经提取!