Praat脚本-004 | 替换标注内容
目录
- 引题
- 代码段
- 运行脚本
- 格式要求
- 替换实例一
- 替换实例二
- 替换实例三
- 运行脚本
- 获取脚本
- 关注
- 版权说明
引题
我们在做音频标注的过程中,经常遇到需要批量修改某个地方,比如最开始标的发音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
之后,选择Praat
,Open Praat Script...
,打开这个脚本,然后在脚本窗口选择Run
,Run
,或者直接使用快捷键Ctrl+R
,在弹出来的对话框里,设置以下几个地方,替换只对TextGrid有效,这里无需关心是否有wav目录:
- 设置你的
原始TextGrid
所在的目录
,这里因为是在Windows系统
,所以路径斜线是\
,如果你是在Mac
使用,将这个斜线方向反一下就好。也可以用这样的路径old_TextGrid\
,取决于你的数据所在的目录; - 接着设置
目标TextGrid
所在的目录
,new_TextGrid\
,同上;\ - 设置刚才你制作的替换字符所在的文本文件路径,这里就是同级目录下的
replace_list.txt
;这些目录都可以设置为绝对路径,如D:\目录名称\repalce_list.txt
这样。 - 设置目标层级,
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、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。
Praat脚本-004 | 替换标注内容相关推荐
- Praat脚本-013 | 无需标注自动切除音频首尾静音段
目录 引题 操作方法 运行脚本 获取脚本 关注 版权说明 引题 在录音完成或者从别处得到一批音频之后,在对音频进行标注之间,除了以前提到的需要查看噪声情况,查看音量大小,另外一个问题就是需要查看每一句 ...
- 【内容替换】shell脚本批量替换文件内容(替换ip及其他配置文件)
0.介绍 1.替换某个文件夹下所有文件及其子文件的内容 2.主要命令:sed -i "s/111/eee/g" $1"/"$file(将文件中所有的111替换为 ...
- Praat脚本-000 | 实用的Praat脚本总索引
该项目包括一些Praat常用脚本,并结合简单实例说明如何使用这些脚本,每一个独立的目录里面有示例文件以及结果文件,适用于已经对Praat基本操作有些了解,对时长,基频,共振峰等基本声学参数有所了解的初 ...
- Praat脚本-033 | Praat脚本裁剪归整句中停顿
目录 引题 方案介绍 第一种 存在标注 第二种 没有标注 补充说明 获取脚本 版权说明 引题 作者曾经分享过一个脚本,是可以处理一个音频中首尾的静音段,Praat脚本-013 | 无需标注自动切除音频 ...
- Praat脚本-017 |拆分已经标注好的音素为两个音素
目录 引题 获取脚本 关注 版权说明 引题 在标注过程中,一批任务标完之后,可能对一些音素重新进行了定义,这时候可能会需要批量将一个音素拆分成两个音素,比如对于双元音,au,拆分成a和u,当然扩展开来 ...
- Praat脚本-029 | 一种更有效的校对音频内容的方案
目录 引题 具体步骤 1.字音校对 数据说明 生成TextGrid 校对过程 提取数据 2.语音转写 数据说明 生成TextGrid 转写过程 提取数据 获取脚本 关注 版权说明 引题 在语音标注工作 ...
- Praat脚本-005 | 标注文件批量增加层级
目录 引题 运行脚本 第一种情况:顺序增加层级 第二种情况:顺序增加不同类型层级 第三种情况:指定位置增加层级 获取脚本 关注 版权说明 引题 这个脚本的出发点是能够实现在已有标注TextGrid基础 ...
- Praat脚本-026 | 谈谈自动标注这点儿事(2)
第一篇为大家推荐了第一种级别的"自动标注",其实相当于协助大家把一些需要的信息增加进去. Praat脚本-023 | 谈谈自动标注这点儿事(1) 第一,傻乎乎的自动标注, 第二,使 ...
- Praat脚本-037 | 批量把标注TextGrid生成韵律文本
目录 引题 方案一 方案二 方案三 获取脚本 关注 版权说明 引题 Praat是一种非常出色.轻便.开源免费的标注工具,它的最主要用途是标注,即对语音信号中的一些特征.信息进行标注,保存为TextGr ...
最新文章
- Tabhost嵌套以及Tab中多个Activity跳转的实现
- httppost数据上传 unity_Unity中国增强版发布
- 增强for循环、Map接口遍历、可变參数方法
- CSP-S 2021 退役记
- java实现九九乘法表的输出
- LeetCode 15 二进制中1的个数
- 从BIOS自检报警声判断电脑故障
- how tomcat works(第15章: Digester)
- flow.php 漏洞,Ecshop 3.0的flow.php文件SQL注射漏洞修复
- 代码雨代码源复制_p#39;y代码雨怎么做
- multisim红绿灯元器件在哪里_实验一:Multisim交通灯仿真.ppt
- html插入swf自动播放,html嵌入播放器,flv视频播放器 Flvplayer.swf 可自动播放参数说明...
- Office2007注册码
- directx安装后找不到_如何下载,安装,更新到最新的DirectX
- 大道至简之四:透过现象看本质
- 快速生成不重复的卡号
- Python之计算π值
- 大数定理与中心极限定理
- Unity FACEGOOD Audio2Face 通过音频驱动面部BlendShape
- apple music学生订阅续期认证网页打不开问题解决办法
热门文章
- 送给前端的你,推荐几篇前端汇总文章。(来自知乎专栏)
- 【LTE基础知识】GUTI(Globally Unique Temporary UE Identity)分配
- java计算出现负数吗,请问一个计算器的有关问题,怎么实现负数计算
- UE4 无需切线空间应用凹凸贴图
- three.js 凹凸贴图
- Java 年龄与疾病
- Paypal REST API Java 版 PC端商城支付接口对接。
- 世界最大的数字优惠券​公司
- 2018-2019-2 20189206 《密码与安全新技术专题》 第六次作业
- 苹果手机屏幕上有白点怎么办