我们的语音识别功能一直在不停的识别,方法是利用语音识别引擎的回调:没有检测到用户说话。每次走到这个回调都会重新开始一轮语音识别
//开启识别
if (myRecognizer != null) {
myRecognizer.release();
myRecognizer = null;
apiParams = null;
asrListener = null;
}
// Logger.e("重新开启识别--errorCode == 3-----未检测到人说话");
setListener();
initRecong();
startListen();
但是我发现运行几十分钟后就会抱一个如图的错误,请问这个问题有什么解决办法吗
收藏
点赞
0
个赞
请登录后评论
TOP
切换版块
截图看不是更舒服一些
了解。可以先不集成到您的项目里面,在不修改代码的情况下测试demo看看情况。您自己写的代码需要自己排查。
不是测试demo,是把一小部分demo的 代码移植到我自己的 项目里,目前是实际在用。我们的 项目是 在公共场合使用,要求语音识别一天12小时一直在运行。我们用安卓的麦克收集声音,然后有一点声音就会传给百度语音识别sdk,就这样无限循环的语音识别。我每天自己也在测试,发现运行一个小时左右,就会报如图的 错
那么您目前是在测试demo,没有修改任何代码的情况也有这个问题是吗?
问题解决了么?能分享一下是怎么解决的么?
demo里面的onDestroy调用的,就是取消当前识别,不然下一次开启就会报错
if (myRecognizer != null) {
myRecognizer.release();
myRecognizer = null;
apiParams = null;
asrListener = null;
}
//开启识别
setListener();
initRecong();
startListen();
这段代码是哪里来的呢?
调用过程:
这个错误可以稳定复现,一个小时左右一次。今天早上来了又跑了一个小时,出现报错:
明白您的意思了。截图只有报错解释,没有错误码,是不同的报错吗?这个错误是否可以稳定复现呢?
好的,具体是这样的:
语音识别有个错误回调:onAsrFinishError(int errorCode........)
这里面的errorCode返回值有很多种,其中的3和7对我是最有用的
按照文档里面写的
返回3是长时间未检测到人说话,请重新识别
返回7是没有识别结果,因为身处嘈杂的环境
我就判断错误码,当是3或7的时候就执行
if (myRecognizer != null) {
myRecognizer.release();
myRecognizer = null;
apiParams = null;
asrListener = null;
}
//开启识别
setListener();
initRecong();
startListen();
这样就能无限循环处于语音识别状态了
您好,没有看懂您的描述,能详细描述下您的情况吗?sdk在没有啊金策道人说话的情况下是否报错的。