语音标注自动音段对齐工具SPPAS使用笔记
SPPAS工具是由Brigitte Bigi(Laboratoire Parole et Langage - Aix-en-Provence - France)开发的。在网上提供免费下载及使用。这是一款目前比较流行的自动标注,音段对齐的工具,目前应用于法语、英语、汉语等都有不错的效果。虽然音段自动对齐的准确率并不完善,但是对于一般的语音研究者来说,能够自动产生出带有音段信息,并且边界相对整齐的Praat标注文件TextGrid已经是大大提升了工作效率。所以推荐给进行语音研究,而且数据量规模很大的朋友。
有关于这个工具的详细说明,介绍,文档,由此相关的论文等信息请参阅官方网站:http://www.sppas.org/。在这里只是把使用的时候注意的一些地方写出来,以方便一些可能对插件包安装使用并不熟悉的同学。
打开网站有困难的请加入首页QQ群,群里会及时更新所有安装文件。
首先是一些使用时的注意事项,请想使用软件的同学务必仔细看一下是否符合。
- 标注文件,及声音对应的文本文件,都必须是UTF8格式
- 声音文件必须是单通道文件,16位精度,格式为WAVE或者AU;
- 所有的文件名称中没有特殊字符,比如中文,空格都不允许,推荐只出现字母,下划线,数字或者横线
- 声音文件和对应的文本文件名称必须完全一致
-
具体使用步骤应该是
- 安装工具,在自己的电脑上配置这个工具使用的环境(需要安装三个其它工具)
- 语音最好是录音条件比较好的数据,即录音环境很安静。发音人语音清晰,这样会明显提升自动标注效果。如果是在嘈杂环境的录音,野外录音,这样的自动标注效果很差。
- 录音文件每一单位之间,最好有比较清楚的停顿,比如你是录音很多字、词,那么发音人在读字,词之间时,最好有一些停顿;如果是录音很多句子,那么句子之间也要有明显的停顿,这样也可以提高自动标注精度;
- 然后将这样的文件都添加到SPPAS操作窗口里,选择相应的语言,选择音段对齐选项,点击“执行”就可以产生出来音段对齐的TextGrid了
- 这其中对于如何把工具环境安装好,对于只有文科基础的同学不太容易操作,但是一旦安装好了,以后就可以直接使用了。
本文力求对每个环节都写的简单一些,让更多想使用这个工具的人能够很快的将工具配置好,节省自己的工作效率。
1. 安装
这部分主要就是大概翻译了一下官方网站上的Installation这一部分。
windows环境下的安装:官方网站现在没有区分如何安装32位以及64位,这是因为现在的系统比如win7,win10是64位的很多,而32位的软件在64位的电脑上运行是没有问题的。所以官方网站只提供了一种,就是32位的安装,如果你的电脑系统是64位,同样也可以使用,我自己已经做过测试。没有问题。
-
Python installation
-
Python的官方网站是:https://www.python.org/,下载页在:https://www.python.org/downloads/release/python-2713/,请选择32位下载,Windows x86 MSI installer。上面已经说明过,不需要专门针对64位的机器下载64位,尤其对于初学者,32位可以将Python的bin目录增加到系统环境变量里,而64位有时候需要手工增加,如果你熟悉这个操作,可以选择64位Python安装,这里以32位为准。
-
安装过程即和常规安装软件的过程类似,第一步使用默认方式就可以,即安装给该系统所有用户使用。
-
第二步,安装的路径,不建议目录太深,最好在常用盘,比如C盘或者D盘的根目录下,如图所示,在C盘根目录下的Python27就可以,27表示是2.7版本,有其它开发需求的朋友可能也会安装Python3.4以上版本,所以这里也要注意区分。
-
在这一步,给出了64位和32位安装的区别,左边是64位,右边是32位,右边有一个选项,可以将Python.exe设置到系统的环境变量里。
-
最后安装成功。
-
Python的官方网站是:https://www.python.org/,下载页在:https://www.python.org/downloads/release/python-2713/,请选择32位下载,Windows x86 MSI installer。上面已经说明过,不需要专门针对64位的机器下载64位,尤其对于初学者,32位可以将Python的bin目录增加到系统环境变量里,而64位有时候需要手工增加,如果你熟悉这个操作,可以选择64位Python安装,这里以32位为准。
-
WxPython installation
- WxPython是辅助Python实现可视化界面的。可以根据前面安装Python选择32位或者64位:
- 32位:https://sourceforge.net/projects/wxpython/files/wxPython/3.0.2.0/wxPython3.0-win32-3.0.2.0-py27.exe/download
- 64位:https://sourceforge.net/projects/wxpython/files/wxPython/3.0.2.0/wxPython3.0-win64-3.0.2.0-py27.exe/download
-
安装过程如下,第一步直接点下一步就可以。
-
这一步也是选择接受协议Accept the agreement直接点下一步。
- 第三步很关键,这个路径一定要和前面Python27目录保持一致,在本例中Python安装在C盘,则象下面这样,这样的路径才是正确的。site-packages表示WxPython作为一个 模块包,在Python里。
- 最后,这三个选项默认都选中,点击finish.
-
Julius installation
- Click here to downloadJulius (release >= 4.1)
- 这个组件不需要安装,直接解压到一个目录里
- 打开这个目录,打开bin目录,找到Julius.exe,注意因为本文下载的是Julius 4.3.1版本,所以其实这个文件名称是Julius-4.3.1.exe,即要把这个文件拷贝到C:\windows\目录下,并且改名为:julius.exe
- 注意:64位机器不需要找专门的这个版本,就使用和第(3)同样的方式操作就可以了,已经测试过,是成功了。
-
SPPAS工具的下载安装
2. 制作声音文件和文本
-
手工制作声音文件和文本文件:
- 手工录音,然后分别针对每一个录音单位制作文本文件
- 注意声音文件和文本文件是对应出现的。文件名称必须一样。而文本文件,比如Sound_1.txt里面就是这个声音的内容,没有其它多余信息。如红色箭头所指。在保存这个文本文件的时候,需要注意编码格式为UTF-8格式,如下面的红色方框所示。
-
批量制作声音文件和文本文件
- 使用前面的文章《Praat 将连续录制的声音文件切成小单位文件》介绍的方法,可以对连续录制的很长的声音文件切分成小的单位文件。在这里要继续使用这个脚本产生的文件名列表,fileList.txt,这个文件里是这样的
- order filename sentence
- 1 Sound_1.wav
- 2 Sound_2.wav
- 3 Sound_3.wav
- 4 Sound_4.wav
- 5 Sound_5.wav
- 6 Sound_6.wav
- 7 Sound_7.wav
- 8 Sound_8.wav
- 我们利用产生的文件名,把录音对应的内容,和文件名对应起来。如下面所示
-
- Sound_1.wav 关心
- Sound_2.wav 刚刚
- Sound_3.wav 单一
- Sound_4.wav 糟糕
- Sound_5.wav 新鲜
- Sound_6.wav 餐厅
- Sound_7.wav 西瓜
- Sound_8.wav 车厢
-
然后再使用,本人编写的另外一个工具,可以直接产生有这些内容的文本文件,工具下载地址如下:
- 产生的文件内容如下,之所以使用这样的工具产生文本,主要是为了产生UTF-8格式的文本文件。
3. 导入SPPAS进行切分
-
经过上面的步骤,我们已经制作了批量的声音文件和文本文件,把这些文件放在同一个目录内:
-
然后打开SPPAS这个工具,点击Add files将声音文件添加到窗口里,同时,有同样文件名的txt也会被添加到窗口里,把这些文件通过使用ctrl或者shift键,全部选择,然后把右侧的几个对齐的选项选择,并且在语言里选择相应的语言,比如这里选择的是中文,ZH。
- 点击右下角的这个长的按钮,就是执行按钮,然后系统就会自动产生出来对齐音段的TextGrid文件。
-
一般情况下,会同时产生几个TextGrid
- 我们只需要最终的结果Sound_-merge.TextGrid文件。
- 这就是最终的结果:可以看到,准确度并不高,但是省去了很多人工的添加边界,输入字符的过程。
SPPAS工具是由Brigitte Bigi(Laboratoire Parole et Langage - Aix-en-Provence - France)开发的。在网上提供免费下载及使用。这是一款目前比较流行的自动标注,音段对齐的工具,目前应用于法语、英语、汉语等都有不错的效果。虽然音段自动对齐的准确率并不完善,但是对于一般的语音研究者来说,能够自动产生出带有音段信息,并且边界相对整齐的Praat标注文件TextGrid已经是大大提升了工作效率。所以推荐给进行语音研究,而且数据量规模很大的朋友。
有关于这个工具的详细说明,介绍,文档,由此相关的论文等信息请参阅官方网站:http://www.sppas.org/。在这里只是把使用的时候注意的一些地方写出来,以方便一些可能对插件包安装使用并不熟悉的同学。
打开网站有困难的请加入首页QQ群,群里会及时更新所有安装文件。
首先是一些使用时的注意事项,请想使用软件的同学务必仔细看一下是否符合。
- 标注文件,及声音对应的文本文件,都必须是UTF8格式
- 声音文件必须是单通道文件,16位精度,格式为WAVE或者AU;
- 所有的文件名称中没有特殊字符,比如中文,空格都不允许,推荐只出现字母,下划线,数字或者横线
- 声音文件和对应的文本文件名称必须完全一致
-
具体使用步骤应该是
- 安装工具,在自己的电脑上配置这个工具使用的环境(需要安装三个其它工具)
- 语音最好是录音条件比较好的数据,即录音环境很安静。发音人语音清晰,这样会明显提升自动标注效果。如果是在嘈杂环境的录音,野外录音,这样的自动标注效果很差。
- 录音文件每一单位之间,最好有比较清楚的停顿,比如你是录音很多字、词,那么发音人在读字,词之间时,最好有一些停顿;如果是录音很多句子,那么句子之间也要有明显的停顿,这样也可以提高自动标注精度;
- 然后将这样的文件都添加到SPPAS操作窗口里,选择相应的语言,选择音段对齐选项,点击“执行”就可以产生出来音段对齐的TextGrid了
- 这其中对于如何把工具环境安装好,对于只有文科基础的同学不太容易操作,但是一旦安装好了,以后就可以直接使用了。
本文力求对每个环节都写的简单一些,让更多想使用这个工具的人能够很快的将工具配置好,节省自己的工作效率。
1. 安装
这部分主要就是大概翻译了一下官方网站上的Installation这一部分。
windows环境下的安装:官方网站现在没有区分如何安装32位以及64位,这是因为现在的系统比如win7,win10是64位的很多,而32位的软件在64位的电脑上运行是没有问题的。所以官方网站只提供了一种,就是32位的安装,如果你的电脑系统是64位,同样也可以使用,我自己已经做过测试。没有问题。
-
Python installation
-
Python的官方网站是:https://www.python.org/,下载页在:https://www.python.org/downloads/release/python-2713/,请选择32位下载,Windows x86 MSI installer。上面已经说明过,不需要专门针对64位的机器下载64位,尤其对于初学者,32位可以将Python的bin目录增加到系统环境变量里,而64位有时候需要手工增加,如果你熟悉这个操作,可以选择64位Python安装,这里以32位为准。
-
安装过程即和常规安装软件的过程类似,第一步使用默认方式就可以,即安装给该系统所有用户使用。
-
第二步,安装的路径,不建议目录太深,最好在常用盘,比如C盘或者D盘的根目录下,如图所示,在C盘根目录下的Python27就可以,27表示是2.7版本,有其它开发需求的朋友可能也会安装Python3.4以上版本,所以这里也要注意区分。
-
在这一步,给出了64位和32位安装的区别,左边是64位,右边是32位,右边有一个选项,可以将Python.exe设置到系统的环境变量里。
-
最后安装成功。
-
Python的官方网站是:https://www.python.org/,下载页在:https://www.python.org/downloads/release/python-2713/,请选择32位下载,Windows x86 MSI installer。上面已经说明过,不需要专门针对64位的机器下载64位,尤其对于初学者,32位可以将Python的bin目录增加到系统环境变量里,而64位有时候需要手工增加,如果你熟悉这个操作,可以选择64位Python安装,这里以32位为准。
-
WxPython installation
- WxPython是辅助Python实现可视化界面的。可以根据前面安装Python选择32位或者64位:
- 32位:https://sourceforge.net/projects/wxpython/files/wxPython/3.0.2.0/wxPython3.0-win32-3.0.2.0-py27.exe/download
- 64位:https://sourceforge.net/projects/wxpython/files/wxPython/3.0.2.0/wxPython3.0-win64-3.0.2.0-py27.exe/download
-
安装过程如下,第一步直接点下一步就可以。
-
这一步也是选择接受协议Accept the agreement直接点下一步。
- 第三步很关键,这个路径一定要和前面Python27目录保持一致,在本例中Python安装在C盘,则象下面这样,这样的路径才是正确的。site-packages表示WxPython作为一个 模块包,在Python里。
- 最后,这三个选项默认都选中,点击finish.
-
Julius installation
- Click here to downloadJulius (release >= 4.1)
- 这个组件不需要安装,直接解压到一个目录里
- 打开这个目录,打开bin目录,找到Julius.exe,注意因为本文下载的是Julius 4.3.1版本,所以其实这个文件名称是Julius-4.3.1.exe,即要把这个文件拷贝到C:\windows\目录下,并且改名为:julius.exe
- 注意:64位机器不需要找专门的这个版本,就使用和第(3)同样的方式操作就可以了,已经测试过,是成功了。
-
SPPAS工具的下载安装
2. 制作声音文件和文本
-
手工制作声音文件和文本文件:
- 手工录音,然后分别针对每一个录音单位制作文本文件
- 注意声音文件和文本文件是对应出现的。文件名称必须一样。而文本文件,比如Sound_1.txt里面就是这个声音的内容,没有其它多余信息。如红色箭头所指。在保存这个文本文件的时候,需要注意编码格式为UTF-8格式,如下面的红色方框所示。
-
批量制作声音文件和文本文件
- 使用前面的文章《Praat 将连续录制的声音文件切成小单位文件》介绍的方法,可以对连续录制的很长的声音文件切分成小的单位文件。在这里要继续使用这个脚本产生的文件名列表,fileList.txt,这个文件里是这样的
- order filename sentence
- 1 Sound_1.wav
- 2 Sound_2.wav
- 3 Sound_3.wav
- 4 Sound_4.wav
- 5 Sound_5.wav
- 6 Sound_6.wav
- 7 Sound_7.wav
- 8 Sound_8.wav
- 我们利用产生的文件名,把录音对应的内容,和文件名对应起来。如下面所示
-
- Sound_1.wav 关心
- Sound_2.wav 刚刚
- Sound_3.wav 单一
- Sound_4.wav 糟糕
- Sound_5.wav 新鲜
- Sound_6.wav 餐厅
- Sound_7.wav 西瓜
- Sound_8.wav 车厢
-
然后再使用,本人编写的另外一个工具,可以直接产生有这些内容的文本文件,工具下载地址如下:
- 产生的文件内容如下,之所以使用这样的工具产生文本,主要是为了产生UTF-8格式的文本文件。
3. 导入SPPAS进行切分
-
经过上面的步骤,我们已经制作了批量的声音文件和文本文件,把这些文件放在同一个目录内:
-
然后打开SPPAS这个工具,点击Add files将声音文件添加到窗口里,同时,有同样文件名的txt也会被添加到窗口里,把这些文件通过使用ctrl或者shift键,全部选择,然后把右侧的几个对齐的选项选择,并且在语言里选择相应的语言,比如这里选择的是中文,ZH。
- 点击右下角的这个长的按钮,就是执行按钮,然后系统就会自动产生出来对齐音段的TextGrid文件。
-
一般情况下,会同时产生几个TextGrid
- 我们只需要最终的结果Sound_-merge.TextGrid文件。
- 这就是最终的结果:可以看到,准确度并不高,但是省去了很多人工的添加边界,输入字符的过程。