sphinx4 STEP BY STEP

来源:互联网 发布:幼儿编程游戏 编辑:程序博客网 时间:2024/05/01 11:02
sphinx系统是一个拥有悠久历史的语音识别系统,
传说中是第一个实用的10数字语音系统。
是由卡奈基.美隆大学研发。

sphinx3.x是基于C语言的最新版本,sphinx和sphinx2请大家不要去研究了。
sphinx for ppc是一个在PocketPc上实现的嵌入式语音识别系统。

而sphinx4是完全用JAVA编写实现的语音识别系统,
因为JAVA的特性,在平台间移植方便很多。

需要注意的是sphinx3和sphinx4不是先后的关系,而是平行的,
主要区别是前一个用C语言实现,后一个用JAVA语言实现。

因为种种原因我研究sphinx4有一个月时间了,
根据自己需要阅读修改了FrontEnd部分源代码,
下面回贴中,我将一步步的讲述,
如何开始Sphinx4研究之旅。 

1.sphinx4主页是
http://cmusphinx.sourceforge.net/sphinx4/
请把它加入收藏,谢谢。
上面有下载的连接。

现在最新的版本应该是这个sphinx4-1.0beta-bin.zip
解压到e:/sphinx4
(我以这个目录为例,以后的讲述都是假设这个为根目录,
而且以"sphinx4>"这个代替命令行下的这个目录 )

给PC接上麦克风(Mic),cmd进入命令行
运行
sphinx4> java -jar bin/HelloDigits.jar
这是一个识别单个数字的DEMO程序 

2.如果你还没能用那个识别数字的DEMO
检查了一下自己英语数字的发音。

那么说明你环境有问题,请检查以下事项

a.是否有JAVA运行环境,在命令行下敲 java
若没有,这样的一些演示
“Usage: java [-options] class [args... "
说明JAVA运行环境有问题,
到http://java.sun.com/j2se/1.4.2/download.html
点连接"Download J2SE JRE "下载并安装JAVA运行环境。

b.若可以启动,但对着麦克风说话,DEMO没能正确识别出来。
那么请检查麦克风是否接好,在QQ,或MSN,或SKYPE中语聊一会
确认自己的麦克风连接没有问题。

如果你是用的LINUX系统或其他类UNIX系统,
那么需要修改配置文件,才能正确开始。 

3. 如果你已经成功运行DEMO,那么你已经对SPHINX4有了感性认识。
下面来深入一些,了解从语音到识别的这样一个过程。

附件是识别器的示意图。

下面简单说一下各模块的用处

FrontEnd:
前端处理模块,把语音转换成特征就是由这个模块完成。
FrontEnd经过简单的配置后可以
将Wav文件、麦克风甚至倒谱(cepstrum)文件做为输入。

Decoder:
解码器,将搜索语言模型,找出与特征相对应的识别项(一般是音素)

Linguist:
金山给的翻译是语言学家,这样称为语言模型更贴切。
它包括三个部分,
AcousticModel:声学模型,建立输入声音和音素的关系
Dictionary:字典,可以接受的音素范围。
LanguageModel:语言模型,建立字与字之间先后语言关系。
这三个模型是预先建立好的,我会在模型创建那段去
仔细讲这三个模型。

更详细的信息从下面的白皮书上可以查到
http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4Whitepaper.pdf