Praat脚本-038 | 批量替换标注TextGrid里的换行符

引题

我们在做标注的时候,可能会犯这样一个小错误,就是在标注的内容中间不小心进行了换行,大概会成为这个样子。

在这里插入图片描述
这样会有什么问题呢?在提取数据的时候,你会发现,将你的结果拷贝到excel里,会因为这个换行符,无端为你插入了新行,比如成为这个样子:
在这里插入图片描述
这就给阅读数据,归类,统计都造成很大的问题,如果你这些数据可能上千上万行,整理起来很折磨人。我们在提取数据的时候是可以注意将这个换行符替换的,Praat也提供了正则表达式的操作,所谓正则表达式是通过一些约定的符号规则,来统一表示某一类的符号,或者是一些特殊的符号,比如我们今天要解决的换行符的问题。我们只需要使用下面的函数就可以 替换掉字符串中的换行符。

output$ = replace_regex$(input$, "\n", "", 0)

这里的函数replace_regex$就是一个专门针对正则表达式的替换函数,它后面的参数的意思就是将一个输入的字符串,input$里的换行符,在编程语言里用\n代替,将它替换成空的字符。

Praat还提供了哪些可用的正则表达式的符号呢:
在这里插入图片描述
大家可以通过查找帮助里的Regular Expressions查看。这里面包括了常用的很多的功能,比如所有字母类,所有数字类,一些简单的通配符,大小写,制表符等,有兴趣的可以自己去查看,如果确实有其它功能需要支持的,也可以公众号后台留言。

获取脚本

https://github.com/feelins/Praat_Scripts

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

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

运行脚本

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

  1. 设置你的原始TextGrid所在的目录,这里因为是在Windows系统,所以路径斜线是\,如果你是在Mac使用,将这个斜线方向反一下就好。也可以用这样的路径old_TextGrid\,取决于你的数据所在的目录;
  2. 设置目标层级,reference tier就是你需要替换的内容在第几层,我们这里是第1层;
  3. 接着设置目标TextGrid所在的目录new_TextGrid\,同上;\

设置完毕,点击OK,运行脚本,结果可以到目标目录里查看。
在这里插入图片描述
我们示例中出现换行符的标注内容已经被更新替换了:
在这里插入图片描述

知识引申

在这里稍加引申一下,还有一种情况,当我们在处理Excel表格的时候,这个表格里本身就有换行符,如果将这些内容拷贝到文本,或者其它表格内容,你会发现,也会莫名插入一些新行,比如下面这个表格:
在这里插入图片描述
在红框处,也是因为处理表格的过程中不小心加了一个换行符,如果要把这些内容拷贝到文本里:
在这里插入图片描述
结果你会发现,原本的16行数据,成了17行,在这种情况下,我们如何对Excel表格处理一下呢?Excel本身有一个clean函数是可以指解决这个问题的。我们在原始的Excel中新建一列,在新建的一列的第一个格子里输入=clean(a1),这里的A1指要替换的左边的第一个单元格,我们在这个格子的左下角的黑十字拖动它,将会批量生成所有的结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这时候你会发现这个问题已经解决了。跑题了,大家看着玩玩就好。

关注

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

在这里插入图片描述

版权说明

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

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

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

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

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极地语音工作室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值