引题
我们在工作中或许会有这样的需求,我们有一个文本文件,它是按行保存了很多内容,我们现在希望将这些文本按行分别保存为独立的文件。今天就介绍使用Praat脚本来进行这个操作。
假设我们有以下这样的文件:
我们希望将这个文件按第一列的名字分别保存为独立的文件。即:
在讲脚本操作之前,我们先说一下这个输入的文本,如果你有类似的需求,而恰好有这样规整格式的文本,那当然是再好不过的了。但是如果你是需要自己制作这个文本,这里有一个问题就是要务必保证在每个文件名后面是以TAB键隔开的,可能你会反问,为什么不可能用逗号,分号,。。各种符号,这里的矛盾在于Praat在处理类似的字符串时并不象其它编程语言那么灵活,而且用的其它符号也容易和实际文本中的内容发生冲突。比如以下的例子,
filename content
84-121123-0000,GO DO YOU HEAR,GO DO YOU HEAR
当我们想指定为逗号分隔的时候,这可能和文本中原来就有的一个逗号发生冲突,容易出现错误。
怎么样才能方便的做出以TAB隔开的文本文件呢,借助Excel就很方便了。
在Excel里按这样制作完成,直接拷贝出来,放在“记事本”软件里,保存一下就好了。注意这里有一个要求是要加表头filename和content,至于名字可以自定义,前提是你可以自己去脚本里修改这两个名字。
准备工作之后,下面来看如何使用这个脚本。
方案一:有规整的文件名和内容
象前面举的例子,这个文件是有规整的文件名(或者是必须指定的)和内容的,
这个脚本在git
目录(具体地址见本文最后)里的第40个脚本
。40-save_txt_to_files\Save_each_line_txt_to_Files.Praat
。
Praat运行脚本,Praat->Open Script->Save_each_line_txt_to_Files.Praat
- 由于我们的输入文本input.txt是和脚本在同一个目录下,所以这里无需设置路径,对路径不是很熟悉的同学可以将你的输入内容放进这个input.txt里,脚本无需更改;
- 这里的output就是拆分出来的独立的文件保存的目录,同上,也是在同样的目录下;
- 最后的一个参数,是否需要文件名,在这个方案里保持选择这个选项;
- 设置完毕,点击OK运行脚本。
方案二:没有初始的文件名
在这个情况下,我们没有初始的文件名,如下表:
那么在保存的时候,脚本会按行为顺序指定一个5位的数字,同样如果你可以修改脚本,可以在脚本里找到这个5的位置,修改数字的位数。我们运行的结果是这样的:
这个脚本在git
目录(具体地址见本文最后)里的第40个脚本
。40-save_txt_to_files\Save_each_line_txt_to_Files.Praat
。
Praat运行脚本,Praat->Open Script->Save_each_line_txt_to_Files.Praat
- 由于我们的输入文本input.txt是和脚本在同一个目录下,所以这里无需设置路径,对路径不是很熟悉的同学可以将你的输入内容放进这个input.txt里,脚本无需更改;
- 这里的output就是拆分出来的独立的文件保存的目录,同上,也是在同样的目录下;
- 最后的一个参数,是否需要文件名,在这个情况下要取消选择这个选项!!;
- 设置完毕,点击OK运行脚本。
获取脚本
https://github.com/feelins/Praat_Scripts
本站所有Praat脚本
都可以在上述github的项目目录
里找到,如果日常对代码、脚本操作比较熟练的可通过下载、安装、配置github for windows
在自己的电脑上通过git clone
将代码下载到本机,这样的好处是可以跟主站及时更新代码。
不想费如此脑筋,可以通过点击如下图Code位置所示,下载整站的代码,可直接使用。
关注
关于对本站脚本的使用咨询,以及功能修改,增加等,都可以扫QQ咨询群,私信群主。
版权说明
1、版权归本公众号“极地语音工作室”,原名“语音处理小站”所有;
2、未经本站或者作者允许, 不得任意转载本文内容,否则将视为侵权;
3、转载或者引用本文内容请注明来源及原作者;
4、对于不遵守此声明或者其他违法使用本站内容者,本人依法保留追究权等。