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

引题

Praat是一种非常出色、轻便、开源免费的标注工具,它的最主要用途是标注,即对语音信号中的一些特征、信息进行标注,保存为TextGrid文件,这个TextGrid文件实质 上就是一种文本文件。

在这里插入图片描述

这个标注的使用者也主要是有经验的语言学专家,或者一些研究者等,在实际的工程利用中,工程师通常要处理的是直接的文本或者转化成某种格式的文件,因为TextGrid里有很多冗余的行、标记、符号等,通常不会直接拿TextGrid文件去直接训练模型或者做大数据的处理,这就涉及到如何将TextGrid信息提取出来,比如我们保存成一个整体的文本,或者象在前面的文章中提到 可以保存为Json文件

Praat脚本-032 | Praat脚本批量转化TextGrid格式为json格式

今天我们学习另外一种保存方案,即将它保存为一种信息文本,可以根据一些公司使用的习惯称为韵律文本。

000001.TextGrid
 卡 尔 普2 陪 外 孙1 玩 滑 梯4。 
sil k+a2 er2 p+u3 p+ei2 uai4 s+uen1 uan2 h+ua2 t+i1 sil

000002.TextGrid
 假 语 村 言2 别 再1 拥 抱 我4。 
sil j+ia2 v3 c+uen1 ian2 b+ie2 z+ai4 iong1 b+ao4 uo3 sil

000003.TextGrid
 宝 马1 配 挂1 跛 骡 鞍3, 貂 蝉1 怨 枕2 董 翁 榻4。 
sil b+ao2 m+a3 p+ei4 g+ua4 b+o3 l+uo2 an1+sp1 d+iao1 ch+an2 van4 zh+en3 d+ong3 ueng1 t+a4 sil

000004.TextGrid
 邓 小 平2 与1 撒 切 尔2 会 晤4。 
sil d+eng4 x+iao3 p+ing2 v3 s+a4 q+ie4 er3 h+uei4 u4 sil

000005.TextGrid
 老 虎1 幼 崽2 与1 宠 物 犬1 玩 耍4。 
sil l+ao2 h+u3 iou4 z+ai3+sp1 v2 ch+ong3 u4 q+van3 uan2 sh+ua3 sil

000006.TextGrid
 身 长2 约1 五 尺1 二 寸1 五 分2 或1 以 上4。 
sil sh+en1 ch+ang2 ve1 u2 ch+iii3 er4 c+uen4 u3 f+en1 h+uo4 i3 sh+ang4 sil

这样处理有一个什么好处呢?我们标注的信息,大部分信息(除了时间点信息,后续会提供脚本涉及到)都会保存在一个文件里,便于传输、转换、检索、演示、统计等,举例:

  • 我们想搜索某一个读音;
  • 我们想搜索某个读音都是与哪些词有对应关系的;
  • 我们想让对方了解自己标注的所有文件的整体概况;

接下来我们演示如何将我们标注的TextGrid,转化为这样的文本,笔者考虑了三种情况。这个脚本在git目录(具体地址见本文最后)里的第37个脚本37-textgrid_to_rhythm_txt\TextGrid_to_Rhythm_TXT.Praat

方案一

我们先考虑中文标注的情况,假设我们有两层最基本的标注,一层是读音音素信息,一层是汉字层。具体标注形式为:

在这里插入图片描述
这里我们想提示一下有这几个信息需要关注,第一是因为这里采用的是标贝公司的开源标注数据,这些数据的汉字层是有停顿边界的,即那些1,2,3,4等;第二是在拼音层声调是以数字的形式标注的;第三就是我们在生成拼音这层信息的时候,期望能够保存声母+韵母的结构,便于我们后续使用。

现在打开Praat运行脚本,Praat->Open Script->TextGrid_to_Rhythm_TXT.Praat

  1. 在第一个输入框内输入TextGrid所在的目录,本文脚本只是对TextGrid进行操作,目录里无需有对应的音频,由于目录是和脚本在同一个目录下,所以没有加任何的路径信息,其它同学在使用时也可以清空这个目录的数据,将你的TextGrid放到这个目录里进行操作;
  2. 第二个文本框内,是输出的韵律文本的保存路径,同上,因为在同一个目录下,只需要写一下文件名称就可以 了;
  3. 这里需要输入你的文字(英语是指词)的层的数字,如上图所示,我们这批中文标注,文字是在第2层;
  4. 这里需要输入你的音素的层的数字,如上图所示,我们这批中文标注,音素是在第1层;
  5. 在本方案中,最后一个输入保持是0不变,这里后面的其它方案会用到;
  6. 设置完毕,点击OK运行脚本。
    在这里插入图片描述
    最后,我们得到了如下的输出文件:
    在这里插入图片描述

