1.1.1. 开放平台 Websocket 协议 nlp 接口定义文档
1.1.2. 概述
本文档目的是描述云端语音接口的 WebSocket 版本的开放协议,主要包含语音识别、语义理解、语音合成三大部分功能,主要面向想要了解语音交互细节,并具有一定开发能力的开发者或用户。
1.1.3. 协议详解
协议可分为以下部分:
索引
1.1.4. 服务地址
环境 | 地址 | 用途 |
---|---|---|
线上 | wss://apigwws.open.rokid.com/api | 对外提供的正式稳定环境 |
1.1.5. 协议地址
1.1.6. 协议概述
此文档用于定义开放平台上云端应用接口开发协议,协议遵循 websocket 协议。协议采用先认证,再使用的方式,步骤如下:
- 建立 wss 连接,注意是 websocket + ssl
- 认证设备
- 设置认证中 service 为 speech,则此连接后续可进行一次或多次语义理解,直至连接断开
语义理解
- 设置认证中 service 为 speech,则此连接后续可进行一次或多次语音理解,直至连接断开
流程
- 需要先进行 service 为 speech 的 设备认证
- 一次完整的语音识别的数据包以 id 来标识,称为一个 session
- 设备端发送以下的数据
- TEXT 发送需要理解的文本数据
- 云端返回 RespType 的数据
- FINISH 返回 nlp 结果
- 每个 session 以 FINISH 结束
SpeechRequest
参数 | 类型 | 描述 | 默认值 |
---|---|---|---|
id | int32 | 唯一标识,用于跟踪一个完整的请求,处理及响应事件。 | 0 |
type | ReqType | TEXT | 空 |
voice | bytes | 需要识别的语音流 | 空 |
asr | bytes | 需要理解的 asr 文本 | 空 |
SpeechResponse
参数 | 类型 | 描述 |
---|---|---|
id | int32 | 唯一标识,用于跟踪一个完整的请求,处理及响应事件。 |
result | SpeechErrorCode | 错误信息 |
type | RespType | 结果类型:FINISH |
asr | string | asr实时识别的结果 |
nlp | string | nlp识别的结果: {"appId": "技能id", "appName": "技能名称", "asr": "asr识别结果", "cloud": "是否为云端技能: true / fasle", "intent": "意图", "pattern": "设定的用户语句","slots": { "槽名称": { "type": "槽类型", "value": "槽的值" }}} |
action | string | cloud app处理的结果,json字符串 |
extra | string | 目前有:{"activation": "xxx"} |