Android 科大讯飞语音识别(详细步骤+源码) |
您所在的位置:网站首页 › 手机上的录音功能怎么用 › Android 科大讯飞语音识别(详细步骤+源码) |
前言
语音识别在现在的APP中是常见的,但是通常小的项目中我们不会去费心思自己去做这一块的业务功能开发,常规的是接入第三方的SDK快速实现功能,比如百度、讯飞之类的,百度语音识别之前我已经写过了,本着雨露均沾的原则的,写这篇讯飞的SDK对接步骤,开始吧~ 效果图 首先呢,你先去注册讯飞的开发者账号,点击讯飞开放平台前往注册,
OK,现在滑动到下面下载Android SDK 我取名是XFASRDemo,然后Finish,等待项目创建好之后,复制文件中libs里面的三个文件,到项目的libs中 创建SpeechApplication.java 打开AndroidManifest.xml,增加权限配置 配置SpeechApplication和注册权限
改完记得Sync一下 然后修改布局activity_main.xml 接下来就是MainActivity了 ③ 编码 一、声明变量和初始化 private static final String TAG = "MainActivity"; private SpeechRecognizer mIat;// 语音听写对象 private RecognizerDialog mIatDialog;// 语音听写UI // 用HashMap存储听写结果 private HashMap mIatResults = new LinkedHashMap(); private SharedPreferences mSharedPreferences;//缓存 private String mEngineType = SpeechConstant.TYPE_CLOUD;// 引擎类型 private String language = "zh_cn";//识别语言 private TextView tvResult;//识别结果 private Button btnStart;//开始识别 private String resultType = "json";//结果内容数据格式同时你要实现这个点击事件的监听
在onCreate方法中调用 initPermission();//权限请求 三、语音监听 /** * 初始化监听器。 */ private InitListener mInitListener = new InitListener() { @Override public void onInit(int code) { Log.d(TAG, "SpeechRecognizer init() code = " + code); if (code != ErrorCode.SUCCESS) { showMsg("初始化失败,错误码:" + code + ",请点击网址https://www.xfyun.cn/document/error-code查询解决方案"); } } }; /** * 听写UI监听器 */ private RecognizerDialogListener mRecognizerDialogListener = new RecognizerDialogListener() { public void onResult(RecognizerResult results, boolean isLast) { printResult(results);//结果数据解析 } /** * 识别回调错误. */ public void onError(SpeechError error) { showMsg(error.getPlainDescription(true)); } }; /** * 提示消息 * @param msg */ private void showMsg(String msg) { Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); }里面用到一个方法,用于解析监听到的结果 四、数据解析 /** * 数据解析 * * @param results */ private void printResult(RecognizerResult results) { String text = JsonParser.parseIatResult(results.getResultString()); String sn = null; // 读取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)); } tvResult.setText(resultBuffer.toString());//听写结果显示 }里面用到一个JsonParser的工具类,需要手动去创建一个 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |