语音听写

语音听写能力,目前msc sdk支持在线和离线模式,其相关调用说明如下:

1.在线听写

sdk提供了两种识别方式,分别为带UI识别和无UI方式:

一.无UI识别

//初始化识别无UI识别对象
//使用SpeechRecognizer对象,可根据回调消息自定义界面;
mIat = SpeechRecognizer.createRecognizer(IatDemo.this, mInitListener);

//设置语法ID和 SUBJECT 为空,以免因之前有语法调用而设置了此参数;或直接清空所有参数,具体可参考 DEMO 的示例。
mIat.setParameter( SpeechConstant.CLOUD_GRAMMAR, null );
mIat.setParameter( SpeechConstant.SUBJECT, null );
//设置返回结果格式,目前支持json,xml以及plain 三种格式,其中plain为纯听写文本内容
mIat.setParameter(SpeechConstant.RESULT_TYPE, "json");
//此处engineType为“cloud”
mIat.setParameter( SpeechConstant.ENGINE_TYPE, engineType );
//设置语音输入语言,zh_cn为简体中文
mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
//设置结果返回语言
mIat.setParameter(SpeechConstant.ACCENT, "zh_cn");
// 设置语音前端点:静音超时时间,单位ms,即用户多长时间不说话则当做超时处理
//取值范围{1000~10000}
mIat.setParameter(SpeechConstant.VAD_BOS, "4000");
//设置语音后端点:后端点静音检测时间,单位ms,即用户停止说话多长时间内即认为不再输入, 
//自动停止录音,范围{0~10000}
mIat.setParameter(SpeechConstant.VAD_EOS, "1000");
//设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点
mIat.setParameter(SpeechConstant.ASR_PTT,"1");

//开始识别,并设置监听器
mIat.startListening(mRecogListener);

二.带UI识别

// 初始化听写Dialog,如果只使用有UI听写功能,无需创建SpeechRecognizer
// 使用UI听写功能,请根据sdk文件目录下的notice.txt,放置布局文件和图片资源
mIatDialog = new RecognizerDialog(IatDemo.this, mInitListener);

//以下为dialog设置听写参数
mIatDialog.setParams("xxx","xxx");
....

//开始识别并设置监听器
mIatDialog.setListener(mRecognizerDialogListener);
//显示听写对话框
mIatDialog.show();

具体配置信息,请参考后面识别对话框的内容

2.离线听写

离线听写与在线听写主要差别在于引擎类型和听写资源:

//此处engineType为“local”
mIat.setParameter( SpeechConstant.ENGINE_TYPE, engineType );
if (mEngineType.equals(SpeechConstant.TYPE_LOCAL)) {
    // 设置本地识别资源
    mIat.setParameter(ResourceUtil.ASR_RES_PATH, getResourcePath());
}

resourcce设置种包含两个资源,common.jet 和 sms_16k.jet, 从资源配置中可以看出,目前离线听写仅支持16k音频

private String getResourcePath(){
        StringBuffer tempBuffer = new StringBuffer();
        //识别通用资源
        tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, "iat/common.jet"));
        tempBuffer.append(";");
        tempBuffer.append(ResourceUtil.generateResourcePath(this, ResourceUtil.RESOURCE_TYPE.assets, "iat/sms_16k.jet"));
        //识别8k资源-使用8k的时候请解开注释
        return tempBuffer.toString();
    }

在线听写应用可以通过上传词典(又称个性化用户热词),提高听写的匹配率,参考后面更新词典的章节。

Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-11-03 10:26:45

results matching ""

    No results matching ""