2.3.8 应答指令解析
## 2.3.8 应答指令解析
* 应答返回JSON格式的指令,ResponseCallback回调中的IChatResult已将应答指令封装成Command对象,该对象将会在MainService的
onRobotResponse回调方法中获得,3.3小节已有说明,在onRobotResponse方法中解析Command对象并执行即可,应答指令说明如下:
~~~
{
" rtext ": String,// AI应答文本,String类型
" synthetise ":JSON,//应答文本合成控制
" ttext ":String,// AI提示性文本 Sting类型
" outc ": int,//输出控制码,int类型
" motions ":JSON,//动作集合,解析参照自动动作集合结构
" actions ":JSON//语义对象集合,解析参照语义对象集合结构
}
~~~
* 自动动作集合结构:
[{"index":rtext应答文本中字符的索引位置,"level":动作优先级,"motion":动作id(参见动作对象)},...]
动作id及详细指令解析请参照SDK指令说明,动作JSON的详细说明如下:
* IChatResult会输出的回复文本(以下用Text指代)。
* index:int类型,表示Text朗读到第index个字时需要做的动作(以下用C动作指代);
* level:代表了C动作的优先级,int类型,如果上一个index需要做的动作(以下用L动作指代)还未完成,则比较两者的优先级,
如果C动作优先级比L动作优先级高,则打断L动作执行C动作,反之忽略C动作;
* motion:指动作ID,int类型,这是一个抽象的动作概念,具有特定的一个具体定义,如:motion=20001,代表了高兴,则用户需将该动作ID
映射到机器人自身的若干个表示高兴的动作集合中,当指令指示要执行该动作ID时,开发者须自行制定策略选择一个代表高兴的动作执行之。
* 语义对象集合结构:
[{"action":语义动作,"etime":动作执行时间,"target":语义动作的目标对象},... ]
语义动作的目标对象详细请参照sdk指令说明,语义对象JSON说明如下:
* action:语义动作,AI可以执行的指令通常只有VIEW,其它的无法或者不可能执行,需要传递给开发者代为执行。
* etime:动作执行时间,一般表示为自定义的scheduler类型,无此属性或为空代表马上执行。
* target:语义动作的目标对象。(详细请参照sdk指令说明)