语音识别系统相信大家一定很熟悉,但这类系统往往都是计算机或者操作系统自带的一些功能,很难让用户进行自己想要的控制。本文危险漫步就为大家介绍怎么编程实现自己的语音识别控制系统,读者可以在原有代码的基础上进行二次修改开发,制作更加强大的控制系统。
为了方便用户使用,我们将控制模块编写成dll动态链接库的模式进行调用,这样就可以发布我们的模块了。本文使用的操作系统是windows XPSP3。在正式开发之前,我们需要安装windows平台下的speechSDK开发包,以便支持我们的应用程序。SDK开发包已经为读者打包。安装完毕之后我们需要在控制面板里会增加语音控制选项。我们需要对该选项进行相应的设置,语言类型设置为简体中文。选择完毕之后我们点击“配置麦克风”,弹出界面,我们开始测试麦克风,然后进行下一步的训练测试。训练测试完毕之后我们就可以开始开发了。 系统配置完毕,开始配置开发环境,采用的开发平台是vc++6.0,我们打开“工具”“选项”,在“目录”选项卡添加我们的SDK的头文件的目录,。然后添加lib库,都添加完毕之后我们就可以开始编码了。现在我们需要确定语音识别的命令有哪些,作为测试这里就用简单的几个进行测试,读者可以自行定义,这里的命令关键词。我们将关键词按行写入一个xml的文本文件,然后用sdk的工具将该文本文件进行编译,编译之后我们的语音识别引擎就可以认识这些关键词了。来到我们的sdk安装目录,找到一个名为gc.exe的程序,这个就是我们的编译器,我们将命令文本文件CmdCtrl.xml放到该目录下,通过cmd进入该目录-然后输入“gc CmdCtrl.xml”,比那一起就会开始编译我们的命令,很快就会编译成功。这是当前目录下会产生一个后缀名为cfg的文件,这就是我们需要的命令文件。我们将该文件拷贝出来,有待使用。到这里为止,我们所有的准备工作都已经完成了,下面就开始写代码了。
我们为了方便使用dll库,这里就直接将能用到的函数封装到dll中,函数以及说明如下:
这里我们测试使用的函数就是要通过语音来控制播放音乐、停止音乐,控制函数如下所示:
上面的代码很好的方便用户使用,我们这里将命令放到文本文件里,然后读取文件并将文件内容存放到数组中,这样我们的应用程序就可以通过数组的下标确定过户的命令是什么了。dll中其他的函数代码笔者就不列举了,笔者已经编译好了模块,读者可以直接使用dll就可以了。下一步就要编写dll测试程序了,这里采用动态调用。初始化的工作我们放到按钮上来实现,代码方法如下:
初始化完成之后,我们就可以通过控制函数的返回值确定用户读出的命令了。
ok,这些代码实现完毕,我们就可以测试了,将CmdCtrl.cfg命令文件、cmd.txt、speech dll.dll动态库文件、清晨.wav音频文件放到一个目录下。打开测试程序,点击按钮,这时语音引擎就已经打开了,下面就可以按照命令文件进行控制了。对准麦克风,用普通话说“音乐”,这时候就会听见我们程序播放的音乐了。再读一遍“停止”,这是音乐就会停止播放了。其他命令的效果界面。
本文给出的dll动态链接库用户可以直接使用,命令文件自己编制就可以实现自己想要的命令效果,测试代码以及dll模块已经为大家打包了,有兴趣的读者可以尝试自己修改,打造自己的语音控制系统。