JSON 是存储和交换文本信息的语法,类似 XML。JSON 是轻量级的文本数据交换格式。JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。JSON 具有自我描述性,更易理解。如下:
{
"sites": [
{ "name":"菜鸟教程" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
}
和XML一样,这样的格式非常便于描述数据,数据的属性也很清楚。通过Praat脚本是否可以将大量的TextGrid格式的文件转化为JSON呢?
TextGrid无非是通过一些时间点标记音频的文件,这里面最重要的几个因素是,层级、第几个标记、这个标记的名称、这个标记的开始时间和结束时间。所以我们是否可以转化为这样的形式:
{
"name":"Phon",
"intervals":[
{"xmin":0,"xmax":0.280,"text":"sil"},
{"xmin":0.280,"xmax":0.406,"text":"k"},...
]
}
这样我们获得层级名称,以及每一层内包括多少个标记,每个标记又包括了开始时间、结束时间和名称。
提取数据
这个脚本在git目录里的第32个脚本。32-textgrid_to_json\Textgrid_to_json.Praat
Praat运行脚本,Praat->Open Script->Textgrid_to_json.Praat
- 第一个输入:就是你的
TextGrid 所在的目录,这里是textgrids/ ; - 第二个输入:就是你需要转化后的
json 保存的目录,这里是jsons ; - 第三个框是对于开始时间和结束时间,保留小数的位数,默认为
3 ;
最终运行之后可以得到转化后的json文件。 注意脚本是自动获取你的TextGrid里的层级数量的,不需要设置。
这里有两个点要说明一下:
- 本站之前发布的大多数脚本都是采用的相对路径,即
textgrids/ 这样,没有将哪个盘,哪个目录都列出来,这是因为这些目录本身就在和脚本同样的目录下,这是完全没有问题的,经常在咨询群里看到有一些同学自己并不熟悉路径,总是弄错路径,其实我提到过多次了,你就不要动我现在设置的路径,将你的数据放在我的目录里运行就可以了。
获取脚本
https://github.com/feelins/Praat_Scripts
本站所有Praat脚本 都可以在上述github的项目目录 里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置github for windows 在自己的电脑上通过git clone 将代码下载到本机,这样的好处是可以跟主站及时更新代码。 不想费如此脑筋,可以通过点击如下图Code位置所示,下载整站的代码,可直接使用。
关注
公众号:极地语音工作室, QQ讨论群720939827
版权说明
1、版权归本博客作者所有;
2、未经本站或者作者允许, 不得任意转载本文内容,否则将视为侵权;
3、转载或者引用本文内容请注明来源及原作者;
4、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。
|