密级 | 公开 |
---|---|
版本 | 10D.2 |
AICP ASR Dialog WebSocket开发手册
#
1. 概述#
1.1 功能介绍ASR Dialog 的 Websocket接口, 主要是在 ASR 语音识别 WebSocket 接口的基础上,同时对识别结果进行 NLU 语义理解处理,在给出语音识别结果的同时,也给出语义理解的结果。
#
2. 接口功能描述目前仅支持 首句模式 流式实时识别基础上,进行语义理解。暂时不支持在 流式一句话 和 连续模式 流式实时识别基础上的语义理解,在后面可能扩展。
此接口的流程和 ASR 流式识别流程基本一致:
- 当发送
START
命令时,会同时给出extendConfig
配置,表示 NLU 所需配置,例如问答机器人ID等。 - 当识别获取了最终结果时,会将识别结果和
extendConfig
转发给 NLU 服务,并将NLU服务返回的结果作为extendResult
字段和 识别结果一起返回。 - 如果设置了返回识别中间结果,中间结果依然会返回,但此时不会调用NLU服务,因此也不会有
extendResult
字段返回。
由于ASR Dialog只是分别调用ASR 和 NLU的接口,因此本手册只是描述一些特殊的内容,关于ASR 实时流式语音识别 WebSocket 接口和基本概念,请参见 《AICP_ASR_WebSocket开发手册》 。关于NLU 服务的输入输出参数,请参见 《灵云全智能客服解决方案(AICC)V9.2.1_问答开发手册.docx》 。
#
3. 请求#
3.1 握手阶段请求#
3.1.1 请求URI- 首句模式
ws(s)://ip:port/v10/asr/freetalk/{property}/utterance_dialog?appkey={appkey}[&access-token={token}]
参数 | 类型 | 必选 | 说明 |
---|---|---|---|
property | string | 是 | 模型特征串,服务器端利用此值来调用不同的模型 |
appkey | string | 是 | 分配给开发者的 appkey |
access-token | string | 否 | 通过 get-access-token- 获取到的令牌 |
除了URL中的 utterance_dialog
外,和 ASR 的 WebScoket 接口一致。
#
3.2 请求参数#
3.2.1 HTTP Header和 ASR 的 WebScoket 接口一致。
参数 | 类型 | 必选 | 说明 |
---|---|---|---|
X-Hci-Access-Token | string | 是 | 从 get-access-token 接口获取的令牌 |
在 HTML5 中,由于 Javascript 中在创建 WebScoket 对象时,无法设置HTTP 头域,因此无法传入
get-access-token 获取的令牌,此时可以通过URL中的 access-token
参数来传入。
#
3.3 握手阶段响应和 ASR 的 WebScoket 接口一致。
#
4. 连接阶段#
4.1 连接阶段请求#
4.1.1 开始识别客户端发送"开始识别"请求,使用文本类型的数据帧(text message)发送,命令和本次会话的参数以json字符串的形式提供。
参数 | 类型 | 必选 | 缺省 | 说明 |
---|---|---|---|---|
command | string | 是 | - | 为 START ,表示开始识别请求 |
config | object | 是 | - | 配置信息 |
extraInfo | string | 否 | 空 | 客户端设置的信息串,服务器端只做记录,或将来作为定制版本的一些特殊信息 |
recordId | string | 否 | 空 | 客户端设置的信息串,服务器端记录详细记录或者音频文件时会作为文件名的一部分,以便将来和客户端的信息关联。 只能包括数字、大小写字母、下划线。其它字符在作为文件名时会被转为下划线,最长64字节,超过会被截断 |
extendConfig | object | 是 | - | 扩展配置信息 |
除了 extendConfig
之外,其余参数和 ASR 的 WebSocket接口一致, config
具体项请参见《AICP_ASR_WebSocket开发手册》。
extendConfig
是json 对象,表示语义理解NLU部分所需参数,其配置请参见《灵云全智能客服解决方案(AICC)V9.2.1_问答开发手册.docx》。
注意:extendConfig
中有一项 sendTime
表示调用NLU服务的时间,此字段将会由 ASR Dialog 服务填充,如果外面设置了此字段也不会使用。
#
4.1.2 发送音频数据和 ASR 的 WebScoket 接口一致。
#
4.1.3 结束识别和 ASR 的 WebScoket 接口一致。
#
4.2 连接阶段响应#
4.2.1 开始识别请求响应和 ASR 的 WebScoket 接口一致。
#
4.2.2 事件响应和 ASR 的 WebScoket 接口一致。
#
4.2.3 识别结果响应识别结果响应,包括中间临时结果和最终结果,采用同样的输出格式。
参数 | 类型 | 必选 | 说明 |
---|---|---|---|
respType | string | 是 | 为 RESULT ,表示识别结果的响应 |
traceToken | string | 是 | 服务内部的跟踪令牌,可用于在日志中追溯具体流程。 |
sentence | object | 是 | 一句话的结果 |
extendResult | object | 否 | NLU返回结果,只有在最终结果中才存在,在中间临时结果中没有 |
除了 extendResult
外,其它字段和ASR WebSocket接口一致。
extendResult 是一个JSON对象,其结构如下:
参数 | 类型 | 必选 | 说明 |
---|---|---|---|
code | number | 否 | 调用NLU服务的错误码,当调用NLU服务发生错误时存在 |
error | string | 否 | 调用NLU服务的错误信息,当调用NLU服务发生错误时存在 |
result | object | 否 | 语义理解结果,当调用NLU服务成功时存在 |
result 字段是一个JSON对象,原封不动地封装了 NLU服务的返回内容,其具体内容请参见《灵云全智能客服解决方案(AICC)V9.2.1_问答开发手册.docx》。
#
4.2.4 结束识别请求响应和 ASR 的 WebScoket 接口一致。
#
4.2.5 错误响应和 ASR 的 WebScoket 接口一致。
注意:调用 NLU 服务产生的错误,并不会触发错误响应,而是包含在识别结果响应的 extendReusult
字段中。
#
4.2.6 严重错误响应和 ASR 的 WebScoket 接口一致。
#
4.3 示例- 客户端发送"开始识别"请求
- 服务器端有了某句的最终识别结果,调用NLU服务成功
- 服务器端有了某句的最终识别结果,但调用NLU服务失败
#
5. 版本记录接口版本 | 平台支持版本 | 组件及支持版本 | 修改内容 |
---|---|---|---|
10.0.0 | 10B.0 | aicp_asr_dialog 10.0.0 | 初始版本 |