項目中用到了語音轉文字的功能,順手研究了一下訊飛的相關內容,記錄了一下步驟,坑就是注冊時需要綁定微信和手機號。獲取APPID
根據http://www.xfyun.cn/doccenter/awd依次完成sdk導入。
注意將assets文件內容也放入自己的項目中。
應用程序的入口注冊: SpeechUtility.createUtility(context, SpeechConstant.APPID +”=注冊時獲取的APPID”);
語音轉文字的具體實現: PRivate void startZhVoice(String voiceType) { RecognizerDialog dialog = new RecognizerDialog(this, null); dialog.setParameter(SpeechConstant.LANGUAGE, “zh_cn”); //設置語言類型 en_us 英語 dialog.setParameter(SpeechConstant.ACCENT, “mandarin”); dialog.setParameter(SpeechConstant.ASR_PTT, “0”); //設置是否有標點符號 0無1有 dialog.setListener(new RecognizerDialogListener() { @Override public void onResult(RecognizerResult recognizerResult, boolean b) { printResult(recognizerResult, TranslateActivity.this.voiceType); }
@Override public void onError(SpeechError speechError) { } }); dialog.show(); Toast.makeText(this, "請開始說話", Toast.LENGTH_SHORT).show();}//回調結果:private void printResult(RecognizerResult results, String voiceType) { String text = parseIatResult(results.getResultString()); // 轉后的內容自行處理}public static String parseIatResult(String json) { StringBuffer ret = new StringBuffer(); try { JSONTokener tokener = new JSONTokener(json); JSONObject joResult = new JSONObject(tokener); JSONArray Words = joResult.getJSONArray("ws"); for (int i = 0; i < words.length(); i++) { // 轉寫結果詞,默認使用第一個結果 JSONArray items = words.getJSONObject(i).getJSONArray("cw"); JSONObject obj = items.getJSONObject(0); ret.append(obj.getString("w")); } } catch (Exception e) { e.printStackTrace(); } return ret.toString();}新聞熱點
疑難解答