最近因为用到语音交互,所以研究了一下科大讯飞语音开放平台。

做一个记录,以备日后查看。  

离线听写简单介绍。


首先 是科大讯飞语音包的导入 然后是加入相应的权限,这些在之前的记录中有写,这里就不赘述了。


接下来是创建语音识别对象和参数设置

SpeechUtility.createUtility(OutlineActivity.this, SpeechConstant.APPID +"=558cc56a"); 
		//无UI
		mIat = SpeechRecognizer.createRecognizer(context, mInitListener);
		//有UI
		mIatDialog = new RecognizerDialog(OutlineActivity.this, mInitListener);
		mIat.setParameter(SpeechConstant.DOMAIN, "iat");

             // 清空参数
		mIat.setParameter(SpeechConstant.PARAMS, null);

		// 设置听写引擎
		mIat.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);
		// 设置返回结果格式
		mIat.setParameter(SpeechConstant.RESULT_TYPE, "json");

			mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
			// 设置语言区域
			mIat.setParameter(SpeechConstant.ACCENT, "mandarin");
//下载语音+  离线识别需要用这个
if(!SpeechUtility.getUtility().checkServiceInstalled ()){  
		    String url = SpeechUtility.getUtility().getComponentUrl();  
		    Uri uri = Uri.parse(url);  
		    Log.d("activityHD","-----mInstaller.install();---" );
		    Intent it = new Intent(Intent.ACTION_VIEW, uri);  
		    it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		    context.startActivity(it);  
		}   
		 else {
				String result = FucUtil.checkLocalResource();
				if (!TextUtils.isEmpty(result)) {
					Log.d("activityHD","-----!TextUtils.isEmpty(result---" +result);
					edittext.setText(result);
				}
			}

btn.setOnClickListener(new OnClickListener(){

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			
			 int ret = 0;
			ret = mIat.startListening(mRecognizerListener);
			if (ret != ErrorCode.SUCCESS) {
				if(ret == ErrorCode.ERROR_COMPONENT_NOT_INSTALLED){
					//未安装则跳转到提示安装页面
//					mInstaller.install();
					Log.d("activityHD","未安装则跳转到提示安装页面");	
				}else {
					Log.d("activityHD","识别失败,错误码: " + ret);	
				}
			}
		}});

然后加上 初始化监听和语音识别监听就可以了。


Logo

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

更多推荐