Praat替换标注内容

在学习过程中,遇到一些标注现象,在标注的时候,标注员不方便记住大量的IPA等语音描写符号,倾向于使用英语单词或者汉语拼音的原始符号,但是在学术写作的过程中,或者 在学术教学中,这些符号不能更好的描述语音单元,统一的使用IPA符号是比较好的选择。这样有一个更好的办法就是在标注时使用普通标注,使用下面的脚本,把音段层的标注全部替换为IPA符号。


############################################################
### By Shaopf 2014年4月3日 [email protected]
### 提取停顿时长及次数
### version Praat 5.3.63 
############################################################

form Information
	comment 输入TextGrid文件所在的目录:
	text read_path D:\txt
	comment 映射列表文件所在的目录
	text list_path D:\list.txt
	comment 在此输入音段层:
	positive reference_tier 2
	comment 在此输入修改后的TextGrid保存位置:
	text save_path D:\txt1
endform
path$=read_path$
reference_tier=reference_tier

createDirectory:save_path$

Read Table from tab-separated file: list_path$
numOfTableRows=Get number of rows
for nt from 1 to numOfTableRows
	select Table list
	tableOld'nt'$=Get value: nt, "old"
	tableNew'nt'$=Get value: nt, "new"
endfor
select Table list
Remove

Create Strings as file list... fileList 'path$'\*.TextGrid
numberOfFiels=Get number of strings
for i from 1 to numberOfFiels
	select Strings fileList
	fileName$=Get string... 'i'
	simpleName$=fileName$-".TextGrid"
	Read from file... 'path$'\'fileName$'
	numberOfIntervals=Get number of intervals... 'reference_tier'
	for j from 1 to numberOfIntervals
		select TextGrid 'simpleName$'
		sTime=Get start point... 'reference_tier' 'j'
		eTime=Get end point... 'reference_tier' 'j'
		duration=eTime-sTime
		labelOfInterval$=Get label of interval... 'reference_tier' 'j'
		for nt from 1 to numOfTableRows
		temp2$=tableOld'nt'$
		if labelOfInterval$=temp2$
			newValue$=tableNew'nt'$
			Set interval text: reference_tier, j, newValue$
		endif
		endfor
	endfor
	select TextGrid 'simpleName$'
	save_total_path$=save_path$+"\"+fileName$
	Save as text file: save_total_path$
	Remove
endfor
select Strings fileList
Remove
exit 脚本运行结束! Congratulations! -Shaopf

在这个脚本中,注意使用的是Praat5.3.63,有一些命令语句发生了变化。

你可能感兴趣的:(脚本,Praat)