科大讯飞语音+ 离线听写随记
最近因为用到语音交互,所以研究了一下科大讯飞语音开放平台。做一个记录,以备日后查看。 离线听写简单介绍。首先 是科大讯飞语音包的导入 然后是加入相应的权限,这些在之前的记录中有写,这里就不赘述了。接下来是创建语音识别对象和参数设置SpeechUtility.createUtility(OutlineActivity.this, SpeechConstant.A
·
最近因为用到语音交互,所以研究了一下科大讯飞语音开放平台。
做一个记录,以备日后查看。
离线听写简单介绍。
首先 是科大讯飞语音包的导入 然后是加入相应的权限,这些在之前的记录中有写,这里就不赘述了。
接下来是创建语音识别对象和参数设置
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);
}
}
}});
然后加上 初始化监听和语音识别监听就可以了。
更多推荐
已为社区贡献3条内容
所有评论(0)