# IVS介绍
提示
若你想要接入 iFLYOS, 可联系 iFLYOS 商务沟通你的需求,现在联系有机会获得优先的技术支持服务。商务联系电话:+86 19927478824。
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的核心能力 |
语音合成 | 将系统返回的信息合成为语音 |
提醒 | 设置闹钟、提醒、计时器 |
音频播放器 | 管理和控制音频 |
音频控制 | 通过按键和界面进行音频播放控制 |
设置 | 管理设备上的云端配置 |
扬声器 | 控制设备音量 |
模板消息 | 模板消息展示 |
系统 | 系统相关接口 |
← 自定义技能设备端实现说明 传输协议 →