语音助手json协议

字段

自定语义JSON共有4个字段,分别是:

  • domain:领域,即语义大类,如客控、电影、电视等。
  • intent:意图,如打开、关闭等。
  • input:输入,即识别出的句子。
  • param:其他参数,如设备名称,电影名称等。

一个简单的例子:

{
    "domain": "movie",
    "input": "我要看变形金刚",
    "intent": "play",
    "param": {
        "movie_name": "变形金刚",
        "name": "变形金刚"
    }
}
{
    "domain": "kekong",
    "input": "打开夜灯",
    "intent": "open",
    "param": {
        "devname": "夜灯"
    }
}

对应的java实体类定义如下:

public class ClearRecogBean {
    public String domain;
    public String intent;
    public String input;
    public Map<String, Object> param;
}

param中的参数会根据domain和intent的不同而改变。

具体分类

1. 客控(不包括空调)

domain

客控对应的domain为kekong

intent

  • open:开启设备
  • close:关闭设备

param

客控参数:

  • devname:设备名称

例子

{
    "domain": "kekong",
    "input": "打开夜灯",
    "intent": "open",
    "param": {
        "devname": "夜灯"
    }
}

2. 视频(电影)

domain

电影对应的domain为movie

intent

  • play:播放。

param

电影参数:

  • movie_name:电影名称
  • name:电影名称(与movie_name相同)

例子

{
    "domain": "movie",
    "input": "我要看变形金刚",
    "intent": "play",
    "param": {
        "movie_name": "变形金刚",
        "name": "变形金刚"
    }
}

3. 天气

domain

天气对应的domain是weather

intent

  • query_weather:如果intent为query_weather,那么表示希望从网络上查询天气信息;否则intent留空,从param的data字段中取天气信息。

param

  • data:天气的json数据,结构同讯飞的天气解析结果。
  • date:要查询的天气日期,格式为yyyy-MM-dd
  • city:要查询天气的城市
  • answer:天气信息回复

例子

{
    "domain": "weather",
    "input": "上海今天天气如何",
    "param": {
        "data": {
            "result": [{
                "airData": 21,
                "airQuality": "优",
                "city": "上海",
                "date": "2018-07-18",
                "dateLong": 1531843200,
                "humidity": "63%",
                "img": "http://aiui-res.ufile.ucloud.com.cn/weather/01.png",
                "lastUpdateTime": "2018-07-18 08:00",
                "pm25": "11",
                "temp": 30,
                "tempRange": "26℃ ~ 35℃",
                "weather": "多云",
                "weatherType": 1,
                "week": "Wednesday",
                "wind": "东南风4-5级",
                "windLevel": 2
            }]
        },
        "city": "上海",
        "date": "2018-07-18",
        "answer": "天气预报显示,上海20号多云,28℃ ~ 35℃,东南风3-4级"
    }
}
{
    "domain": "weather",
    "input": "上海今天天气如何",
    "intent": "query_weather",
    "param": {
        "city": "上海",
        "date": "1998-01-01"
    }
}

4. 电视直播

domain

电视直播对应的domain为live

intent

  • play:播放电视直播

param

  • name_list:电视台的名称列表,比如[中央一套, 中央一台, cctv-1],用`隔开

例子

{
    "domain": "live",
    "input": "我要看中央一套",
    "intent": "play",
    "param": {
        "name_list": "CCTV-1`CCTV-1综合`综合频道`CCTV1综合频道`中央一台`CCTV 1`CCTV-1 综合`中央综合`中央-1`CCTV1"
    }
}

5.空调

domain

空调对应的domain为air_cond

intent

可以不传

param

客控参数:

  • temp:温度
  • mode:模式
    1 - 制冷
    2 - 制热
    3 - 保持
    4 - 通风
  • switch:开关
    1 - 开
    2 - 关
  • wind:风速
    1 - 低速
    2 - 中速
    3 - 高速
    4 - 自动

例子

{
    "domain": "air_cond",
    "input": "空调开到15度",
    "param": {
        "temp": 15
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容