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

news2024/11/24 14:52:17

目录

  • 引题
  • 方案一
  • 方案二
  • 方案三
  • 获取脚本
  • 关注
  • 版权说明

引题

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、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatGPT写文章-为什么chatGPT写的文章是原创

用chatGPT写文章会重复吗 ChatGPT在生成文本时会优先从先前的训练数据中学习到的文本中选取片段,并根据先前的内容和上下文来生成新的文本。因此,从理论上来说,在相同的输入条件下,每次使用ChatGPT生成文本都可能会产生不同的输出…

Web前端-Vue2.0框架学习

Web前端-Vue框架学习 1. 前端工程化与Webpack1.1 隔行变色的demo实现1.2 webpack的基本使用1.3 webpac插件1.3.1 webpack-dev-server插件1.3.2 html-webpack-plugin 1.4 webpack中的loader(加载器)1.4.1 css-loader1.4.2 less-loader1.4.3 url-loader &a…

【动态规划】经典问题第四组,背包问题运用(分割等和子集,最后一块石头的重量 II)

前言 小亭子正在努力的学习编程,接下来将开启算法的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请收藏点赞关注支持一波, 感激不尽~~ 刷题专栏在这里~~ 深入理解动态规划建议关注…

各省份非金融类对外直接投资存量(2003-2020年)

中国各省份在非金融类对外直接投资方面呈现出不同的趋势和特点。截至2021年底,中国全国非金融类对外直接投资存量达到2.9万亿美元,其中,广东、江苏、山东、北京和上海是投资存量排名前五的省份。这五个省份的非金融类对外直接投资存量占全国总…

想想都脊背一凉,细思极恐,大家提早醒悟

一位程序员说了一件很可怕的事: 辛辛苦苦写了几年代码,做了些业务,在一片祥和中有了点成就感。然而回头一看,80%是没啥用的,甚至没法写到简历上,让人脊背一凉! 有人说,这…

Linux网桥简介、入门与配置

开始之前先得介绍一下什么是网桥,这里我们假设大家已经知道了物理的交换机是工作在链路层的。交换机的主要任务是在链路层查找转发表(mac地址与端口对应关系表),按照数据帧的目标mac地址,转发数据帧到相应的端口。那么…

半导体存储电路

半导体存储电路 SR锁存器和触发器寄存器存储器存储器分类RAMSRAMDRAM ROMMROMPROMEPROMEEPROMFLASH原理发现者应用工作原理存储单元 磁盘硬盘机械硬盘(HDD)固态硬盘(SSD) SR锁存器和触发器 SR锁存器用于记忆1位二进制信号&#x…

C语言之二分查找

目录 一、二分查找算法 二、分支语句中应注意的小点 一、二分查找算法 所谓二分查找,就是要在一组有序的数列中,查找给定的数是否在此数列中。 最主要的步骤有三个: 1.确定被查找的范围的左右下标left、right 2.根据left和right&#xff…

工业品6大采购痛点,维度云ERP帮您解决

行业现状 近年来,中国采购市场竞争加剧,市场规模不断扩大,利润总额持续增长,但在整体采购市场环境上升的情况下,企业生产成本上升,产品售价下降,行业利润却持续减少,产品大量过剩&am…

家用洗地机到底好不好用?好用的洗地机分享

洗地机是一种非常实用的清洁设备,它与传统的拖把或清洗粉相比,洗地机能够更全面、更彻底地清洁地面,除去污渍和灰尘之余,还能去除有害物质如细菌、病毒等,保证地面的卫生环境。洗地机的自动清洗和吸污功能能够大幅缩短…

Java文件字符流和字节流中的实战

文件输入输出流 文件内容操作与实战字符流ReaderWriter 字节流inputStreamOutputStream实战💪 文件内容操作与实战 文件的分类上一篇文章(文件对象处理)已经和大家讲解过了。本章主要文件主要针对于对文件内容的操作展开讲解,文件…

【golang学习笔记】——(一)安装golang

当前为了方便后续的编译和使用,在windows下进行go的安装。 一、msi安装 官网下载地址:https://golang.google.cn/ 进入Download选择Windows的msi文件下载即可 下载后进行默认或者自定义安装即可,golang无特殊配置,可按照默认安装…

算法篇——二叉树大集合上篇(js版)

222.完全二叉树的节点个数 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在…

AutoGPT的出现,会让程序员失业吗?

最近,一个叫AutoGPT的模型火了,在GitHub上线数周Star数就直线飙升。截至目前,AutoGPT的Star数已经达到87k,马上接近90k,超过了PyTorch的65k。 根据AutoGPT的命名,就可以发现其神奇之处在于“auto”&#x…

从申请到调用:全国快递物流查询 API 使用教程

引言 面对越来越多的快递需求和快递公司的日益增多,手动查询快递状态的工作变得愈发繁琐。此时,一个全国快递物流查询 API 的出现能够极大地提高查询的效率和准确性,解决人工查询的问题,为用户提供更加便捷的服务体验。全国快递物…

ASEMI代理ADG1408YRUZ-REEL7原装ADI车规级ADG1408YRUZ-REEL7

编辑:ll ASEMI代理ADG1408YRUZ-REEL7原装ADI车规级ADG1408YRUZ-REEL7 型号:ADG1408YRUZ-REEL7 品牌:ADI /亚德诺 封装:TSSOP-16 批号:2023 安装类型:表面贴装型 引脚数量:16 类型&#…

tftp+Filezilla文件双向传输(1)-centos(VMware)-win10(host)

目录 1.下载安装vsftpdtftptftp-server 2.配置服务 2.1 配置服务 修改文件 /etc/vsftpd.conf 2.2 配置服务 守护进程 /etc/xinetd.d/tftp 2.3 配置服务 tftp服务器 2.4 配置登录用户 2.4.1 修改selinux 2.4.2 匿名用户登录 2.4.3 新建账户,不能登陆系…

使用API Monitor巧妙探测C++程序中监听2620端口的模块

目录 1、问题说明 2、API Monitor工具介绍 2.1、API Monitor主要用途 2.2、如何使用API Monitor工具 3、使用API Monitor监测程序对bind函数的调用,定位启用2620端口的模块 3.1、为啥要监控socket API函数bind 3.2、编写演示代码进行说明 3.3、使用API Moni…

[SpringBoot框架]如何使用SpringBoot框架

SpringBoot框架的好处 如果不使用SpringBoot框架创建工程,而是创建一个Maven空工程,,在工程里面引入其它框架的时候,比如SSM,需要在pom.xml配置文件中添加框架相关的依赖,并且个别的框架还需要配置文件,在配…

nodejs+vue+elementui钢琴乐器培训课程报名管理系统

1绪论 5 1.1项目研究的背景 5 1.2开发意义 5 1.3项目研究内容 5 2开发技术介绍 6 2.1 B/S架构 6 前端技术:nodejsvueelementui,视图层其实质就是vue页面,通过编写vue页面从而展示在浏览器中,编写完成的vue页面要能够和控制器类进行交互&…