AIUI交互结果中除了唤醒结果其他所有结果都通过EVENT_RESULT事件抛出,包括:

  • 听写结果(iat)
  • 语义结果(nlp)
  • 离线命令词结果(asr)
  • 后处理服务结果(tpp)

# AIUI结果格式

EVENT_RESULT的info字段中json包容如下格式的内容:

{
    "data": [{
        "params": {
            "sub": "iat"
        },
        "content": [{
            "dte": "utf8",
            "dtf": "json",
            "cnt_id": "0"
        }]
    }]
}

通过sub字段的值确定对应的结果类型,如果EVENT_RESULT包含的是语义结果, 那info数据描述的中sub的值就对应为nlp

EVENT_RESULT的data中包含结果的数据,需要根据info描述信息获取,不同SDK获取的方式有差异:

AIUIServiceKit SDK

AIUIEvent定义中,data的类型为Bundle,获取结果数据的示例代码如下:

private void processResult(AIUIEvent event) {
        JSONObject data = new JSONObject(event.info).getJSONArray("data").getJSONObject(0);
        String sub = data.getJSONObject("params").optString("sub");
        JSONObject content = data.getJSONArray("content").getJSONObject(0);

        if (content.has("cnt_id")) {
                String cnt_id = content.getString("cnt_id");
                JSONObject result = new JSONObject(new String(event.data.getByteArray(cnt_id), "utf-8"));
        }
}

串口SDK

AIUI结果事件,直接使用result字段对应的json即可,格式如下:

{
    "content": {
        "result": {
                "sid": "cid6f1c6d19@ch00270cb15736010016",
                "text": {
                    "bg": 0,
                    "sn": 2,
                    "ws": [{
                        "bg": 0,
                        "cw": [{"w": "","sc": 0,"wb": 0,"wc": 0,"we": 0}]
                    }],
                    "ls": true,
                    "ed": 0
                }
        },
        "arg2": 0,
        "eventType": 1,
        "arg1": 0,
        "info": {
            "data": [{
                "content": [{"dtf": "json","cnt_id": "0","dte": "utf8"}],
                "params": {"sub": "iat"}
            }]
        }
    },
    "type": "aiui_event"
}

# 听写结果格式

# 结果示例

{
    "text": {
        "bg": 0,
        "sn": 1,
        "ws": [{
            "bg": 0,
            "cw": [{
                "w": "叫",
                "sc": 0
            }]
        },
        {
            "bg": 0,
            "cw": [{
                "w": "什么",
                "sc": 0
            }]
        },
        {
            "bg": 0,
            "cw": [{
                "w": "名字",
                "sc": 0
            }]
        }],
        "ls": false,
        "ed": 0
    }
}

# 听写结果说明

JSON字段 英文全称 类型 说明
sn sentence number 第几句
ls last sentence boolean 是否最后一句
bg begin number 开始
ed end number 结束
ws words array
cw chinese word array 中文分词
w word string 单字
sc score number 分数

# 语义结果格式

格式参考AIUI开放平台语义协议

# 离线命令词结果

解析参考离线命令词结果解析

# 后处理服务结果

后处理结果由开发者配置的后处理服务构造,开发者只需解析EVENT_RESULT事件返回的tpp类型的结果即可。