引题
在语音标注工作中,精标是大多数情况下必需的。在大数据、人工智能的背景下,因为数据量的关系,或者是由于需求的限定,有一类工作是只需要粗略校对,即我们只需要根据音频校对好它的内容,不用象精标那样要对每一个发音细节都标注清楚;另外,这个工作也可能用于这种情况,即语音转写,我们需要根据听到的音频,将内容写出来。后者是可以通过语音识别辅助实现的,虽然效果并不能达到100%, 但是毕竟省去了很多人力。本次分享的脚本则跟这类工作有关。
现在的问题在于能更快捷的校对音频和读音的一致性,大的公司是有自己专门的校对平台的,既可以保证数据不外泄,也可以省去数据传来传去的麻烦,对于其它公司或者个人来说,当得到这样的任务的时候,如果采用传统的办法,一边打开播放器,一边打开一个Excel/记事本
一条一条的校对,这显然效率较低,而且容易出错!
在此推荐的是一种利用Praat
的校对方案,我们使用脚本制作成一层的TextGrid
,校对的时候目标更明确,不容易出错,而且音频也可以反复播放。
扩展一下,为了描写音频里可能出现的问题,也可以加一些自己定义的符号,比如这句话可能是不需要的,你可以在固定的位置标一些符号,后续使用的时候方便过滤。如下,我们设定在句首加一个*号,这样在提取内容的时候可以忽略这一句。
校对工作完成之后,也提供了一个脚本用来提取你标注的内容。
具体步骤
1、字音校对
数据说明
当前我们的任务是有一批音频,和对应的内容,这些内容是与音频一一对应的,我们要做的只是校对它的内容是否一致。
000001.wav
000002.wav
...
以及一个对应的文本,这个文本可以放在表格里先整理好,作为脚本输入的时候要拷贝到记事本里,保存为文本文件。
脚本运行的时候我们需要制作成这样的格式,要加一个表头,两列之间用tab
隔开。
filename sentence
000001 这是第一句的内容
...
生成TextGrid
本篇脚本在第29个目录,29-gen_one_tier_TextGrid\create_one_tier_TextGrid.Praat
, 具体地址参考文末的github
项目地址。
Praat运行脚本,Praat->Open Script->create_one_tier_TextGrid.Praat
- 第一个输入:示例文件放在
wavs
里,这个目录里是所有的音频文件; - 第二个输入:就是上面所说,我们准备的文本文件路径;
- 第三个是输入路径:这里是放在
outTextGrids
目录里;
友情提醒:好多同学在评论里,或者在QQ咨询群里,问起自己运行脚本有问题,看上去就是路径的问题,在这里提示那些对设置路径不熟悉的同学,就可以把我的示例数据删掉,放进这个目录运行就好。
运行之后,在outTextGrids
目录里,生成只有一层的TextGrid文件
,并且加进了我们给定的文本内容。
校对过程
这一过程是利用前面介绍的文章,使用一个辅助校对的工具,省去每次打开Praat
,打开文件,保存文件这一繁琐过程。
提取数据
艰苦的校对工作完成之后,我们需要将我们校对的内容提取出来了,这也是利用脚本操作。这一次是利用第29个目录里的29-gen_one_tier_TextGrid\extract_one_tier_TextGrid.Praat
脚本。
Praat运行脚本,Praat->Open Script->extract_one_tier_TextGrid.Praat
- 第一个输入:就是我们前面生成的
outTextGrids目录
; - 第二个输入:就是我们需要保存提取出来的内容的文本文件路径;
最终我们得到的结果如下,前面提到我们可以过滤一些特殊的符号,比如加了一些符号的不提取,在此脚本没有提及,因为每个人可能加符号的想法不同,如果有类似的想法,可以在提取的时候加一个判断即可。
2、语音转写
数据说明
当前我们的任务是有一批音频,这次的区别是没有对应的内容,我们要做的只是写出它的内容。
000001.wav
000002.wav
...
生成TextGrid
本篇脚本在第29个目录,29-gen_one_tier_TextGrid\create_one_tier_TextGrid.Praat
, 具体地址参考文末的github
项目地址。
Praat运行脚本,Praat->Open Script->create_one_tier_TextGrid.Praat
- 第一个输入:示例文件放在
wavs
里,这个目录里是所有的音频文件; - 第二个输入:因为我们并没有具体的文本内容,这里置空就可以了;
- 第三个是输入路径:这里是放在
outTextGrids
目录里;
友情提醒:好多同学在评论里,或者在QQ咨询群里,问起自己运行脚本有问题,看上去就是路径的问题,在这里提示那些对设置路径不熟悉的同学,就可以把我的示例数据删掉,放进这个目录运行就好。
运行之后,在outTextGrids
目录里,生成只有一层的TextGrid文件
,但是是空白的,在辨听了音频内容之后,可以写进内容。
转写过程
这一过程是利用前面介绍的文章,使用一个辅助校对的工具,省去每次打开Praat
,打开文件,保存文件这一繁琐过程。
提取数据
艰苦的校对工作完成之后,我们需要将我们校对的内容提取出来了,这也是利用脚本操作。这一次是利用第29个目录里的29-gen_one_tier_TextGrid\extract_one_tier_TextGrid.Praat
脚本。
Praat运行脚本,Praat->Open Script->extract_one_tier_TextGrid.Praat
- 第一个输入:就是我们前面生成的
outTextGrids目录
; - 第二个输入:就是我们需要保存提取出来的内容的文本文件路径;
最终我们得到的结果如下,前面提到我们可以过滤一些特殊的符号,比如加了一些符号的不提取,在此脚本没有提及,因为每个人可能加符号的想法不同,如果有类似的想法,可以在提取的时候加一个判断即可。
获取脚本
https://github.com/feelins/Praat_Scripts
说明:近期,貌似遇到了github如果不科学上网无法访问的情况,笔者也发现这个问题,后期有时间会将代码同步在一个国内容易访问的代码管理空间,目前还没有想好,请大家谅解哈,有兴趣可以加文末的QQ群,在群里私信发,会直接发给大家代码。
本站所有Praat脚本
都可以在上述github的项目目录
里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置github for windows
在自己的电脑上通过git clone
将代码下载到本机,这样的好处是可以跟主站及时更新代码。
不想费如此脑筋,可以通过点击如下图Code位置所示,下载整站的代码,可直接使用。
关注
关于对本站脚本的使用咨询,以及功能修改,增加等,都可以扫QQ咨询群,私信群主。
版权说明
1、版权归本博客作者所有;
2、未经本站或者作者允许, 不得任意转载本文内容,否则将视为侵权;
3、转载或者引用本文内容请注明来源及原作者;
4、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。