欢迎使用CSDN-markdown编辑器

来源:互联网 发布:网络词搬砖是什么意思 编辑:程序博客网 时间:2024/05/21 08:40

讯飞语音转文字

项目中用到了语音转文字的功能,顺手研究了一下讯飞的相关内容,记录了一下步骤,坑就是注册时需要绑定微信和手机号。获取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();}
0 0
原创粉丝点击