目录

  • 引题
  • 代码段
  • 运行脚本
    • 格式要求
    • 替换实例一
    • 替换实例二
    • 替换实例三
    • 运行脚本
  • 获取脚本
  • 关注
  • 版权说明

引题

我们在做音频标注的过程中,经常遇到需要批量修改某个地方,比如最开始标的发音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、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。

Praat脚本-004 | 替换标注内容相关推荐

  1. Praat脚本-013 | 无需标注自动切除音频首尾静音段

    目录 引题 操作方法 运行脚本 获取脚本 关注 版权说明 引题 在录音完成或者从别处得到一批音频之后,在对音频进行标注之间,除了以前提到的需要查看噪声情况,查看音量大小,另外一个问题就是需要查看每一句 ...

  2. 【内容替换】shell脚本批量替换文件内容(替换ip及其他配置文件)

    0.介绍 1.替换某个文件夹下所有文件及其子文件的内容 2.主要命令:sed -i "s/111/eee/g" $1"/"$file(将文件中所有的111替换为 ...

  3. Praat脚本-000 | 实用的Praat脚本总索引

    该项目包括一些Praat常用脚本,并结合简单实例说明如何使用这些脚本,每一个独立的目录里面有示例文件以及结果文件,适用于已经对Praat基本操作有些了解,对时长,基频,共振峰等基本声学参数有所了解的初 ...

  4. Praat脚本-033 | Praat脚本裁剪归整句中停顿

    目录 引题 方案介绍 第一种 存在标注 第二种 没有标注 补充说明 获取脚本 版权说明 引题 作者曾经分享过一个脚本,是可以处理一个音频中首尾的静音段,Praat脚本-013 | 无需标注自动切除音频 ...

  5. Praat脚本-017 |拆分已经标注好的音素为两个音素

    目录 引题 获取脚本 关注 版权说明 引题 在标注过程中,一批任务标完之后,可能对一些音素重新进行了定义,这时候可能会需要批量将一个音素拆分成两个音素,比如对于双元音,au,拆分成a和u,当然扩展开来 ...

  6. Praat脚本-029 | 一种更有效的校对音频内容的方案

    目录 引题 具体步骤 1.字音校对 数据说明 生成TextGrid 校对过程 提取数据 2.语音转写 数据说明 生成TextGrid 转写过程 提取数据 获取脚本 关注 版权说明 引题 在语音标注工作 ...

  7. Praat脚本-005 | 标注文件批量增加层级

    目录 引题 运行脚本 第一种情况:顺序增加层级 第二种情况:顺序增加不同类型层级 第三种情况:指定位置增加层级 获取脚本 关注 版权说明 引题 这个脚本的出发点是能够实现在已有标注TextGrid基础 ...

  8. Praat脚本-026 | 谈谈自动标注这点儿事(2)

    第一篇为大家推荐了第一种级别的"自动标注",其实相当于协助大家把一些需要的信息增加进去. Praat脚本-023 | 谈谈自动标注这点儿事(1) 第一,傻乎乎的自动标注, 第二,使 ...

  9. Praat脚本-037 | 批量把标注TextGrid生成韵律文本

    目录 引题 方案一 方案二 方案三 获取脚本 关注 版权说明 引题 Praat是一种非常出色.轻便.开源免费的标注工具,它的最主要用途是标注,即对语音信号中的一些特征.信息进行标注,保存为TextGr ...

最新文章

  1. Tabhost嵌套以及Tab中多个Activity跳转的实现
  2. httppost数据上传 unity_Unity中国增强版发布
  3. 增强for循环、Map接口遍历、可变參数方法
  4. CSP-S 2021 退役记
  5. java实现九九乘法表的输出
  6. LeetCode 15 二进制中1的个数
  7. 从BIOS自检报警声判断电脑故障
  8. how tomcat works(第15章: Digester)
  9. flow.php 漏洞,Ecshop 3.0的flow.php文件SQL注射漏洞修复
  10. 代码雨代码源复制_p#39;y代码雨怎么做
  11. multisim红绿灯元器件在哪里_实验一:Multisim交通灯仿真.ppt
  12. html插入swf自动播放,html嵌入播放器,flv视频播放器 Flvplayer.swf 可自动播放参数说明...
  13. Office2007注册码
  14. directx安装后找不到_如何下载,安装,更新到最新的DirectX
  15. 大道至简之四:透过现象看本质
  16. 快速生成不重复的卡号
  17. Python之计算π值
  18. 大数定理与中心极限定理
  19. Unity FACEGOOD Audio2Face 通过音频驱动面部BlendShape
  20. apple music学生订阅续期认证网页打不开问题解决办法

热门文章

  1. 送给前端的你,推荐几篇前端汇总文章。(来自知乎专栏)
  2. 【LTE基础知识】GUTI(Globally Unique Temporary UE Identity)分配
  3. java计算出现负数吗,请问一个计算器的有关问题,怎么实现负数计算
  4. UE4 无需切线空间应用凹凸贴图
  5. three.js 凹凸贴图
  6. Java 年龄与疾病
  7. Paypal REST API Java 版 PC端商城支付接口对接。
  8. 世界最大的数字优惠券​公司
  9. 2018-2019-2 20189206 《密码与安全新技术专题》 第六次作业
  10. 苹果手机屏幕上有白点怎么办