双足步行机器人上位机语音识别程序框架:
在程序的开始,首先要利用语音(Software Devlopment Kit)SDK提供的Asr SetSystemDir
()函数设置识别引擎工作的系统目录,主要是指定声学模型所在的目录,然后利用Asr
SysInit()初始化语音识别系统。
如果语音识别系统初始化成功,则可以利用As rLineInit(ResultProc)函数来创建一个
识别引擎hLine,并指定该引擎识别结果出来时的回调函数以及用户定义数据。
在本文中我们回调函数的定义为
DWORD ResultProc(HASRLINE hLine,constPASRNOTIFY pNotify,DWORD dwUserDa-ta);
其中pNotify是回调通知,它的结构体如下:
这个结构在回调函数中返回和语音以及识别结果相关的数据,其中NotifyType为通知类型,包括:
NOTIFYRESULT 1 //识别结果
NOTIFYVOICELEVEL 2 //声音大小
NOTIFYUTTBEGIN 3 //一句话开始
NOTIFYUTTEND 4 //一句话结束
data:当NotifyType为NOTIFY VOICELEVEL时,data表示当前录音的大小,Notify-Type为其他值时无意义。
dwReserve:保留,无意义。
成功创建一个识别引擎后,利用Asr GrammarLoad()函数来导入语法规则文件中的语法规则,并对语法规则进行设置。语法规则文件可以由用户按照语法规则的要求依据需要自己编写,语音识别所需要用到的语法规则,遵循ABNF范式(Augmented BNF),兼容W3C语法定义。语法规则的结构体如下所示:
我们可以使用该结构来设置、切换、关闭识别引擎对应的语法规则。其中:
nNum是语法规则的数量。
szRuleName是语法规则的名字,一个语音识别引擎可以设置多个语法规则。
成功导入语法规则后,我们利用Asr_GrammarActivate()函数来激活语法规则,设置Asr_RecSetAutoWork(true)由引擎内部自动采集语音数据,调用Asr_SetParam()设置录音以及引擎相关的参数,调用函数Asr_RecStartX(hLine)开始自动识别。
端点检测到语音大于系统设置的起始话音音量并进行录音,当语音小于设置的结束音量停止录音。语音识别系统对语音进行识别,通过回调函数得到回调通知,利用AsrGetNBe-stResult()获得识别结果。
如果不再需要语音识别,利用Asr_RecStopX(hLine)函数停止由Asr_RecStartX函数开启的识别任务,利用Asr_LineRelease(hLine)关闭hLine语音识别引擎,并且释放其相关的资源,利用Asr_SysRelease()退出系统,清除识别系统申请的资源。(www.daowen.com)
安装语音合成软件InterPhonicCNRev1.0版,安装iFlyTTS_SDK,安装加密狗配置程序(在安装盘中)。
数据源:在系统DSN里注册数据源。
驱动:Microsoft access driver(∗.mdb)。
数据库:WuKongdb.mdb。
在系统DSN中注册数据源,打开控制面板→管理工具→数据源(ODBC)→系统DSN→添加→选择Microsoft access driver(∗.mdb)点击“完成”后→在数据源名里输入dashendb同时在数据库(选择)中选择相应路径下WuKongdb.mdb即可。
把串口1和无线发射器连接起来。
把Mandarin_8KHz3.0、asrapi.dll、ASRAPI.h、asrapi.lib、Dashen.grm文件复制到当前目录下,在vc++link库中加入asrapi.lib,在工程中加入ASRAPI.h文件。
编写语法规则:新建一个记事本命名为Dashen.grm,在里面写入:
$talk=(∗∗∗|...)<0->$talks(∗∗∗|...)<0->;
$talks=
你好|
你会唱歌吗|
你多大了;
Dashen.grm文件增加语法的规则:“$ talks=”后面增加要识别的语句需顶行开始,以“|”结尾,文件的最后一条语句以“;”结尾。否则不能进行识别!
#include"stdio.h"
#include"iostream.h"
#include"asrapi.h"
#include"windows.h"
#defineONLINETEST
语音控制平台中的重要函数编写如下:
//∗∗∗∗∗∗∗∗∗∗∗∗在数据集中查找所提问题的答案∗∗∗∗∗∗∗∗∗∗∗∗∗∗
//∗∗∗∗∗∗∗∗∗∗∗∗在数据集中查找所提问题的答案∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。