消息协议
消息协议主要针对Web端集成方式iFLYHOME OS应用内Web应用以及iFLYHOME OS应用外Web应用。尽管两者在通信方式上不一致,但是采用的协议是通用的。 下面我们按照具体功能对具体协议协议进行了说明,并对应给出了每个功能具体的协议样例。
H5调用客户端的通用参数:
字段名 | 字段说明 | 获取方式 | 备注 |
---|---|---|---|
appid | 为每一个应用分配的唯一id | 语点会为每一个用户分配appid,并配置appid配置相应的能力 | 每一次调用iFLYHOME OS应用都要携带appid |
token | 为应用每一次使用分配的token | 通过授权接口获取 | token有一定的有效期,具体见鉴权接口的协议 |
鉴权协议
通信协议字段
协议名称name | 协议类型 | 协议功能 | 协议参数data | 协议返回参数data | ||||||
参数 | 必选 | 数据类型 | 说明 | 参数 | 必选 | 数据类型 | 说明 | |||
native_check_auth | Web->APK | 初始化web应用,主要用于鉴权,在鉴权结果返回前,不允许调用语点能力 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 见通用参数 | msg | 是 | String | 返回信息 | |||
h5_check_auth_result | APK->Web | 当前初始化鉴权结果(h5申请开放能力调用需要在拿到改结果之后方可调用) | authCode | 是 | String | 当前鉴权状态 200:鉴权通过 1001:授权失败 1002:授权非法 |
||||
description | 是 | String | 当前鉴权描述 |
如果表格过长没有水平滚动条,请尝试刷新页面
协议示例
native_check_auth协议示例
//请求协议 { "appid" : "appidxxx", "token":"tokenxxx" } //返回协议 { "code":200, "msg": "成功" }
h5_check_auth_result协议示例
//请求协议 { "authCode": "200", "description":"授权成功" }
开放ASR语音识别协议
通信协议字段
协议名称name | 协议类型 | 协议功能 | 协议参数data | 协议返回参数data | ||||||
参数 | 必选 | 数据类型 | 说明 | 参数 | 必选 | 数据类型 | 说明 | |||
native_open_asr | Web->APK | 开启语音转写文本的能力 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
progressive | 否 | boolean | 是否支持流式识别 | |||||||
native_update_asr | Web->APK | 更新开放文本功能参数 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
params | 是 | String | 场景信息id | |||||||
native_op_asr_digital | Web->APK | 设置是否支持数字识别能力 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
support | 是 | String | 是否支持 1:支持 0:不支持 |
|||||||
native_close_asr | Web->APK | 关闭语音转写文本的能力 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
h5_send_asr_result | APK->Web | 透传语音识别文本 | token | 是 | String | 见通用参数 | asrToken | 是 | int | 本次语音识别唯一标识 |
text | 是 | String | 语音转写文本 | handled | 是 | boolean | 是否处理本次识别,不处理传false,处理传ture | |||
progressive | 否 | String | 流式文本结果 |
如果表格过长没有水平滚动条,请尝试刷新页面
协议示例
native_open_asr协议示例
//请求协议 { "token":"tokenxxx", "appid" : "appidxxx", "progressive":true } //返回协议 { "code":200, "msg": "成功" }
native_update_asr协议示例
//请求协议 { "params" : "appidxxx", "token":"tokenxxx", "appid" : "123456" } //返回协议 { "code":200, "msg": "成功" }
native_op_asr_digital协议示例
//请求协议 { "support" : "1", "token":"服务端返回token", "appid" : "123456" } //返回协议 { "code":200, "msg": "成功" }
native_close_asr协议示例
//请求协议 { "token":"tokenxxx", "appid" : "appidxxx" } //返回协议 { "code":200, "msg": "成功" }
h5_send_asr_result协议示例
//请求协议 { "text": "语音识别结果", "token": "本次语音唯一标识" } //返回协议 { "code":200, "msg": "成功", "data":{ "asrToken" : "语音唯一id", "handled": 是否处理 } }
开放TTS语音合成协议
通信协议字段
协议名称name | 协议类型 | 协议功能 | 协议参数data | 协议返回参数data | ||||||
参数 | 必选 | 数据类型 | 说明 | 参数 | 必选 | 数据类型 | 说明 | |||
native_start_tts | Web->APK | 开始语音合成 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
text | 是 | String | 需要合成的文本 | |||||||
param | 是 | String | 合成的参数,发言人,音量,appid | |||||||
native_cancel_tts | Web->APK | 取消当前正在进行的语音合成 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
h5_send_tts_status | APK->Web | 当前语音合成的状态 | ttsStatus | 是 | int | 当前合成状态: 1:开始合成 2:合成暂停 3. 合成继续 4. 合成进度 5:合成结束 6: 合成取消 |
||||
progress | 否 | int | 当前合成进度(0-100) 当ttsStatus为4时才存在 |
如果表格过长没有水平滚动条,请尝试刷新页面
协议示例
native_start_tts协议示例
//请求协议 { "appid" : "appidxxx", "token":"tokenxxx", "text":"需要合成的文本", "param":"{\"vcn\":\"x_xiaofeng\""} } //返回协议 { "code":200, "msg": "成功" }
native_cancel_tts协议示例
//请求协议 { "token":"tokenxxx", "appid" : "appidxxx" } //返回协议 { "code":200, "msg": "成功" }
h5_send_tts_status协议示例
//请求协议 { "ttsStatus":1, "progress":"当前合成进度" }
开放NLP语义理解协议
通信协议字段
协议名称name | 协议类型 | 协议功能 | 协议参数data | 协议返回参数data | ||||||
参数 | 必选 | 数据类型 | 说明 | 参数 | 必选 | 数据类型 | 说明 | |||
native_open_nlp | Web->APK | 开放语义理解功能 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
services | 否 | String | 当前开放的语义列表(参数值,见附录-语义列表),以`为分割符,ALL_SERVICE表示全部能力 | |||||||
progressive | 否 | boolean | 是否支持流式识别 | |||||||
native_update_nlp | Web->APK | 更新语义功能参数 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
params | 是 | String | 场景信息id | |||||||
native_close_nlp | Web->APK | 关闭语义理解功能 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
h5_send_nlp_result | APK->Web | 透传识别语义 | token | 是 | String | 见通用参数 | nlpToken | 是 | int | 本次语义唯一标识 |
service | 是 | String | 本次语义服务 | handled | 是 | boolean | 是否处理本次识别,不处理传false,处理传ture | |||
semantic | 是 | String | 完整语义结果 | |||||||
progressive | 否 | String | 流式文本结果 |
如果表格过长没有水平滚动条,请尝试刷新页面
协议示例
native_open_nlp协议示例
//请求协议 { "services" : "stock`weather", "token":"tokenxxx", "appid" : "appidxxx" } //返回协议 { "code":200, "msg": "成功" }
native_update_nlp协议示例
//请求协议 { "params" : "场景id", "token":"tokenxxx", "appid" : "appidxxx" } //返回协议 { "code":200, "msg": "成功" }
native_close_nlp协议示例
//请求协议 { "token":"tokenxxx", "appid" : "appidxxx" } //返回协议 { "code":200, "msg": "成功" }
h5_send_nlp_result协议示例
//请求协议 { "service": "weather", "token":"本次语义理解唯一标识", "semantic":"语义结果" } //返回协议 { "code":200, "msg": "成功", "data":{ "nlpToken" : "语音唯一id", "handled": true } }
开放中英文评测协议
通信协议字段
协议名称name | 协议类型 | 协议功能 | 协议参数data | 协议返回参数data | ||||||
参数 | 必选 | 数据类型 | 说明 | 参数 | 必选 | 数据类型 | 说明 | |||
native_open_ise | Web->APK | 开放语音评测能力 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 见通用字段 | msg | 是 | String | 返回信息 | |||
params | 是 | String | 评测的参数,包括评测语言,评测类型,评测的结果类型具体取值见【评测参数表格】 | |||||||
native_set_ise_text | Web->APK | 设置当前评测的单词 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 见通用字段 | msg | 是 | String | 返回信息 | |||
iseText | 是 | String | 需要评测的文本内容 | |||||||
native_close_ise | Web->APK | 关闭语音评测功能 | appid | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 见通用参数 | msg | 是 | String | 返回信息 | |||
h5_send_ise_result | APK->Web | 发送当前评测的状态以及评测结果 | iseStatus | 是 | String | 评测的状态,取值范围见【评测状态表格】 | ||||
volume | 是 | String | 评测过程中语音的音量大小 | |||||||
iseResult | 否 | String | 评测的完整结果 | |||||||
originResult | 否 | String | 评测的原始结果,base64位加密后 | |||||||
native_create_engine | Web->APK | 创建评测引擎 针对需要定制评测引擎的使用,使用默认引擎不要调用 |
token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 见通用字段 | msg | 是 | String | 返回信息 | |||
server_url | 否 | String | 新引擎地址 | |||||||
proxy_url | 否 | String | 引擎代理地址http://ip:port | |||||||
native_destroy_engine | Web->APK | 销毁评测引擎 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 见通用字段 | msg | 是 | String | 返回信息 |
如果表格过长没有水平滚动条,请尝试刷新页面
【评测参数表格】
字段拼接规则:“language=xxx,category=xxx,result_level=xxx”
字段拼接示例:“language=zh_cn,category=read_chapter,result_level=complete”
其中xxx对应表格中可选值,表格如下:
参数 | 含义 | 可取值 | 备注 |
---|---|---|---|
language | 评测的语言,目前仅支持中文和英文 | 中文:zh_cn 英文:en_us |
|
category | 评测的类型,包括章节,句子,词语,汉语的单字 | 章节:read_chapter 句子:read_sentence 章节:read_word 章节:read_syllable |
|
result_level | 评测结果的类型,分为简单结果(只包含总分)和完整结果 | 简单结果:plain 完整结果:complete |
其中完整结果的数据格式见附录 |
其他定制化参数:新引擎中英文ent:”see_ch“、"see" ;少儿引擎参"group":"pupil" 详细参数字段参考:https://www.xfyun.cn/doc/mscapi/Android/androidevaluator.html#setparameter
【评测状态表格】
参数 | 含义 |
---|---|
onStart | 评测开始,指开始录音的时候 |
onWrite | 评测中,指用户说话的过程中,一般会回调用户说话音量大小 |
onStop | 评测结束,指用户停止录音的时候 |
onEvalResult | 评测结果,会将当前用户本次语音评测结果回调 |
协议示例
native_open_ise协议示例
//请求协议 { "params":"language=en_us,category=read_word,result_level=complete", "token":"tokenxxx", "appid":"appidxxx" } //返回协议 { "code":200, "msg": "成功" }
native_set_ise_text协议示例
//请求协议 { "iseText":"评测的文本", "token":"tokenxxx", "appid":"appidxxx" } //返回协议 { "code":200, "msg": "成功" }
native_close_ise协议示例
//请求协议 { "token":"tokenxxx", "appid" : "appidxxx" } //返回协议 { "code":200, "msg": "成功" }
h5_send_ise_result协议示例
//请求协议 { "iseStatus":"onEvalResult", "iseResult":"评测结果" }
开放UI事件协议
通信协议字段
协议名称name | 协议类型 | 协议功能 | 协议参数data | 协议返回参数data | ||||||
参数 | 必选 | 数据类型 | 说明 | 参数 | 必选 | 数据类型 | 说明 | |||
native_open_ui_event | Web->APK | 开放UI事件 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 见通用字段 | msg | 是 | String | 返回信息 | |||
intercept | 否 | String | 是否拦截UI | |||||||
native_close_ui_event | Web->APK | 关闭当前开放UI事件能力 | appid | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 见通用参数 | msg | 是 | String | 返回信息 | |||
h5_send_ui_status | APK->Web | 发送当前UI事件状态 | uiStatus | 是 | String | 评测的状态,取值范围见【UI事件状态】 | ||||
volume | 是 | int | 用户说话的音量 |
如果表格过长没有水平滚动条,请尝试刷新页面
【UI事件状态】
参数 | 含义 | 备注 |
---|---|---|
onShow | UI事件开始显示,一般指用户按下语音键,开始准备录音 | |
onRecordStart | 录音开始,指录音真正开始开始 | |
onVolume | 录音中,一般会携带音量大小 | |
onRecordEnd | 录音结束 | |
onRecognizeStart | 开始识别 | |
onRecognizeEnd | 识别结束, |
协议示例
native_open_ui_event 协议示例
//请求协议 { "token":"tokenxxx", "appid":"appidxxx", "intercept":true } //返回协议 { "code":200, "msg": "成功" }
native_close_ise 协议示例
//请求协议 { "token":"tokenxxx", "appid" : "appidxxx" } //返回协议 { "code":200, "msg": "成功" }
h5_send_ui_status 协议示例
//请求协议 { "uiStatus":"onVolume", "volume":1 }
对话反馈协议
通信协议字段
协议名称name | 协议类型 | 协议功能 | 协议参数data | 协议返回参数data | ||||||
参数 | 必选 | 数据类型 | 说明 | 参数 | 必选 | 数据类型 | 说明 | |||
native_feedback | Web->APK | 开始语音合成 | token | 是 | String | 见通用参数 | code | 是 | int | 返回码 |
appid | 是 | String | 当前应用的appid | msg | 是 | String | 返回信息 | |||
text | 是 | String | 需要反馈的文本 | |||||||
needShowText | 是 | boolean | 是否需要进行展示反馈语 | |||||||
needTts | 是 | boolean | 反馈的同时是否需要进行播报 |
如果表格过长没有水平滚动条,请尝试刷新页面
协议示例
native_feedback协议示例
//请求协议 { "appid" : "appidxxx", "token":"tokenxxx", "text":"需要反馈的文本", "needShowText":true, "needTts":true } //返回协议 { "code":200, "msg": "成功" }