
5.字符编码转换
如果在发音文本或发音词典中出现了一些必需在UTF-8编码格式下才能正常显示的字符,则需要事先进行字符的编码格式转换,将全部文本内容(包含发音文本和发音词典)转换成特定的编码形式。下面对此举例加以简要说明。
图3 蒙古文字符的文件编码与显示结果
上图的第一个文件为UTF-8编码格式,打开之后,蒙古文字符可以正确显示;第二个文件为ANSI编码格式,打开之后就全部变成了乱码。在此情况下,用户应将发音文本文件保存为UTF-8字符编码格式,并采取Tools文件夹中给出的Praat脚本程序“转换至ANSI字符串编码.scp”将发音文本文件以及发音词典文件的所有内容进行重新编码处理,得到一系列新的发音文本文件,编码转换之后的发音文本文件扩展名为*.rec,与原发音文本文件不会冲突。转换之后的发音文本文件内容如下所示:
图4 对发音文本进行编码处理后的结果
这个脚本程序不仅会对原始的发音文本文件进行处理,还会对原始的发音词典文件(UTF-8编码格式)进行同样的编码转换处理,并会生成一个扩展名为“*.new”的发音词典文件,经过编码转换之后的发音词典数据如图5所示,其上部分为原始的发音词典内容,下部分为经过转换之后的发音词典内容。后期在使用xSegmenter程序时应使用新生成的发音词典文件来执行音段自动切分与标注操作,以避免出现字符编码问题。
图5 对发音词典文件进行编码处理后的结果
脚本程序在执行编码转换时,还会自动生成一个字符编码转换时所用到的对应编码表,内容如图6所示,以记录原字符编码及其相对应的新编码形式。原发音文本文件和发音词典文件中所有以空格分隔的字符或字符串均会得到一个唯一的编码形式。字符编码转换结束之后,用户可重新配置setting.ini文件中的参数,让程序针对新生成的发音文本文件和发音词典文件进行操作。等到程序完成音段切分与标注,并生成TextGrid文件之后,用户通过调用Tools文件夹中所给出的Praat脚本程序“转换至UTF8字符串编码.scp”将TextGrid文件中的字符编码替换回原来的字符形式,此时还会用到图6所示的字符转换编码表(*.bma)。
图6 字符转换编码表
另外,如果原发音文本文件中用到的标点符号不是中文或英文的标点符号,则需要提前加以替换,以便于程序能够正确断句和确定词语分界。