Praat脚本-004 | 替换标注内容

本文介绍了如何使用Praat脚本进行批量替换音频标注中的特定字符,例如将停顿标记'sil'替换为'##',或将元音、辅音转换为C、V格式,甚至将普通字母标注转为IPA标注。文章详细讲解了脚本的运行过程,包括代码段解析、脚本格式要求、替换实例以及如何运行和获取脚本。适用于需要高效修改大量音频标注数据的场景。
摘要由CSDN通过智能技术生成

引题

我们在做音频标注的过程中,经常遇到需要批量修改某个地方,比如最开始标的发音aa,后来对数据整体的认识变了,想把所有的aa都变成读音ae;再比如,我们标注了所有的元音辅音等,想利用节奏CV的计算方式,将所标的数据全部批量转化为C, V的格式;还有我们在认真标完了之后,由于不可抗拒的原因,要将所有数据以指定的体系标注,比如你原来就是用普通的字母标注,这个不可抗拒的原因要求你以IPA的形式标注。。。这个时候我们就要用到批量替换的操作。

如果你是在标注的过程中遇到这类问题,有一个简便的操作,可以将你标注这个文件内的所有符合条件的替换一下。选择一个TextGrid文件之后,点击Modify,再点击Modify interval tier, 再点击Replace interval texts...,这时候会出现一个对话框。

在这里插入图片描述
在这个对话框里可以设置替换第几层,从第几个interval到第几个interval,替换的原始字符是什么,要替换成什么字符,以及还可以利用正则表达式。功能还是很丰富的。这个适合于替换一个文件,如果要批量替换,还是要把这个命令写成脚本的形式。
在这里插入图片描述

代码段

代码实现原理很简单,通过遍历标注文件的指定层,遇到和原始值相同的位置,将这个位置替换成新的值就可以了。

	...
	if intervalName$ = curOldContent$
		Set interval text: reference_tier, interval, curNewContent$
	endif
	...

运行脚本

格式要求

首先要制作一个需要替换的内容的文本文件 。由于小编在脚本里写的是读取Tab隔开的文本,所以你的文本文件也要遵循这个要求。

old	new
sil	##
sp1	sp

注意old new这里指的是一个表格的表头,两列之间必须是TAB隔开的。表示是替换前的字符和替换后的字符。如何制作TAB隔开的文本文件?当然手工制作也可以,也可以利用Excel表格
在这里插入图片描述
这样制作格式更规整,不容易出错,而且易于查找,在Excel里制作完成之后,直接拷贝到记事本里,保存为文本文件就可以了。如果怕出错的,也可以直接拷贝覆盖到小编在脚本目录里放的示例文件replace_list.txt文件里。

以上面提到的三个话题为例,如何制作这个文件呢?

替换实例一

第一:简单替换,举例,就是要把所有数据目录里的标注文件的sil这个停顿标记替换为##,那么制作成这样就可以了,请不要担心这里面有多余的字符,这个没有关系,脚本发现在 old这部分出现的字符才替换,其它一概忽略。

old	new
sil	##
sp1	sp

替换前:
在这里插入图片描述
替换之后:
在这里插入图片描述

替换实例二

第二:想根据自己标注的元音辅音将内容统一替换为C,V标记。如何制作这个文件?相信你很容易理解吧,把你所标注的内容提取出来(看到这里准备手工去操作的可以去面壁了,请参考Praat脚本 | 基本的信息统计),一个一个的设置为你需要的C,V标记,统一替换就好了。

old	new
k	C
aa	V
p	C
u	V
s	C
uai	V
...

替换前:
在这里插入图片描述
替换之后,小编只写了几个例子,有兴趣的可以自己写全:
在这里插入图片描述

替换实例三

第三,有很多标注者很关心如何批量转化IPA标注。这个其实和上面是类似的,首先你要统计出自己标注中用了多少个标记符号,然后一一写出需要转化的新符号,比如这里随便设置了一些IPA符号,这些IPA符号在Praat里是有专门的写法的。具体可参考帮助里的信息。

old	new
i	\ic
ei	\ef
a	\vt
uan	\ng
uen	\mj
p	\sh

替换前:
在这里插入图片描述
替换之后,请注意,这里只是小编为了显摆转化IPA符号,请忽略这些转化完的意义。
在这里插入图片描述

运行脚本

打开Praat之后,选择PraatOpen Praat Script...,打开这个脚本,然后在脚本窗口选择RunRun,或者直接使用快捷键Ctrl+R,在弹出来的对话框里,设置以下几个地方,替换只对TextGrid有效,这里无需关心是否有wav目录:

  1. 设置你的原始TextGrid所在的目录,这里因为是在Windows系统,所以路径斜线是\,如果你是在Mac使用,将这个斜线方向反一下就好。也可以用这样的路径old_TextGrid\,取决于你的数据所在的目录;
  2. 接着设置目标TextGrid所在的目录new_TextGrid\,同上;\
  3. 设置刚才你制作的替换字符所在的文本文件路径,这里就是同级目录下的replace_list.txt;这些目录都可以设置为绝对路径,如D:\目录名称\repalce_list.txt这样。
  4. 设置目标层级,reference tier就是你需要替换的内容在第几层,我们这里是第1层;

设置完毕,点击OK,运行脚本,结果可以到目标目录里查看。
在这里插入图片描述

获取脚本

https://github.com/feelins/Praat_Scripts

本站所有Praat脚本都可以在上述github的项目目录里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置github for windows在自己的电脑上通过git clone将代码下载到本机,这样的好处是可以跟主站及时更新代码。
不想费如此脑筋,可以通过点击如下图Code位置所示,下载整站的代码,可直接使用。
在这里插入图片描述

本文的代码是04-replace_labels\Replace_Intervals.praat。点进去之后,还有附带的示例文件,同学可练习使用。脚本里有我的邮箱,有任何问题都可以来信咨询。

关注

关于对本站脚本的使用咨询,以及功能修改,增加等,都可以扫QQ咨询群,私信群主。

在这里插入图片描述

版权说明

1、版权归本公众号“极地语音工作室”,原名“语音处理小站”所有;

2、未经本站或者作者允许, 不得任意转载本文内容,否则将视为侵权;

3、转载或者引用本文内容请注明来源及原作者;

4、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极地语音工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值