安卓语音识别运行一段时间后报错
ccthbanksky 发布于2019-09 浏览:1575 回复:12
0
收藏

我们的语音识别功能一直在不停的识别,方法是利用语音识别引擎的回调:没有检测到用户说话。每次走到这个回调都会重新开始一轮语音识别

//开启识别
 if (myRecognizer != null) {
 myRecognizer.release();
 myRecognizer = null;
 apiParams = null;
 asrListener = null;
 }
// Logger.e("重新开启识别--errorCode == 3-----未检测到人说话");

 setListener();
 initRecong();
 startListen();

但是我发现运行几十分钟后就会抱一个如图的错误,请问这个问题有什么解决办法吗

收藏
点赞
0
个赞
共12条回复 最后由用户已被禁言回复于2022-04
#13用户已被禁言回复于2019-09

截图看不是更舒服一些

0
#12用户已被禁言回复于2019-09
#11 ccthbanksky回复
不是测试demo,是把一小部分demo的 代码移植到我自己的 项目里,目前是实际在用。我们的 项目是 在公共场合使用,要求语音识别一天12小时一直在运行。我们用安卓的麦克收集声音,然后有一点声音就会传给百度语音识别sdk,就这样无限循环的语音识别。我每天自己也在测试,发现运行一个小时左右,就会报如图的 错
展开

了解。可以先不集成到您的项目里面,在不修改代码的情况下测试demo看看情况。您自己写的代码需要自己排查。

0
#11ccthbanksky回复于2019-09
#10 用户已被禁言回复
那么您目前是在测试demo,没有修改任何代码的情况也有这个问题是吗?

不是测试demo,是把一小部分demo的 代码移植到我自己的 项目里,目前是实际在用。我们的 项目是 在公共场合使用,要求语音识别一天12小时一直在运行。我们用安卓的麦克收集声音,然后有一点声音就会传给百度语音识别sdk,就这样无限循环的语音识别。我每天自己也在测试,发现运行一个小时左右,就会报如图的 错

0
#10用户已被禁言回复于2019-09
#8 ccthbanksky回复
demo里面的onDestroy调用的,就是取消当前识别,不然下一次开启就会报错 if (myRecognizer != null) {  myRecognizer.release();  myRecognizer = null;  apiParams = null;  asrListener = null;  } //开启识别  setListener();  initRecong();  startListen();
展开

那么您目前是在测试demo,没有修改任何代码的情况也有这个问题是吗?

0
#9rose20135188回复于2019-09

问题解决了么?能分享一下是怎么解决的么?

0
#8ccthbanksky回复于2019-09
#7 用户已被禁言回复
这段代码是哪里来的呢?

demo里面的onDestroy调用的,就是取消当前识别,不然下一次开启就会报错

if (myRecognizer != null) {
 myRecognizer.release();
 myRecognizer = null;
 apiParams = null;
 asrListener = null;
 }

//开启识别

 setListener();
 initRecong();
 startListen();

0
#7用户已被禁言回复于2019-09
#3 ccthbanksky回复
好的,具体是这样的: 语音识别有个错误回调:onAsrFinishError(int errorCode........) 这里面的errorCode返回值有很多种,其中的3和7对我是最有用的 按照文档里面写的 返回3是长时间未检测到人说话,请重新识别 返回7是没有识别结果,因为身处嘈杂的环境 我就判断错误码,当是3或7的时候就执行  if (myRecognizer != null) {  myRecognizer.release();  myRecognizer = null;  apiParams = null;  asrListener = null;  } //开启识别  setListener();  initRecong();  startListen(); 这样就能无限循环处于语音识别状态了
展开

这段代码是哪里来的呢?

0
#6ccthbanksky回复于2019-09
#5 ccthbanksky回复
这个错误可以稳定复现,一个小时左右一次。今天早上来了又跑了一个小时,出现报错: [图片][图片]
展开

调用过程:

0
#5ccthbanksky回复于2019-09
#4 用户已被禁言回复
明白您的意思了。截图只有报错解释,没有错误码,是不同的报错吗?这个错误是否可以稳定复现呢?
展开

这个错误可以稳定复现,一个小时左右一次。今天早上来了又跑了一个小时,出现报错:

0
#4用户已被禁言回复于2019-09
#3 ccthbanksky回复
好的,具体是这样的: 语音识别有个错误回调:onAsrFinishError(int errorCode........) 这里面的errorCode返回值有很多种,其中的3和7对我是最有用的 按照文档里面写的 返回3是长时间未检测到人说话,请重新识别 返回7是没有识别结果,因为身处嘈杂的环境 我就判断错误码,当是3或7的时候就执行  if (myRecognizer != null) {  myRecognizer.release();  myRecognizer = null;  apiParams = null;  asrListener = null;  } //开启识别  setListener();  initRecong();  startListen(); 这样就能无限循环处于语音识别状态了
展开

明白您的意思了。截图只有报错解释,没有错误码,是不同的报错吗?这个错误是否可以稳定复现呢?

0
#3ccthbanksky回复于2019-09
#2 用户已被禁言回复
您好,没有看懂您的描述,能详细描述下您的情况吗?sdk在没有啊金策道人说话的情况下是否报错的。
展开

好的,具体是这样的:

语音识别有个错误回调:onAsrFinishError(int errorCode........)

这里面的errorCode返回值有很多种,其中的3和7对我是最有用的

按照文档里面写的

返回3是长时间未检测到人说话,请重新识别

返回7是没有识别结果,因为身处嘈杂的环境

我就判断错误码,当是3或7的时候就执行


 if (myRecognizer != null) {
 myRecognizer.release();
 myRecognizer = null;
 apiParams = null;
 asrListener = null;
 }

//开启识别

 setListener();
 initRecong();
 startListen();

这样就能无限循环处于语音识别状态了

0
#2用户已被禁言回复于2019-09

您好,没有看懂您的描述,能详细描述下您的情况吗?sdk在没有啊金策道人说话的情况下是否报错的。

0
TOP
切换版块