AIUI交互结果事件通过EVENT_RESULT
抛出,结果类型包括:
- 听写结果(iat)
- 语义结果(nlp)
- 后处理服务结果(tpp)
- 云端tts结果(tts)
- 翻译结果(itrans)
# 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获取的方式有差异:
AIUIEvent定义中,data的类型为Bundle,获取结果数据的示例代码如下:
Android 示例代码:
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"));
}
}
iOS/Windows/Linux示例代码:
using namespace VA;
Json::Value bizParamJson;
Json::Reader reader;
if(!reader.parse(event.getInfo(), bizParamJson,false)){
NSLog(@"parse error!,getinfo=%s",event.getInfo());
}
Json::Value data = (bizParamJson["data"])[0];
Json::Value params = data["params"];
Json::Value content = (data["content"])[0];
std::string sub = params["sub"].asString();
if(sub == "nlp"){
Json::Value empty;
Json::Value contentId = content.get("cnt_id", empty);
if(contentId.empty()){
NSLog(@"Content Id is empty");
break;
}
std::string cnt_id = contentId.asString();
Buffer *buffer = event.getData()->getBinary(cnt_id.c_str());
if(NULL != buffer){
const char * resultStr = (char *) buffer->data();
if(resultStr == NULL){
return;
}
NSLog(@"resultStr=%s",resultStr);
}
}
# 听写结果格式
# 结果示例
{
"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开放平台语义协议。
# 离线命令词结果
解析参考离线命令词结果解析。
# 云端tts结果格式
具体解析请参考云端tts音频结果解析。
# 翻译结果
具体解析请参考翻译模式结果解析。
# 后处理服务结果
后处理结果由开发者配置的后处理服务构造,开发者只需解析EVENT_RESULT
事件返回的tpp
类型的结果即可。