语音识别ActivityMiniReog没有结果
1161109492 发布于2018-02-06 15:35 浏览:383 回复:18
0
收藏
官方语音识别合成文档中的示例ActivityMiniReog有调用的param但没有从String(data, offset, length)中获取到结果显示在textView中,刚接触android编程想让各位大虾帮帮忙,咋样调取json中的最终结果,感谢
收藏
点赞
0
个赞
共18条回复 最后由1161109492回复于2018-03-26 18:16
#191161109492回复于2018-03-26
#18 卡农LLLL回复
开发好的什么?你这个就很好了啊...已经识别出来了拿到结果了啊

我弄得语音唤醒和语音识别存在冲突,不知道什么原因,希望你给我指点一下迷津

0
#18卡农LLLL回复于2018-02-11
#17 1161109492回复
嗯,后面才发现的,大哥,有没有开发好的,我看看,这几天集成弄得蒙了

开发好的什么?你这个就很好了啊...已经识别出来了拿到结果了啊

0
#171161109492回复于2018-02-10
#16 卡农LLLL回复
....刷多了...有时候可能系统卡了...慢点.

嗯,后面才发现的,大哥,有没有开发好的,我看看,这几天集成弄得蒙了

0
#16卡农LLLL回复于2018-02-09
#10 1161109492回复
if (name.equals(SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL)) { if (params.contains("\"final_result\"")) { try { JSONObject json = new JSONObject(params); String result = json.getString("best_result"); logTxt += ", 语义解析结果:" + result; } catch (JSONException e) { throw new AndroidRuntimeException(e); } } else if (data != null) { logTxt += " ;data length=" + data.length; } printLog(logTxt); } 谢谢,非常感谢,这就是答案;也希望刚开始学习的少点弯路
展开

....刷多了...有时候可能系统卡了...慢点.

0
#101161109492回复于2018-02-09
#9 卡农LLLL回复
json的转换要try起来的...这提示已经很明显了哈.

if (name.equals(SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL)) {
if (params.contains("\"final_result\"")) {
try {
JSONObject json = new JSONObject(params);
String result = json.getString("best_result");
logTxt += ", 语义解析结果:" + result;
} catch (JSONException e) {
throw new AndroidRuntimeException(e);
}
} else if (data != null) {
logTxt += " ;data length=" + data.length;
}
printLog(logTxt);
}

谢谢,非常感谢,这就是答案;也希望刚开始学习的少点弯路

0
#9卡农LLLL回复于2018-02-09
#8 1161109492回复
if (name.equals(SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL)) { if (params.contains("\"nln_result\"")) { JSONObject rgjson = new JSONObject(params); result=rgjson.getString("best_result"); logTxt += ", 语义解析结果:" + result; 我改成这样以后 提示错误:Error:(135, 37) 错误: 未报告的异常错误JSONException; 必须对其进行捕获或声明以便抛出
展开

json的转换要try起来的...这提示已经很明显了哈.

0
#81161109492回复于2018-02-09
#7 卡农LLLL回复
这就是个json 的对象. JSONObject rgjson = new JSONObject(params); rgjson.getString("best_result"); 这样就好了.
展开

if (name.equals(SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL)) {
if (params.contains("\"nln_result\"")) {
JSONObject rgjson = new JSONObject(params);
result=rgjson.getString("best_result");
logTxt += ", 语义解析结果:" + result;

我改成这样以后

提示错误:Error:(135, 37) 错误: 未报告的异常错误JSONException; 必须对其进行捕获或声明以便抛出

0
#7卡农LLLL回复于2018-02-08
#6 1161109492回复
if (name.equals(SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL)) { if (params.contains("\"nlu_result\"")) { if (length > 0 && data.length > 0) { logTxt += ", 语义解析结果:" + new String(data, offset, length); 这是demo的逻辑但是我用断点调试了length和data都是null所以没有输出 params的格式 是params :{"result_type":"final_result","best_result":"hello","results_recognition":["hello"],"origin_result":{"result":{"word":["hello"]},但我不会取值,希望大侠们棒棒忙,在此谢谢了
展开

这就是个json 的对象.

JSONObject rgjson = new JSONObject(params);

rgjson.getString("best_result");

这样就好了.

0
#61161109492回复于2018-02-07

if (name.equals(SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL)) {
if (params.contains("\"nlu_result\"")) {
if (length > 0 && data.length > 0) {
logTxt += ", 语义解析结果:" + new String(data, offset, length);

这是demo的逻辑但是我用断点调试了length和data都是null所以没有输出

params的格式 是params :{"result_type":"final_result","best_result":"hello","results_recognition":["hello"],"origin_result":{"result":{"word":["hello"]},但我不会取值,希望大侠们棒棒忙,在此谢谢了

0
#51161109492回复于2018-02-07
#2 survey10回复
按我的经验,如果手机没有联网的话,经常会识别不出结果。另外,看看param中有没有错误。建议最好把param抓取一下看看
展开

demo的就没有结果只调取了params并在log上显示了一下,没有在texResult中显示出来我也不会调用params中的数据,所以想让大侠帮忙一下

0
#41161109492回复于2018-02-07
#3 卡农LLLL回复
先按demo的文档跑起来了吗?

demo的就没有结果只调取了params并在log上显示了一下,没有在texResult中显示出来我也不会调用params中的数据,所以想让大侠帮忙一下

0
#3卡农LLLL回复于2018-02-07

先按demo的文档跑起来了吗?

0
#2survey10回复于2018-02-07

按我的经验,如果手机没有联网的话,经常会识别不出结果。另外,看看param中有没有错误。建议最好把param抓取一下看看

0
TOP
切换版块