公司内部有需求,需要在项目中加上离线命令词的使用,之前做过了在线语音识别,而离线的语音识别和在线的最大区别是离线需要对应的离线资源包!当然,离线识别的识别度和在线是有一定的差距的,很多时候识别不准,不过也算是够用了.
和在线的一样,第一步,如果科大讯飞没有账号先去注册账号,创建项目,下载对应离线命令词SDK(体验版,35天使用,3个装机量),下载好了之后,这里需要注意的是一个资源文件common.jet位置的摆放!(在assets目录下创建asr文件夹,将common.jet拷进去,这就是离线命令所必须要的离线资源文件!),其他的文件还是和在线的一样对应放入就行.
第二步,最好在application里面初始化appId:
第三步:初始化识别对象:
初始化监听器:
第四步: 构建语法:
构建语法监听器
第五步:识别监听
在合适的时候调用开始识别监听器就行了
获取识别资源路径
这里面还缺一样东西,也就是bnf语法文件,这里也就直接上图了,文件我放在assets目录下:
图片中指向的地方要注意,要以#BNF开头,在线是以#ABNF开头,,grammar后跟的是你这个文件的文件名!具体的语法逻辑请参考:
http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=7595
在这里就完成了离线语音识别的功能,大功告成!