android简单接入讯飞语音识别

发布时间:2019-06-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了android简单接入讯飞语音识别脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

讯飞语音创建项目流程:

第一步:
注册讯飞语音,这个无需多说,
第二步:
注册成功后登录:点开右上角的控制台:就可以看到自己的项目了:

第二步
第三步:
在控制台的左边有可以看到我们的应用,如果没有就新建一个:

第三步

第四步:根据要求填写相关内容 并提交即可:

android简单接入讯飞语音识别

第五步:记住Appid,并开通相关服务

android简单接入讯飞语音识别


第六步,开通相关服务
我这里仅仅只开通了第一个语音听写然后就会跳转到下面的页面

android简单接入讯飞语音识别

第七步:下载sdk:

这里一定要选择自己的项目,因为我们下载的sdk是和前面的Appid相关的,

android简单接入讯飞语音识别

android简单接入讯飞语音识别

到现在,我们的准备工作完成了:下面就是在项目中配置相关sdk,

在项目中配置讯飞语音的相关sdk,这里使用最简单的Ctrl+C 和Ctrl+V:

第一步:使用讯飞自带UI接口,直接将assets下文件拷贝到项目中的相应位置;

android简单接入讯飞语音识别

第二步,开始实现讯飞语音识别
首先,权限

    <!--连接网络权限,用于执行端语音能力 -->
    <uses-permission andROId:name="android.permission.internet"/>
    <!--获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <!--读取网络信息状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_statE"/>
    <!--获取当前wifi状态 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <!--允许程序改变网络连接状态 -->
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    <!--读取手机信息权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <!--读取联系人权限,上传联系人需要用到此权限 -->
    <uses-permission android:name="android.permission.READ_CONTACTS"/>

其次,初始化:

  // 初始化识别对象
        SpeechUtility.createUtility(this, SpeechConstant.APPID + "=58c93888");

这里的APPID就是前面的创建应用时的appid

最后,调用讯飞的语音识别并监听返回值:

      //1.创建RecognizerDiaLOG对象
        RecognizerDialog recognizerDialog = new RecognizerDialog(context, null);
        //2.设置accent、language等参数
        recognizerDialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");//语种,这里可以有zh_cn和en_us
        recognizerDialog.setParameter(SpeechConstant.ACCENT, "mandarin");//设置口音,这里设置的是汉语普通话 具体支持口音请查看讯飞文档,
        recognizerDialog.setParameter(SpeechConstant.TEXT_ENCODING, "utf-8");//设置编码类型

        //其他设置请参考文档http://www.xfyun.cn/doccenter/awd
        //3.设置讯飞识别语音后的回调监听
        recognizerDialog.setListener(new RecognizerDialogListener() {
            @override
            public void onResult(RecognizerResult recognizerResult, boolean b) {//返回结果
                if (!b) {
                    Log.i("讯飞识别的结果", recognizerResult.getResultString());
                }
            }

            @Override
            public void onError(SpeechError speechError) {//返回错误
                Log.e("返回的错误码", speechError.getErrorCode() + "");
            }

        });
        //显示讯飞语音识别视图
        recognizerDialog.show();

语音识别的结果返回的是json各式,所以,如果需要得到识别结果,需要解析json.。我这里使用的是fastjson,需要在build.gradle配置:

    compile 'com.alibaba:fastjson:1.2.8'

解析代码:

JSONObject jsonObject = JSON.parseObject(resultString);
        JSONArray jsonArray = jsonObject.getJSONArray("ws");
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject1 = jsonArray.getJSONObject(i);
            JSONArray jsonArray1 = jsonObject1.getJSONArray("cw");
            JSONObject jsonObject2 = jsonArray1.getJSONObject(0);
            String w = jsonObject2.getString("w");
            stringBuffer.append(w);
        }
        Log.i("识别结果", stringBuffer.toString());

最后的结果:

android简单接入讯飞语音识别

android简单接入讯飞语音识别

@H_109_360@

android简单接入讯飞语音识别

android简单接入讯飞语音识别

ok:到目前为止,讯飞的简单语音识别基本上实现,需要注意的是,下载的sdk一定要和自己的Appid匹配,不然就会出现下面的情况:
用户校验失败:

android简单接入讯飞语音识别


所以, 把别人下好的sdk复制到自己的项目中时,这中情况是无法使的。

总结:

接入讯飞语音识别的几个要点:

  • 1.最重要的是:Appid一定要和自己下载的sdk相匹配
  • 2.记得要初始化: SpeechUtility.createUtility(this, SpeechConstant.APPID + "=58c93888");
  • 3.更多功能需要去阅读讯飞的开发文档http://www.xfyun.cn/doccenter/awd

项目码:
http://git.oschina.net/bcbbcc/myiflytek

脚本宝典总结

以上是脚本宝典为你收集整理的android简单接入讯飞语音识别全部内容,希望文章能够帮你解决android简单接入讯飞语音识别所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。