form 提取时长基频
comment 输入文件所在的目录(包括声音文件和标注文件):
text read_path E:\L2-ARCTIC corpus (v3.0)\data
comment 输入保存结果的路径
text save_path E:\L2-ARCTIC corpus (v3.0)\data\result.txt
comment 输入音段层:
positive phon_tier 2
comment 输入单词层:
positive word_tier 1
endform
if right$(read_path$, 1) = "\"
read_path$ = read_path$ - "\"
endif
deleteFile: save_path$
appendFileLine: save_path$, "文件名称" + tab$ + "音素" +tab$ + "时长" + tab$ + "所在词" + tab$ + "所在词时长" + tab$ + "共振峰F1" + tab$ + "共振峰F2"
Create Strings as file list: "fileList", read_path$ + "\*.TextGrid"
numberOfFiles = Get number of strings
for iFile from 1 to numberOfFiles
selectObject: "Strings fileList"
fileName$ = Get string: iFile
simpleName$ = fileName$ - ".TextGrid"
textGridFileName$ = read_path$ + "\" + simpleName$ + ".TextGrid"
wavFileName$ = read_path$ + "\" + simpleName$ + ".wav"
Read from file: textGridFileName$
Read from file: wavFileName$
# Time step,0.00625和0结果一样 Maximum forman,男5000 女5500
To Formant (burg): 0, 5, 5000, 0.025, 50
selectObject: "TextGrid " + simpleName$
numberOfIntervals = Get number of intervals: phon_tier
for iInterval from 1 to numberOfIntervals
selectObject: "TextGrid " + simpleName$
sTime = Get start point: phon_tier, iInterval
eTime = Get end point: phon_tier, iInterval
duration = eTime-sTime
labelOfInterval$ = Get label of interval: phon_tier, iInterval
intervalWordTier = Get interval at time: word_tier, sTime
sTimeWord = Get start point: word_tier, intervalWordTier
eTimeWord = Get end point: word_tier, intervalWordTier
durationWord = eTimeWord - sTimeWord
labelOfIntervalWord$ = Get label of interval: word_tier, intervalWordTier
output$ = simpleName$ + tab$ + labelOfInterval$ + tab$ + fixed$(duration, 3) + tab$ + labelOfIntervalWord$ + tab$ + fixed$(durationWord, 3) + tab$
selectObject: "Formant " + simpleName$
f1 = Get mean: 1, sTime, eTime, "Hertz"
f2 = Get mean: 2, sTime, eTime, "Hertz"
output$ = output$ + fixed$(f1, 0) + tab$ + fixed$(f2, 0)
appendFileLine: save_path$, output$
endfor
selectObject: "TextGrid " + simpleName$
Remove
selectObject: "Sound " + simpleName$
Remove
selectObject: "Formant " + simpleName$
Remove
endfor
selectObject: "Strings fileList"
Remove
exit 脚本运行结束!