首先区分一下语音听写和语音识别二者的不同。

      语音听写是把你说话的内容转换成文字内容,而语音识别是把你在abnf/bnf的语法文件里定义的关键词识别出来。

显然如果你是想用在输入法中的话当然是使用前者,如果你想打电话,发控制家电的指令当然用后者。


接下来我简单的介绍下离线识别的内容,本人刚研究两三天,掌握的也比较浅,有不妥之处,还望指出。


同样第一步是把准备工作做好,加载语音识别包,加入相关权限(这部分内之前的博客里提到过,这里就不赘述)。

其中在线识别和离线识别包有点不同,离线识别包要多一个common.jet.这个文件是要收费的,不过可以先下载体验版的先用着。


然后就是code了,第一步初始化,当然你要有appid,没有的可以去讯飞官网申请。

SpeechUtility.createUtility(OnLineReg.this, SpeechConstant.APPID +"=12345678"); 
</pre><pre name="code" class="html">2.创建SpeechRecognizer对象,并得到语法文件<pre name="code" class="html">mAsr = SpeechRecognizer.createRecognizer(context, mInitListener);//离线识别语音初始化监听
mLocalGrammar=FucUtil.readFile(this,"call.bnf","utf-8");//这里使用的离线语法文件

 

3.构建语法文件

if (mEngineType.equals(SpeechConstant.TYPE_LOCAL)){
			mAsr.setParameter(SpeechConstant.TEXT_ENCODING, "utf-8");
			mAsr.setParameter(SpeechConstant.ENGINE_TYPE, mEngineType);
			ret = mAsr.buildGrammar("bnf", mLocalGrammar , localGrammarListener);
					if (ret != ErrorCode.SUCCESS){
					Log.d(TAG,"语法构建失败,错误码: " + ret);
					}else{
					Log.d(TAG,"语法构建成功");
				         }
4,设置参数并启动监听

//设置返回值数据格式
			mAsr.setParameter(SpeechConstant.RESULT_TYPE, "json");
			//设置本地识别使用语法id
			mAsr.setParameter(SpeechConstant.LOCAL_GRAMMAR, "call");
			//设置本地识别的门限值
			mAsr.setParameter(SpeechConstant.ASR_THRESHOLD, "30");<pre name="code" class="html">                ret = mAsr.startListening(mRecognizerListener);
		Log.d(TAG,"语法构建成功 " + ret);	
		}
		if (ret != ErrorCode.SUCCESS) {
			if(ret == ErrorCode.ERROR_COMPONENT_NOT_INSTALLED){
				//未安装则跳转到提示安装页面
				Log.d(TAG,"未安装则跳转到提示安装页面 " + ret);	
			}else {
				Log.d(TAG,"识别失败,错误码: " + ret);	
			}
		}
demo 的bnf 文件
<pre name="code" class="html">#BNF+IAT 1.0 UTF-8;
!grammar order;
!slot <contact>;
!slot <callPre>;
!slot <callPhone>;
!slot <callTo>;
!start <callStart>;
<callStart>:[<callPre>][<callTo>]<contact><callPhone>|[<callPre>]<callPhone>[<callTo>]<contact>;
<contact>:张海洋;
<callPre>:我要|我想|我想要;
<callPhone>:打电话;
<callTo>:给;

分享的很简单,具体内容可以参考讯飞语音开发文档和我写的离线识别demo,离线识别体验包三个月内有效。

另外下载demo以后请把appid改为开发者申请的appid。

http://download.csdn.net/detail/t03330130/8944945

 
 



Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