集合讯飞科技语音步骤和注意事项

1.导入jar,类库和资产资源:

根据对应平台导入

 注意事项: 1.eclipse 直接导入libs 就行了,as:分别导入 libs和jniLibs.

2.android 5.0 要导入 armeabi和 armeabi-v7a 才能正常使用 不导入情况如下:

还有一个就是组件没安装错误....

2.添加权限和appid:

<!--连接网络权限,用于执行云端语音能力 -->
<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"
/>
<!--外存储写权限, 构建语法需要用到此权限
-->
<uses-permission android:name="android.permission. WRITE_EXTERNAL_STORAGE"
/>
<!--外存储读权限,构建语法需要用到此权限
-->
<uses-permission android:name="android.permission. READ_EXTERNAL_STORAGE"
/>
<!--配置权限,用来记录应用配置信息
-->
<uses-permission android:name="android.permission. WRITE_SETTINGS"
/>
<!--手机定位信息,用来为语义等功能提供定位, 提供更精准的服务
-->
<!--
定位信息是敏感信息, 可通过Setting.setLocationEnable(false)关闭定位请求 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
/>
如需使用人脸识别,还要添加:
<!--摄相头权限, 拍照需要用到
-->
<uses-permission android:name="android.permission.CAMERA" />

appid:创建一个application:


3.创建 语音听写对象:

com.iflytek.cloud.SpeechRecognizer mIat
    = com.iflytek.cloud.SpeechRecognizer.createRecognizer(this, null);

mIat.setParameter(SpeechConstant.DOMAIN, "iat");
mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
mIat.setParameter(SpeechConstant.ACCENT, "mandarin ");

4.创建对话框

    

RecognizerDialog   mDialog = new RecognizerDialog(this, mInitListener);
mDialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
mDialog.setParameter(SpeechConstant.ACCENT, "mandarin");
mDialog.setListener(mRecognizerDialogListener);

接口直接alt+enter 生成看命名就知道其作用

5.监听语音对象和显示对话框

注意事项:startlistening() 监听不能放在.show()下面:不然会有bug

而且执行onresult的是mdialog里面的监听方法,并不会执行 mRecoListener里面的onresult方法,虽然换一下位置是可以执行...但有bug

6.在onresult 中解析生成的结果

 

  private void printResult(RecognizerResult results) {
            String text = JsonParser.parseIatResult(results.getResultString());
            String sn = "";
            // 读取json结果中的sn字段
            try {
                  JSONObject resultJson = new JSONObject(results.getResultString());
                  sn = resultJson.optString("sn");
            } catch (JSONException e) {
                  e.printStackTrace();
            }
            mIatResults.put(sn, text);
//
            StringBuffer resultBuffer = new StringBuffer();
            for (String key : mIatResults.keySet()) {
                  resultBuffer.append(mIatResults.get(key));
            }
            String s = new String(resultBuffer);
//            s.endsWith("");
//           et_speech.setText(new String(resultBuffer).replaceAll("\\W",""));
           et_speech.setText(resultBuffer);

注意事项:onresult 会执行多次,所以需要一个集合存储句子.....

更多信息:http://www.xfyun.cn/doccenter/awd



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值