本文档介绍Sphinx4在Windows下的中文训练过程及注意事项,与本文档配套的是我自己的训练实例bergtrain和用到的软件。
本文档编写日期 2013-04-23
1、为什么要训练?
sphinx4目前的版本中仅提供了英文等语音识别库。中文的库是PTM或semi类型的,在java版sphinx中无法使用。
2、Sphinx的训练指哪些内容?
在Sphinx中有语言模型、声学模型等概念,如果你不想了解这些,请参考以下内容:
a1、中文每个字的标准发音已经有一个较为全面的文件进行了标注
这个文件就是zh_broadcastnews_utf8.dic(下称这类文件为发音字典),在sphinx网站上可以下载,我们也包含了它。
下面是该文件的片断,它用类似拼音的方式标注了每个字或词的发音。
昌 ch ang
昌北 ch ang b ei
昌必 ch ang b i
昌都 ch ang d u
昌赫 ch ang h e
a2、需要告诉sphinx我们经常使用的字、词是哪些,它们出现的频率如何
由于开放式语音识别尚难实现,所以sphinx实际上只能较好的处理相对小的语言集合。
因此,针对特定的领域,告诉sphinx该领域的词汇和各词出现的频率将极大提高识别率。
a3、需要告诉sphinx每个字、词的真正读音
发音字典告诉sphinx每个字的标准读音,但面对的说话人往往不会以标准读音来朗读。
因此sphinx需要学习说话人的“口音”。
如果训练时的读者发音比较标准,则sphinx能“举一反三”,识别其他不那么标准的读者的语音。
推荐的做法是训练一些典型的口音:标准男、女声,童音,最后再考虑特定用户的口音。
3、如何准备训练内容所需的原料?
需要准备两大内容:1)文本语料文件,2)语料录音文件。
文本语料文件给出2.a2中需要的内容,在bergtrain的etc文件下的berginput.txt文件就是一个预料文件。
它以行为单位,给出了150个中文句子。
语料录音文件是根据文本语料文件,朗读它的每行/句话,保存到每一个语音文件即可。
语料文件中的语句应该尽量选择领域相关的,在覆盖领域内名词的前提下,覆盖尽可能多的通用词汇。
4、训练环境及注意事项
本文的训练软硬件如下:
硬件:T60P笔记本,机器自带录音设备;操作系统为Win7 32位。
软件:Sphinx
cmuclmtk-0.7-win32.zip
pocketsphinx-0.8-win32.zip
sphinxbase-0.8-win32.zip
sphinxtrain-1.0.8-win32.zip
sphinx4-1.0beta6-bin.zip,用于编写java版的识别软件所需的库
脚本执行软件
ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi
ActivePython-2.7.2.5-win32-x86.msi
录音和处理软件
audacity-win-2.0.3rc1.zip,可进行录音和声音文件处理(如降噪),免费软件
FairStars.zip,可进行批量录音(V3.5绿色版)
文本编辑软件UltraEdit,UltraEdit-32.rar绿色版
注意:
文件格式
语料文件必须使用UltraEdit进行编辑,
在编辑后,使用 文件-转换-ASCII转UTF-8(UNICODE编辑),指定文件中的中文使用utf8编码。
在保存前,设置格式如下:
换行符:UNIX终束符 - LF 指定文件中的回车/换行符为编码0A的换行符
格式:UTF-8 - 无BOM
每个文件的末尾必须有一个回车! 这个回车将在保存时被替换为编码0A的换行符,训练脚本需要这个符号来确认文件的结束。
录音文件
如果你不希望去编辑训练中的配置文件,则在使用FairStars录音时作如下设定:
进入菜单和对话框 选项-显示录音选项-编码-WMA,
设定:采样率(16000Hz)、通道(单声道)、比特率(16Kbps)
5、训练步骤
下面逐步从零开始进行训练
5.1 软件环境的安装
将本文档所在的文件夹解压或拷贝到d:\,即本文档路径是d:\sphinxtrain\Sphinx中文训练教程.txt
1)点击安装ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi和ActivePython-2.7.2.5-win32-x86.msi;
2)解压Sphinx中除sphinx4-1.0beta6-bin.zip外的压缩文件到d:\sphinxtrain下
1