API Path
/aipaas/voice/v1/tibetanStreamingAsr/asr
请求协议
WS
建立连接时的请求参数(websocket open) :
请求头部 :
| 头部标签 | 必填 | 说明 | 类型 | 数据字典 | 限制 | 头部内容 | 示例 |
|---|---|---|---|---|---|---|---|
| Content-Type | 是 | 内容类型 | application/json | application/json | |||
| X-APP-ID | 是 | 控制台--应用管理--AppID | |||||
| Device-Uuid | 是 | 设备管理-设备uuid | |||||
| Authorization | 是 | 鉴权信息 |
建立连接时的响应内容(websocket open) :
请求报文 :
请求参数 Json
Object
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| req_id | 请求全局唯一id,记录该值便于排查问题【发送开始识别rec_status=0时必填】 | 是 | [string] | 0 | ||
| rec_status | 识别状态 0:开始识别; 1:发送语音流; 2:结束语音流; | 是 | [int] | 0 | ||
| audio_stream | 发送语音流时为必填。语音流,采用base64编码 | 否 | [string] | 0 | ||
| option | 语音识别配置可选项,客户端发送开始识别请求时,根据具体需求,配置该字段 | 否 | [object] | 0 | ||
| option>>sample_rate | 音频采样率,默认值16000Hz | 否 | [int] | 0 | ||
| option>>enable_punctuation | 是否加标点,默认:是,若开启,则在rec_status为3时给识别文本增加标点 | 否 | [boolean] | 0 | ||
| option>>enable_inverse_text_normalization | 是否开启 ITN,默认:是,若开启,则在rec_status为3时对识别文本进行逆文本规范化 | 否 | [boolean] | 0 | ||
| option>>enable_emendation | 是否开启校勘,默认:否,若开启,则在rec_status为3时对识别文本进行校准 | 否 | [boolean] | 0 | ||
| option>>enable_words | 是否开启返回词信息,默认:否,若开启,则同时返回字级别时间戳 | 否 | [boolean] | 0 | ||
| option>>enable_s2t | 是否返回繁体中文,默认值是 false | 否 | [boolean] | 0 | ||
| option>>province | 仅对来自电信万号的业务开放(预留字段) | 否 | [string] | 0 | ||
| option>>hotwords | 热词列表,string数组 | 否 | [array] | 0 | ||
| option>>hotword_list_id | 热词列表查询ID(在星河热词服务创建热词表后得到热词列表查询ID,ASR服务使用此ID查询生效) | 否 | [string] | 0 | ||
| option>>banned_word_list_id | 敏感词列表查询ID(在星河敏感词服务创建敏感词列表后得到敏感词列表查询ID,ASR服务使用此ID查询生效) | 否 | [string] | 0 | ||
| option>>max_end_silence | 句尾静音阈值,单位ms(仅当服务使用普通vad时生效) | 否 | [int] | 0 | ||
| 响应报文 : |
返回结果
成功 (200)
Json
Object
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| code | 返回码 | 是 | [int] | 0 | ||
| message | 返回码描述 | 是 | [string] | 0 | ||
| sid | 会话全局唯一 id,用于记录本次会话 | 是 | [string] | 0 | ||
| res_status | 响应状态 0:识别就绪; 1:识别到有效语音开始; 2:如果开启了返回中间结果, 则返回中间识别结果; 3:检测到一段有效语音结束,返回该段语音的识别结果; 4:处理完所有的音频数据,返回尚未返回的识别结果(如果有); | 是 | [int] | 0 | ||
| data | 是 | [object] | 0 | |||
| data>>sn | 句子编号,从 0 开始 | 否 | [int] | 0 | ||
| data>>results | 当前句子识别结果,如果开启 object.nbest ,则返回多个结果 | 否 | [array] | 0 | ||
| data>>results>>text | 句子识别结果 | 否 | [string] | 0 | ||
| data>>results>>begin_time | 句子开始时间,单位是毫秒 | 否 | [int] | 0 | ||
| data>>results>>end_time | 句子结束时间,单位是毫秒 | 否 | [int] | 0 | ||
| data>>results>>loudness | 句子音量,仅在一句话结束即res_status=3时返回 | 否 | [float] | 0 | ||
| data>>results>>speed | 句子语速,仅在一句话结束即res_status=3时返回 | 否 | [float] | 0 | ||
| data>>results>>pitch | 句子语调,仅在一句话结束即res_status=3时返回 | 否 | [float] | 0 | ||
| data>>results>>lang | 当前方言种类,仅在Sensevoice模型二刷时有效,仅在状态3有效 | 否 | [string] | 0 | ||
| data>>results>>words | 当前句子的词信息 | 否 | [array] | 0 | ||
| data>>results>>words>>text | 词信息 | 否 | [string] | 0 | ||
| data>>results>>words>>begin_time | 词开始时间,单位是毫秒 | 否 | [int] | 0 | ||
| data>>results>>words>>begin_time | 词结束时间,单位是毫秒 | 否 | [int] | 0 | ||
| elps_time | 当前识别结果所对应的已处理的音频总时长,单位是毫秒 | 否 | [int] | 0 |
详细说明 :
实时语音识别,用于实时音频流转换为文字场景,支持一边上传音频流,一边实时返回转写结果。
| 修订日期 | 算法版本号 | 修订内容 |
|---|---|---|
| 2026-02-09 | V1.0.0 | 服务支持藏语流式识别 |
服务接口调用时需要严格遵循服务鉴权规则,服务调用鉴权规则请参见:开发指南 - 接口签名认证。
| code | 说明 | 错误描述信息 | 解决方法 |
|---|---|---|---|
| 101 | 成功 | {"message":"success"} | 成功,开始语音识别 |
| 4002 | 并发超过限制 | {"message":"server overflow"} | 联系商务,增加并发 |
| 4004 | 授权失败 | {"message":"invalid license"} | 联系运维人员生成有效license |
客户端发送开始识别请求,需要通过请求body带语音识别过程中的可选配置参数,示例:
{
"option": {
"sample_rate": 16000,
"enable_punctuation": true,
"enable_inverse_text_normalization": true
},
"req_id": "aae36140-bc13-441f-81f9-6700fe7a5e96",
"rec_status": 0
}
{
"code": 10000,
"message": "success",
"sid": "aae36140-bc13-441f-81f9-6700fe7a5e96",
"res_status": 0
}
客户端接收到服务端发送的确认识别请求有效的响应后,开始发送语音流数据,请求body各参数含义如下:
| 参数 | 类型 | 必须 | 说明 |
|---|---|---|---|
| rec_status | Integer | 是 | 识别状态 0:开始识别; 1:发送语音流; 2:结束语音流; |
| audio_stream | String | 是 | 语音流,采用base64编码 |
示例:
{
"rec_status":1,
"audio_stream":"000asraae361406700fe7a5e9681f956210b5f1270"
}
客户端接收到服务端发送的确认检测请求有效的响应后,开始持续接收识别结果。
识别结果示例:
{
"code": 10000,
"message": "success",
"sid": "aae36140-bc13-441f-81f9-6700fe7a5e96",
"res_status": 2,
"data": {
"sn": 1,
"results": [{
"lang": "zh",
"text": "你好今天",
"begin_time": 1500,
"end_time": 2800,
"words": [
{
"text": "你",
"begin_time": 50,
"end_time": 70
},
{
"text": "好",
"begin_time": 50,
"end_time": 70
},
{
"text": "今",
"begin_time": 50,
"end_time": 70
},
{
"text": "天",
"begin_time": 50,
"end_time": 70
}
]
}]
}
}
客户端语音流发送完成,结束语音流,请求body各参数含义如下:
| 参数 | 类型 | 必须 | 说明 |
|---|---|---|---|
| rec_status | Integer | 是 | rec_status=2 结束语音流 |
{
"rec_status":2
}
客户端如果不需要继续进行语音识别,则立即关闭websocket 连接(避免占用资源),如果需要继续进行语音识别(多轮对话场景),需要从开始识别状态开始,按照上述步骤依次执行
| 状态码 | 解释 | 说明 | 解决方法 |
|---|---|---|---|
| 10000 | success | 成功 | 执行下一步操作 |
| 20003 | Banned word(s) detected in input | 敏感词命中 | 成功,并检测到敏感词 |
| 10001 | parse request body fail | URL body 格式不对 | 查看请求的 URL body 格式是否正确,参考接口文档 |
| 10002 | session not found | 会话id查询失败 | 检查客户端发送的请求,通常是因为没有发送开始识别请求 |
| 10003 | required parameter miss | 参数缺失 | 检查接口文档,补全入参 |
| 10004 | duplicated session id | 会话id重复 | 检查客户端发送的请求,通常是因为重复发送开始识别请求 |
| 10005 | worker pool overflow | 超并发 | 联系研发人员进行排查 |
| 10006 | unknown error | 未知错误 | 联系研发人员进行排查 |
| 10007 | Non-real-time audio data | 非实时音频数据 | 检查发送的音频数据是否与每次发送间隔的时间一致,比如每200ms发送200ms的音频数据 |
| 10008 | Session not begun | 尚未发送开始识别标志 | 检查是否发送开始识别标志 |
| 10009 | Session is running | 重复发送开始识别标志 | 检查是否重复发送开始识别标志,若重复,请先发送结束识别标志 |
| 10010 | Hotword list load failed | 热词表查询失败 | 检查X-APP-ID,热词表ID是否有错误,检查热词查询服务是否有错误 |
| 10011 | Banned Word List Loads failed | 敏感词表查询失败 | 检查X-APP-ID,敏感词ID是否有错误,检查敏感词查询服务是否有错误 |
实时语音识别,用于实时音频流转换为文字场景,支持一边上传音频流,一边实时返回转写结果。
| 修订日期 | 算法版本号 | 修订内容 |
|---|---|---|
| 2026-02-09 | V1.0.0 | 服务支持藏语流式识别 |
服务接口调用时需要严格遵循服务鉴权规则,服务调用鉴权规则请参见:开发指南 - 接口签名认证。
| code | 说明 | 错误描述信息 | 解决方法 |
|---|---|---|---|
| 101 | 成功 | {"message":"success"} | 成功,开始语音识别 |
| 4002 | 并发超过限制 | {"message":"server overflow"} | 联系商务,增加并发 |
| 4004 | 授权失败 | {"message":"invalid license"} | 联系运维人员生成有效license |
客户端发送开始识别请求,需要通过请求body带语音识别过程中的可选配置参数,示例:
{
"option": {
"sample_rate": 16000,
"enable_punctuation": true,
"enable_inverse_text_normalization": true
},
"req_id": "aae36140-bc13-441f-81f9-6700fe7a5e96",
"rec_status": 0
}
{
"code": 10000,
"message": "success",
"sid": "aae36140-bc13-441f-81f9-6700fe7a5e96",
"res_status": 0
}
客户端接收到服务端发送的确认识别请求有效的响应后,开始发送语音流数据,请求body各参数含义如下:
| 参数 | 类型 | 必须 | 说明 |
|---|---|---|---|
| rec_status | Integer | 是 | 识别状态 0:开始识别; 1:发送语音流; 2:结束语音流; |
| audio_stream | String | 是 | 语音流,采用base64编码 |
示例:
{
"rec_status":1,
"audio_stream":"000asraae361406700fe7a5e9681f956210b5f1270"
}
客户端接收到服务端发送的确认检测请求有效的响应后,开始持续接收识别结果。
识别结果示例:
{
"code": 10000,
"message": "success",
"sid": "aae36140-bc13-441f-81f9-6700fe7a5e96",
"res_status": 2,
"data": {
"sn": 1,
"results": [{
"lang": "zh",
"text": "你好今天",
"begin_time": 1500,
"end_time": 2800,
"words": [
{
"text": "你",
"begin_time": 50,
"end_time": 70
},
{
"text": "好",
"begin_time": 50,
"end_time": 70
},
{
"text": "今",
"begin_time": 50,
"end_time": 70
},
{
"text": "天",
"begin_time": 50,
"end_time": 70
}
]
}]
}
}
客户端语音流发送完成,结束语音流,请求body各参数含义如下:
| 参数 | 类型 | 必须 | 说明 |
|---|---|---|---|
| rec_status | Integer | 是 | rec_status=2 结束语音流 |
{
"rec_status":2
}
客户端如果不需要继续进行语音识别,则立即关闭websocket 连接(避免占用资源),如果需要继续进行语音识别(多轮对话场景),需要从开始识别状态开始,按照上述步骤依次执行
| 状态码 | 解释 | 说明 | 解决方法 |
|---|---|---|---|
| 10000 | success | 成功 | 执行下一步操作 |
| 20003 | Banned word(s) detected in input | 敏感词命中 | 成功,并检测到敏感词 |
| 10001 | parse request body fail | URL body 格式不对 | 查看请求的 URL body 格式是否正确,参考接口文档 |
| 10002 | session not found | 会话id查询失败 | 检查客户端发送的请求,通常是因为没有发送开始识别请求 |
| 10003 | required parameter miss | 参数缺失 | 检查接口文档,补全入参 |
| 10004 | duplicated session id | 会话id重复 | 检查客户端发送的请求,通常是因为重复发送开始识别请求 |
| 10005 | worker pool overflow | 超并发 | 联系研发人员进行排查 |
| 10006 | unknown error | 未知错误 | 联系研发人员进行排查 |
| 10007 | Non-real-time audio data | 非实时音频数据 | 检查发送的音频数据是否与每次发送间隔的时间一致,比如每200ms发送200ms的音频数据 |
| 10008 | Session not begun | 尚未发送开始识别标志 | 检查是否发送开始识别标志 |
| 10009 | Session is running | 重复发送开始识别标志 | 检查是否重复发送开始识别标志,若重复,请先发送结束识别标志 |
| 10010 | Hotword list load failed | 热词表查询失败 | 检查X-APP-ID,热词表ID是否有错误,检查热词查询服务是否有错误 |
| 10011 | Banned Word List Loads failed | 敏感词表查询失败 | 检查X-APP-ID,敏感词ID是否有错误,检查敏感词查询服务是否有错误 |