中国语音学报(第11辑)
上QQ阅读APP看书,第一时间看更新

2.数据准备

要使用xSegmenter工具来切分和标注自己的语音库,用户应提前准备好下述文件:

(1)wav格式的声音文件,其扩展名为*.wav,默认采样率为16000Hz,声道数为1。通常而言,训练用的声音文件越多越好,但每个声音文件都不宜过长,最好是字、词、句等类型的材料。如果属于篇章录音材料,则建议提前将其截取成以语句为单元的多个声音片段。

xSegmenter程序会根据用户在其参数配置文件(setting.ini)中所指定的数据文件路径遍历搜索并读取该文件夹(包含其子文件夹)之中所有的声音文件,自动检测各个声音文件的采样率和声道数等属性,并会以*.raw为扩展名将这些声音文件另存至DATA文件夹之中,DATA文件夹由程序自动生成。也就是说,此程序可以同时处理多个不同文件夹中的声音文件,只需给定其公共的父路径即可。这一数据拷贝与整理过程不会影响用户的原始声音文件属性,另存至DATA文件夹之中的声音文件会被统一修改至如下属性:采样率为16000Hz,声道数为1。如果用户提供的是双通道的声音文件,则仅提取其左声道的声音数据进行处理和分析。此外,程序还会自动给这些声音数据添加一些随机噪声。

需要注意的是,原始声音文件的路径和文件名之中不可同时出现三个相邻的下划线符号“______”,这是由于该符号已被程序用来标记文件的目录层级结构关系。

(2)带有分词信息的发音文本文件,默认扩展名为*.txt,发音文本文件建议都使用UTF-8编码格式,以便于Praat程序能够对其进行加工处理。每个原始声音文件都应该有一个与之相对应的发音文本文件,以文字形式记录该声音文件所录制的发音内容。用户应事先检查文本内容与声音内容之间的一致性。除扩展名不同外,发音文本文件与声音文件的原始存放路径和文件名均应完全相同,例如“../0001.txt”对应于“../0001.wav”。

为便于程序处理,用户在制作发音文本文件时,其文字内容应遵循以下基本格式:

A.发音文本内容之中不可换行,前后词语之间必须用英文空格分开,以便于切分和提取词语内容,并在此基础上进行相应的拼音转写;如何分词,可由用户自行决定,只要在相应的发音词典里能够给出发音文本中所出现的全部词条及其读音形式即可。有关发音词典的制作方法,下文将有详述。

B.除了标点符号和文字内容之外,发音文本之中不可使用其他特殊符号,而且所有标点符号(除英文的单引号之外,例如I'll,此时程序会把I'll当作一个词语来处理)均会被程序用空格代替,这步操作不会影响到发音文本文件的原始数据。如果发音文本中出现的英文单引号并非用作英语词语拼写中的上述功能,用户应事先在原始发音文本文件中自行替换。

C.在发音文本中,凡是被包含在“<>”、“[ ]”或“{ }”之中的文本内容会被自动忽略,程序不对其进行拼音转写。

发音文本的基本格式如下:

我 是 学生,他们俩 也是 学生。

我 是 学生,他们 俩 也 是 学生。

我 是 学 生,他 们 俩 也 是 学生。

(3)发音词典文件,给出发音文本文件中所出现的全部词条及其读音形式,发音内容可细分到音素或声韵母,并容许带有声调或重音等韵律特征信息。发音词典还容许出现多音词,多个条目分行书写即可,常用的读音形式写在前面。发音词典应包含原始发音文本中出现的所有词条,并应符合以下基本格式:

A.词语内部不能出现空格,词语与读音之间用英文空格分隔。

B.相邻音素或声韵母之间用英文空格分开,音节之间用“|”分开。

C.重音或声调等韵律信息可在音素末尾用0—9等数字标示,儿化韵可以用“r”直接标记在韵母之后。但需要注意的是,a和ar会分别建立声学模型。

D.字母不区分大小写。

E.虽然此程序可以支持用户采用国际音标符号来标记词语读音,但建议尽可能使用26个英文字母及其组合形式来标记词语读音,并尽可能避免特殊符号。

F.一行一个词条。

发音词典的条目示例如下:

中国 zh ong1|g uo2

人民 r en2|m in2

朝阳 zh ao1|yang2

朝阳 ch ao2|yang2

他们俩 t a1|m en0|l ia3

安徽人 an1|h ui1|r en2

关门儿 g uan1|m enr2

……

xSegmenter程序会基于发音文本中的英文空格符号提取出所有词条,并在发音词典中查找其相应的读音内容,然后在此基础上将每个发音文本文件转写成相应的拼音序列,用于语音声学模型训练。对于那些在发音词典里查找不到的词条,程序会采用“unk”来标记其发音形式,并会在运行过程之中提醒用户加以检校修改。为了提高声学模型的精度,词典中的拼音内容应尽可能准确,且具有一定的系统性。用户可以自由定义自己的拼音符号系统,只要词典内容能够满足上述格式即可。

建议用户采用ANSI编码格式保存发音词典文件,并应确保所有字符(包括词条及其拼音)在记事本程序中打开时无任何乱码。如果采用ANSI格式出现了字符乱码现象,则可采用UTF-8格式去保存发音词典文件,在此情况下,运行xSegmenter程序之前需要使用下文提到的字符编码转换方法对全部发音文本文件以及发音词典文件进行预处理,将它们统一转换成ANSI编码状态下能够正常显示的字符编码形式。这一操作不会影响用户的原始发音文本文件和发音词典文件。

用户在准备好上述三类文件之后,可以开始运行xSegmenter程序。如果是首次运行该程序,系统会自动生成一个名为setting.ini的参数配置文件,用户应认真阅读该配置文件中的相关内容,并在该文件中设置好相应的配置参数,然后再次运行xSegmenter程序。如果已经存在setting.ini文件,则可直接修改其中的相应参数,然后再次运行xSegmenter程序。