引题
在标注过程中,一批任务标完之后,可能对一些音素重新进行了定义,这时候可能会需要批量将一个音素拆分成两个音素,比如对于双元音,au
,拆分成a
和u
,当然扩展开来,也可以拆成多个音素,本脚本只讨论拆成两个音素的情况。音素被拆分成两个,在标注文件上,边界条也要同步体现,如果有大量的数据,手工完成自然费时费力,这个脚本可以批量进行拆分。对于拆分之后的时间点,是采用的原始音素的中间值,即在原来音素的时长中间点,增加一个边界条。
如图所示,拆分后,我们想达到这样的效果。
说明:该句样例来自开源的CMU
英语数据。标注的音素体系采用的sampa体系。
运行脚本之前,需要有已经标注好的数据,要进行哪些拆分,请制作一下如下的列表文件,该文件表头是old和new,第一列是原始音素,第二列是要拆分的,以+号隔开。
old new
eI e+I
3:r 3:+r
本文的代码下载地址见下文(获取脚本)是17-split_one_phoneme_into_two/Split_One_Phoneme_into_Two.praat
。脚本里有我的邮箱,有任何问题都可以来信咨询。
打开Praat
之后,选择Praat
,Open Praat Script...
,打开这个脚本,然后在脚本窗口选择Run
,Run
,或者直接使用快捷键Ctrl+R
,在弹出来的对话框里,设置以下几个地方,这里小编根据不同的情况分别加以说明。
脚本运行时,指定输入、输出目录,音素所在的层,以及上述列表文件的路径;
运行完成会在当前目录里生成一个log.txt,这里面记录了进行了拆分的音素所在的文件,位置;
cmu_us_arctic_slt_a0001.TextGrid,4,3:r->3:+r
cmu_us_arctic_slt_a0001.TextGrid,11,eI->e+I
cmu_us_arctic_slt_a0001.TextGrid,15,3:r->3:+r
cmu_us_arctic_slt_a0001.TextGrid,19,eI->e+I
cmu_us_arctic_slt_a0001.TextGrid,37,3:r->3:+r
获取脚本
https://github.com/feelins/Praat_Scripts
本站所有Praat脚本
都可以在上述github的项目目录
里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置github for windows
在自己的电脑上通过git clone
将代码下载到本机,这样的好处是可以跟主站及时更新代码。
不想费如此脑筋,可以通过点击如下图Code位置所示,下载整站的代码,可直接使用。
关注
关于对本站脚本的使用咨询,以及功能修改,增加等,都可以扫QQ咨询群,私信群主。
版权说明
1、版权归本公众号“极地语音工作室”,原名“语音处理小站”所有;
2、未经本站或者作者允许, 不得任意转载本文内容,否则将视为侵权;
3、转载或者引用本文内容请注明来源及原作者;
4、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。