android 百度语音识别3001,实时语音识别使用文件流提示3001
我们使用的场景是一边录音一边进行语音识别:因为如果使用SDK传回的语音数据结果,网络不好的话,SDK会退出;我们的诉求是语音录制一定可以,转文字可以失败1. 使用AudioRecord进行录音,将数据写入文件(录音不停止)2. 在开始录音后50毫秒,将录音文件以流的方式持续传给SDK进行语音识别转为文字。也就是说一边产生录音文件一边进行识别但在部分手机上会报3001的错误。查看文档发现3001是录
我们使用的场景是一边录音一边进行语音识别:因为如果使用SDK传回的语音数据结果,网络不好的话,SDK会退出;我们的诉求是语音录制一定可以,转文字可以失败
1. 使用AudioRecord进行录音,将数据写入文件(录音不停止)
2. 在开始录音后50毫秒,将录音文件以流的方式持续传给SDK进行语音识别转为文字。
也就是说一边产生录音文件一边进行识别
但在部分手机上会报3001的错误。查看文档发现3001是录音机打开失败。
语音识别参数如下:
Map params = new LinkedHashMap<>();
//是否需要语音音量数据回调
params.put(SpeechConstant.ACCEPT_AUDIO_VOLUME, false);
//本地语义
params.put(SpeechConstant.NLU, "enable");
// 长语音
params.put(SpeechConstant.VAD_ENDPOINT_TIMEOUT, 0);
//语音活动检测, 根据静音时长自动断句
params.put(SpeechConstant.VAD, SpeechConstant.VAD_DNN);
// 中文输入法模型,有逗号
params.put(SpeechConstant.PID, 1537);
//目前必须开启此回掉才能保存音频
params.put(SpeechConstant.ACCEPT_AUDIO_DATA, false);
//使用录音文件作为输入源,参考百度语音识别demo
params.put(SpeechConstant.IN_FILE, "#me.chunyu.chunyudoctorclient.home.record.InFileStream.create16kStream()");
SDK版本:bdasr_V3_20191210_81acdf5
疑问是:
1. 只使用了文件进行识别,为啥SDK还是会使用录音机?
2. 是不是说就算开发者使用的是语音文件进行识别,SDK也一定会使用录音机?
3. 如果是,那为什么只是偶尔会有这个提示?录音机是一直在被我自己写的功能占用,SDK肯定得不到录音的机会,如果这样的话,为什么3001的错误不是必现的?
更多推荐
所有评论(0)