方案二

我们考虑英语标注的情况,也是假设我们有两层最基本的标注,一层是读音音素信息,一层是英语单词层。具体标注形式为:

在这里插入图片描述

这里我们想提示一下有这几个信息需要关注,第一是这里采用的是LibriSpeech的开源数据,这些音频数据通过自动标注(做数据自动标注的,公众号后台咨询)生成以上信息;第二是在音素层是有词重音信息的;第三就是我们在生成音素这层信息的时候,是直接将音素用+号连接起来,后续我们也会推出脚本如何对英语音素划分音节。

现在打开Praat运行脚本,Praat->Open Script->TextGrid_to_Rhythm_TXT.Praat

  1. 在第一个输入框内输入TextGrid所在的目录,本文脚本只是对TextGrid进行操作,目录里无需有对应的音频,由于目录是和脚本在同一个目录下,所以没有加任何的路径信息,其它同学在使用时也可以清空这个目录的数据,将你的TextGrid放到这个目录里进行操作;
  2. 第二个文本框内,是输出的韵律文本的保存路径,也是同上,因为在同一个目录下,只需要写一下文件名称就可以 了;
  3. 这里需要输入你的词的层的数字,如上图所示,我们这批英语标注,词是在第1层;
  4. 这里需要输入你的音素的层的数字,如上图所示,我们这批英语标注,音素是在第2层;
  5. 在本方案中,最后一个输入保持是0不变,这里后面的其它方案会用到;
  6. 设置完毕,点击OK运行脚本。
    在这里插入图片描述

最后,我们得到了如下的输出文件:
在这里插入图片描述

方案三

这里我们增加一点小功能,有一些学者在标注的时候可能会用到一种叫做Point Tier的功能,比如以前面的中文标注为例:
在这里插入图片描述
这里的第三层,是一种Point Tier的形式,它跟我们常用的Interval Point形式不同,标注信息在一个边界条的中间。注意这里只是示例方便,将所有的Point Tier都标注在了一个前两层信息的最后一个边界上,有些人习惯于将这个Point Tier要标在一个字、或者音素的中间位置,这种情况其实在生成信息、提取信息时很不方便,在这里没有去探讨这样的做法。

现在打开Praat运行脚本,Praat->Open Script->TextGrid_to_Rhythm_TXT.Praat

  1. 在第一个输入框内输入TextGrid所在的目录,本文脚本只是对TextGrid进行操作,目录里无需有对应的音频,由于目录是和脚本在同一个目录下,所以没有加任何的路径信息,其它同学在使用时也可以清空这个目录的数据,将你的TextGrid放到这个目录里进行操作;
  2. 第二个文本框内,是输出的韵律文本的保存路径,也是同上,因为在同一个目录下,只需要写一下文件名称就可以 了;
  3. 这里需要输入你的文字(英语是指词)的层的数字,如上图所示,我们这批中文标注,文字是在第2层;
  4. 这里需要输入你的音素的层的数字,如上图所示,我们这批中文标注,音素是在第1层;
  5. 在本方案中,最后一个输入要改为3,代表这里有一个第3层的Point Tier信息要提取;
  6. 设置完毕,点击OK运行脚本。
    在这里插入图片描述

最后,我们得到了如下的输出文件,我们将Point Tier的信息放在了字这一层的相应的字后面加了括号:
在这里插入图片描述
总之,脚本想再全面也不可能覆盖所有的情况,如果确实有类似的需求,而你的标注是比较复杂的,可以加入QQ咨询群,或者在公众号后台发信息。

获取脚本

https://github.com/feelins/Praat_Scripts

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

关注

公众号:极地语音工作室, QQ讨论群720939827

版权说明

1、版权归本博客作者所有;

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

极地语音工作室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值