目前比较厉害的国内免费开源的语音识别库主要就是:讯飞和百度,本篇博客也是关于这两家SDK的使用。
讯飞语音开放平台:http://doc.xfyun.cn/msc_android/299547
讯飞平台下载的sdk有doc文件夹,其中有html结尾的API文件,需要的去官网可以下载
本篇博客Demo地址:http://download.csdn.net/download/g_ying_jie/9895905
讯飞语音听写功能:
第一步、集成SDK,配置权限文档已经介绍的很清楚了,Demo也可以下下来直接运行。类似于以下目录结构
第二步、实例化语音听写对象和UI。该dialog资源需要用到assets的资源
// 语音听写对象
private SpeechRecognizer mIat = SpeechRecognizer.createRecognizer(VoiToTxtActivity.this, mInitListener);
// 语音听写UI
private RecognizerDialog mIatDialog = new RecognizerDialog(VoiToTxtActivity.this, mInitListener);
/**
* 初始化监听器。
*/
private InitListener mInitListener = new InitListener() {
@Override
public void onInit(int code) {
Log.d(TAG, "SpeechRecognizer init() code = " + code);
if (code != ErrorCode.SUCCESS) {
showTip("初始化失败,错误码:" + code);
}
}
};
/**
* 参数设置
*/
public void setParam() {
// 清空参数
mIat.setParameter(SpeechConstant.PARAMS, null);
// 设置听写引擎
mIat.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);
// 设置返回结果格式
mIat.setParameter(SpeechConstant.RESULT_TYPE, "json");
// 设置语言
mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
// 设置语言区域
mIat.setParameter(SpeechConstant.ACCENT, "mandarin");
// 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理
mIat.setParameter(SpeechConstant.VAD_BOS, "5000");
// 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音
mIat.setParameter(SpeechConstant.VAD_EOS, "1800");
// 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点
mIat.setParameter(SpeechConstant.ASR_PTT, "1");
// 设置音频保存路径,保存音频格式支持pcm、wav,设置路径为sd卡请注意WRITE_EXTERNAL_STORAGE权限
//mIat.setParameter(SpeechConstant.AUDIO_FORMAT, "wav");
//mIat.setParameter(SpeechConstant.ASR_AUDIO_PATH, Environment.getExternalStorageDirectory() + "/msc/iat.wav");
}
第四步、开始听写识别
// 显示听写对话框
mIatDialog.setListener(mRecognizerDialogListener);
mIatDialog.show();
/**
* 听写UI监听器
*/
private RecognizerDialogListener mRecognizerDialogListener &