酒店语音客控方案

一、方案介绍

酒店语音客控方案包含三个部分:酒店PMS、思必驰语音平台以及第三方客控设备平台;三部分协作实现语音控制客控设备

酒店PMS:主要负责智能中控终端的云管理,包括设备基本信息配置、设备升级等;以及客控设备账号授权、同步和管理

思必驰语音平台:处理用户的语音控制请求,解析用户意图后通过智能家居技能发送控制指令到客控云

第三方客控系统:包括云平台和客控系统终端设备,一方面负责酒店客控设备的管理,包括设备添加/分组等,另一方面响应思必驰的控制指令执行最终控制

二、核心能力

功能/能力 功能描述 输出方式
客控授权 联通多个酒店客控品牌,可自主选择绑定酒店支持的或有合作的客控平台系统 API/SDK
房间隔离 可以在一个账号下创建多个独立客房,一次同步

实现多个房间的独立控制,房间之间控制互不干扰

API/SDK
设备管理 空间中的设备名称、位置等属性管理,实现分房间分设备控制 API/SDK
设备同步 一次性同步第三方客控的设备列表以及设备的设备位置和名称 API/SDK
语音控制 可以通过音箱/电视/面板等语音控制房间客控设备或触发问答 Skill/SDK/模组/整机
场景控制 实现语音场景控制,比如“开启清扫” “睡眠模式”等,也支持自定义场景和触发的条件/说法 API/SDK/Skill
语音播报 实现自定义内容播报、外部触发播报 API/Skill
隐身接入 对于拥有智能设备厂商,无需账号登录授权即可接入 API/SDK

三、使用说明

3.1 接入思必驰语音方案

思必驰语音平台是酒店语音控制的前提,目前思必驰提供全链路语音SDK、模组以及中控整机等多套语音解决方案,帮助您赋能酒店方案中的语音中控入口

3.2 客控设备接入(仅对客控设备厂商)

如果您是IoT智能设备厂商或客控厂商,需要将您的设备通过云云接入的方式联通到思必驰智能家居平台,具体流程参考:https://www.duiopen.com/docs/smarthome_connect

3.3 中控设备集成智能家居服务

如果您中控智能终端使用的是思必驰全链路语音SDK或模组,需要先集成思必驰智能家居服务,以便实现声控设备的基本功能,集成流程参考AIOT方案输出;如果使用的是整机方案(例如思必驰无屏音箱、带屏音箱或电视解决方案),整机方案已具备此服务因此可直接使用

3.4 酒店PMS调用开放API

我们针对酒店PMS开放了设备管理的API接口,包括设备同步、设备位置设置、设备名称设置、自定义场景、消息推送等接口;方便酒店PMS后台同步管理客控设备、自定义推送消息等

接口参考智能家居开放API

3.5 房间隔离实现

在酒店场景中每个房间的客控控制是相互独立的;思必驰支持可以在一个账号下管理多个独立客房,一次同步实现多个客房设备的独立控制,主要原理是基于空间的group分组来实现客房的独立控制

3.5.1 实现方式

  • 用户对中控设备发起语音请求比如“打开空调”,智能终端将音频数据和设备所在的Group上传到思必驰语音服务,例如group=“1101房间”
  • 思必驰语音服务识别并解析用户意图后,调用设备发现接口从第三方客控平台获取相同Group(1101房间)的客控IoT设备列表,筛选出要控制的客房设备
  • 思必驰语音云服务向第三方客控云发送控制指令,客控云根据指令中包含的控制指令和设备信息执行精准控制操作并返回操作结果
  • 思必驰语音服务接收后推送到智能终端,终端设备向用户语音播报执行结果,例如“好的,空调已打开”

3.5.2 如何实现房间隔离?

(1)设置分组

如何设置分组由开发者自行实现,思路上大致有两种,一是在酒店后台配置例如可通过酒店PMS后台将中控设备的SN码与房间号(group)关联,中控设备调用后台服务接口获取group;也可以直接在中控设备上手动设置,例如在设备配网或初始化时由安装人员set参数

(2)上传参数

设置完后语音中控设备还需要上传group和iotSkillId(客控的技能id,调用DCA SDK Andorid 13.1 查询智能家居技能),上传方式参考https://www.duiopen.com/docs/ct_common_Andriod_SDK 3.18数据上传接口,代码示例如下:

ContextIntent contextIntent = new ContextIntent("group", "1101");
DDS.getInstance().getAgent().updateProductContext(contextIntent);
ContextIntent contextIntent = new ContextIntent("iotSkillId", "2020050900000078");
DDS.getInstance().getAgent().updateProductContext(contextIntent);

 Linux代码示例如下:

struct dds_msg *msg = dds_msg_new();
dds_msg_set_type(msg, DDS_EV_IN_SYSTEM_SETTINGS);
dds_msg_set_string(msg, "settings", "[{\"key\":\"iotSkillId\",\"value\":\"2021121500000039\"},{\"key\":\"group\",\"value\":{\"\这里填写家庭名字group\"}}]");//需要设置的k-v对
dds_send(msg);
dds_msg_delete(msg);
msg = NULL;

3.5.3 注意事项

(1)智能家居相关API接口设置Group

除了智能终端设备需要上传group,在调用开放API时也需要注意传参group,否则会造成酒店后台无法查看和管理某个房间的客控设备

(2)客控平台系统需支持Group分组(由客控厂商完成)

在客控设备通过云云接入到思必驰智能家居平台时,需要客控支持group分组;当思必驰语音服务调用设备发现时透传了group,第三方客控仅返回相同group下的设备,如果未传group,则默认返回该账号下所有的设备列表。协议参考 智能家居接入协议 4.1设备发现

{
    "header":{
        "namespace":"DUI.SmartHome.Discovery",
        "name":"Discover",
        "messageId":"1bd5d003-31b9-476f-ad03-71d471922820",
        "payloadVersion":1
    },
    "payload":{
        "accessToken":"access token",
        "group":"xxx" //仅当使用家庭组功能会出现此字段,表示仅期望获取对应家庭组下的设备列表,IOT厂商仅返回对应group下的设备即可
    }
}

(3)调试

调试时选择某一客房的中控设备,先对设备发起同步请求:“发现设备”或“同步设备”;设备会语音播报同步的设备数,若同步的设备数仅是一个房间的客控数量,则说明房间隔离成功,此时再发起正常的客控语音请求例如“打开床头灯”,观察床头灯是否打开来确认控制的有效性