接口文档
更新时间 2026-06-11 10:19:10
最近更新时间: 2026-06-11 10:19:10
接口信息
API Path
/aipaas/voice/v1/asr/fy
请求协议
WS
建立连接时的请求参数(websocket open):
请求头部:
| 头部标签 | 必填 | 说明 | 类型 | 数据字典 | 限制 | 头部内容 | 示例 |
|---|---|---|---|---|---|---|---|
| Content-Type | 是 | application/json | [string] | - | - | application/json | application/json |
| X-APP-ID | 是 | 系统管理--API Key,创建应用获取AppID 和AppKey,公网鉴权,公网调用时必传 | [string] | - | - | - | - |
| Device-Uuid | 否 | 设备管理-设备uuid | [string] | - | - | - | - |
| Authorization | 是 | 鉴权信息 | [string] | - | - | - | - |
请求参数
Json Object
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| option | 语音识别配置可选项,客户端发送开始识别请求时,根据具体需求,配置该字段 | 否 | [object] | - | - | - |
| option>>sample_rate | 音频采样率,默认值16000Hz | 否 | [int] | - | - | - |
| option>>enable_punctuation | 是否加标点,默认:是,若开启,则在rec_status为3时给识别文本增加标点 | 否 | [boolean] | - | - | - |
| option>>enableinversetext_normalization | 是否开启 ITN,默认:是,若开启,则在rec_status为3时对识别文本进行逆文本规范化 | 否 | [boolean] | - | - | - |
| option>>enable_emendation | 是否开启校勘,默认:否,若开启,则在rec_status为3时对识别文本进行校准 | 否 | [boolean] | - | - | - |
| option>>enable_words | 是否开启返回词信息,默认:否,若开启,则同时返回字级别时间戳 | 否 | [boolean] | - | - | - |
| option>>enable_s2t | 是否返回繁体中文,默认值是 false | 否 | [boolean] | - | - | - |
| option>>province | (V3.2.0删除)仅对来自电信万号的业务开放(预留字段) | 否 | [string] | - | - | - |
| option>>hotwords | 热词列表,string数组 | 否 | [array] | - | - | - |
| option>>hotwordlistid | 热词列表查询ID(在热词服务创建热词表后得到热词列表查询ID,ASR服务使用此ID查询生效) | 否 | [string] | - | - | - |
| option>>bannedwordlist_id | 敏感词列表查询ID(在敏感词服务创建敏感词列表后得到敏感词列表查询ID,ASR服务使用此ID查询生效) | 否 | [string] | - | - | - |
| option>>maxendsilence | 句尾静音阈值,单位ms(仅当服务使用普通vad时生效) | 否 | [int] | - | - | - |
| option>>format | 音频格式,支持pcm、opus,默认值是pcm,传入其它值会报错(opus格式需要明确是ogg封装的opus格式) | 否 | [string] | - | - | - |
| req_id | 请求全局唯一id,记录该值便于排查问题【发送开始识别rec_status=0时必填】 | 是 | [string] | - | - | - |
| rec_status | 识别状态 0:开始识别; 1:发送语音流; 2:结束语音流; | 是 | [int] | - | - | - |
| audio_stream | 发送语音流时必填。语音流,采用 base64 编码 | 否 | [string] | - | - | - |
| 响应报文: | - | - | - | - | - | - |
返回结果
成功 (200) Json Object
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| code | 返回码 | 是 | [int] | - | - | 10000 |
| message | 返回码描述 | 是 | [string] | - | - | success |
| sid | 会话全局唯一 id,用于记录本次会话 | 是 | [string] | - | - | aae36140-bc13-441f-81f9-6700fe7a5e96 |
| res_status | 响应状态 0:识别就绪; 1:识别到有效语音开始; 2:如果开启了返回中间结果, 则返回中间识别结果; 3:检测到一段有效语音结束,返回该段语音的识别结果; 4:处理完所有的音频数据,返回尚未返回的识别结果(如果有); | 是 | [int] | - | - | 2 |
| elps_time | 当前识别结果所对应的已处理的音频总时长,单位是毫秒 | 否 | [int] | - | - | - |
| data | 识别结果,服务端接收到语音流后返回 | 是 | [object] | - | - | - |
| data>>sn | 句子编号,从 0开始 | 否 | [int] | - | - | - |
| data>>results | 当前句子识别结果,如果开启 object.nbest ,则返回多个结果 | 否 | [array] | - | - | - |
| data>>results>>text | 句子识别结果 | 否 | [string] | - | - | - |
| data>>results>>begin_time | 句子开始时间,单位是毫秒 | 否 | [int] | - | - | - |
| data>>results>>end_time | 句子结束时间,单位是毫秒 | 否 | [int] | - | - | - |
| data>>results>>loudness | 句子音量,仅在一句话结束即res_status=3时返回 | 否 | [float] | - | - | - |
| data>>results>>speed | 句子语速,仅在一句话结束即res_status=3时返回 | 否 | [float] | - | - | - |
| data>>results>>pitch | 句子语调,仅在一句话结束即res_status=3时返回 | 否 | [float] | - | - | - |
| data>>results>>lang | 当前方言种类,仅在Sensevoice模型二刷时有效,仅在状态3有效 | 否 | [string] | - | - | - |
| data>>results>>words | 当前句子的词信息 | 否 | [array] | - | - | - |
| data>>results>>words>>text | 词信息 | 否 | [string] | - | - | - |
| data>>results>>words>>begin_time | 词开始时间,单位是毫秒 | 否 | [int] | - | - | - |
| data>>results>>words>>end_time | 词结束时间,单位是毫秒 | 否 | [int] | - | - | - |
能力简介
多方言实时语音识别是指能够同时处理多种方言的语音识别系统。这种系统可以实现在不同方言之间进行实时转换和识别,广泛应用于多语言环境下的语音交互场景。
音频属性:采样率8k/16k/其他常见采样率,位宽 16 bit,单声道
音频格式:PCM 音频流
字符编码:UTF-8
响应格式:统一采用 JSON 格式
音频格式:PCM音频流,0GG封装的opus音频流
服务鉴权
服务接口调用时需要严格遵循服务鉴权规则,服务调用鉴权规则请参见:开发指南 - 签名认证方式。
鉴权状态码
| 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 | int | 是 | 识别状态 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 | int | 是 | 识别状态 0:开始识别; 1:发送语音流; 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是否有错误,检查敏感词查询服务是否有错误 |