本来想把需要的文件发出来的(是问朋友要的),因为要发的是文件夹,但是我好像是只知道怎么发文件。所以只能到时候查查怎么上传再说了。
运行成功语音识别库的服务器后,就可以运行语音识别的客户端了。
一、编译运行语音识别服务器
这里的服务器文件夹是 n86(到时候发出来)。在Ubuntu下进入目录n86,打开终端直接make整个工程就可以了(即命令:make )。
make: 警告:文件“Makefile”的修改时间在未来 304246969 秒后
注意:要是make了之后出现了上面的警告,不用理会,没有影响。因为这个是由于你修改了你Ubuntu的系统时间所导致的。
/usr/bin/ld: 找不到 -lxml2
collect2: error: ld returned 1 exit status
Makefile:8: recipe for target 'voicectl' failed
make: *** [voicectl] Error 1
要是出现了上面的错误,这个是因为它找不到所需的库文件 libxml2.so 。此时你可以在它提示的路径下面找到一个库文件 libxml2.so.2 ,将这个 .2文件复制一份,命名 libxml2.so ;或者将 libxml2.so.2 改名为 libxml2.so 。完成这个后需要回到之前的 n86 目录再make 。
make成功之后,需要运行得到的目标程序 voicectl 。
运行命令:./voicectl 127.0.0.1
标色的改为你自己虚拟机的ip地址(可以使用命令:ifconfig 查看ip地址)。
成功运行后会出现提示你开始录音了。录音时,会在n86文件夹中生成一个 cmd.pcm 文件(播放对应的语音会用到),这个文件存放了你刚刚的录音。
二、自定义语音
以上的操作只能播放设置好的语音,要编写新的语音需要更改一些文件内容。
2.1、这个服务器与客户端的连接过程
2.2、修改语音识别服务器相关内容
在你下载的科大讯飞目录 x86 下的 bin 目录里的 cmd.bnf 文件,这个文件里面放的是语音识别的内容所对应 id 号(内容如下)。当自定义修改时,也需要在画圈的行里进行相应的修改添加(按它的格式添加)。改完这个文件后需要重新启动语音识别服务器 x86 。
2.3、修改语音识别客户端修改内容
在 n86 客户端目录下的 voicectl.c 文件,这个文件可以将语音识别服务器返回的 id 号播放对应的语音。里面有以下代码段:
在对应的地方添加新的指令,播放对应的mp3。
添加一条xxx: (xxx.mp3 需要在线去把文字转换成语音.mp3)
if(id_num=10)
{
system("madlay ../mp3/xxx.mp");
}
修改完之后,需要重新编译,在终端先执行命令: make clean ,再执行命令: make