You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Asterisk-Java AGI调用MRCPRecog时无法获取RECOG_INSTANCE()值

如何在Asterisk-Java AGI中正确获取MRCPRecog的RECOG_INSTANCE()值?

正确获取方式

要在Asterisk-Java AGI中获取RECOG_INSTANCE()的值,调用getVariable时直接传入不带空括号的函数名即可:

String recogInstance = channel.getVariable("RECOG_INSTANCE");

如果是多解释项场景,需要指定索引(索引从1开始),则传入带参数的完整函数名:

// 获取第一个解释项的instance值
String recogInstance = channel.getVariable("RECOG_INSTANCE(1)");

之前的调用方式无效原因

  1. 空括号解析问题:Asterisk-Java的getVariable方法不支持带空括号的函数名传递,"RECOG_INSTANCE()"这种格式会被Asterisk判定为无效请求,返回null。
  2. 参数格式错误:你尝试的"RECOG_INSTANCE(1/1)"或"RECOG_INSTANCE(0/1)"参数格式不符合RECOG_INSTANCE函数的要求,该函数仅接受单个索引数值(从1起始)。

顺带解决RECOG_CONFIDENCE返回null的问题

针对你提到的RECOG_CONFIDENCE()返回null的问题,同样采用不带空括号的调用方式:

String recogConfidence = channel.getVariable("RECOG_CONFIDENCE");
// 或指定索引获取对应解释项的置信度
String recogConfidence = channel.getVariable("RECOG_CONFIDENCE(1)");

验证建议

获取值后可以添加输出逻辑确认结果:

System.out.println("识别结果实例值: " + recogInstance);
System.out.println("识别置信度: " + recogConfidence);

内容的提问来源于stack exchange,提问作者Mustafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:12:37