IVS介绍

iFLYOS Voice Service(简称IVS)协议是iFLYOS服务端与设备端之间的通讯协议,是一套把iFLYOS的智能语音交互能力向智能硬件设备开放的API。智能硬件通过这套API与服务端进行通讯,实现IVS协议客户端逻辑,接入iFLYOS服务,就能够让设备具有iFLYOS的所有交互能力。

协议概要

IVS协议由指令、事件、端状态三个部分组成。

指令(directive)是服务端下发给设备端,设备端需要执行的操作。比如播放一个语音(Speak指令),设置一个闹钟(SetAlert指令),播放一个音乐(Play指令)等等。

事件(event)是设备端上报给服务端,通知服务端在设备端发生的事情。比如音乐播放开始了(PlaybackStarted事件),音乐播放结束了(PlaybackFinished事件),闹铃开始响了(AlertStarted事件),设备被唤醒并开始接受用户语音请求(ListenStarted事件)等等。

指令事件是IVS协议最基本的要素,设备端上发生的变化都通过上报相应的事件来通知服务端,服务端通过下发指令给设备端,对用户请求进行响应。

设备端在上报事件时,需要带上设备端的端状态(context)信息。比如当前是否有音乐正在播放,播放到哪里了(PlaybackState),设备端是否有设置闹铃,闹铃状态(AlertsState)等等。对用户的请求,服务端结合端目前所处的状态,决定合理的响应,下发相应的指令。

协议分层

IVS协议分传输层、消息格式层、设备能力层三个层次。

传输层

传输层在IVS协议最底层,决定设备端与服务端之间的连接方式。

目前IVS服务提供基于HTTP2的传输层协议,详细内容阅读传输层协议文档。

消息格式层

在传输层之上,我们确定请求和响应的具体字段格式,这一层为消息格式层。消息格式层确定指令、事件、端状态,以及访问令牌、设备ID等等字段的位置和格式。

目前IVS协议定义了基于HTTP2请求和响应格式的消息格式,详细内容阅读消息格式文档。

设备能力层

最上层设备能力层,定义设备端的硬件和系统自身所具备的各种能力,如语音输入能力、语音输出能力、音频播放能力等等。每一种设备能力包含一套对应的指令与事件的定义,加上必要的端状态定义。设备具备并实现的设备能力越多,设备所能支持的技能也越多,如询问天气、股票等信息需要设备具备语音输入能力和语音输出能力,而要能够播放音乐则需要设备有音频播放能力。

iFLYOS的API由一系列详细的设备能力接口构成。每一个设备能力接口包含对应客户端功能的指令和事件。

指令由云端下发,客户端执行相关操作。

事件由客户端上报至服务端,将客户端的状态和发生的事件告知服务端。

设备能力接口描述
语音识别iFLYOS的核心能力
语音合成将系统返回的信息合成为语音
提醒设置闹钟、提醒、计时器
音频播放器管理和控制音频
音频控制通过按键和界面进行音频播放控制
设置管理设备上的云端配置
扬声器控制设备音量
模板消息模板消息展示
系统系统相关接口
iFLYOS文档中心