录音文件识别

最近更新时间:2026-05-09 17:58:31

我的收藏

接口描述

本接口可对较长的录音文件进行识别
音频格式支持 wav、ogg-opus、mp3、m4a。
请求方法为 HTTP POST,Content-Type"application/json; charset=utf-8"
音频提交方式:本接口支持音频 URL、本地音频文件两种请求方式。
音频限制:音频 URL 时长不能大于 12 小时,文件大小不超过 1GB;本地音频文件不能大于 5MB。
如何获取识别结果:支持回调或轮询的方式获取结果。
识别结果有效时间:识别结果在服务端保存 24 小时。

接口要求

集成录音文件识别 API 时,需按照以下要求。
内容
说明
语言种类
支持中文普通话、英文。
支持行业
通用。
音频属性
采样率:16000Hz 采样精度:16bits 声道:单声道(mono)。
音频格式
wav、ogg-opus、mp3、m4a。
请求协议
https 协议。
请求地址
https://域名/v1/CreateRecTask?\\{请求参数\\}。
响应格式
JSON。
数据发送
支持本地语音文件上传和语音 URL 上传两种请求方式。音频 URL 时长不能大于 12 小时,文件大小不超过 1GB;本地音频文件不能大于 5MB。
并发限制
默认单账号限制并发数为 20 次每秒。

业务流程图





接口调用流程

请求格式

客户端发起 HTTP POST 请求,请求 URL 格式为:
正式环境:https://asr.cloud-rtc.com/v1/CreateRecTask?{请求参数}
在请求 header 中填写以下字段:
key
必填
value 含义
X-TRTC-SdkAppId
TRTC 应用 ID,获取方式请参见 应用基本信息
X-TRTC-UserSig
TRTC 签名,计算及使用请参见 用户鉴权,其中的 UserID 等于 URL 参数中的 RequestId。

请求参数

请求参数格式为:AppId=value1&RequestId=value2
参数说明
参数名
必填
类型
描述
AppId
String
腾讯云注册账号的 appid,可通过 API 密钥管理 获取。
RequestId
String
全局请求唯一 ID(UUID),该参数用来生成请求 UserSig。

输入参数

录音文件识别的请求消息体,格式为 json。
参数说明
参数名
必填
类型
描述
EngineModelType
String
引擎模型类型,目前支持:
16k_zh:中文通用。
16k_zh_en:中英文通用。
ResTextFormat
Integer
识别结果返回样式:
0:基础识别结果(仅包含有效人声时间戳,无词粒度的详细识别结果)。
1:基础识别结果之上,增加词粒度的详细识别结果(包含词级别时间戳、语速值,不含标点)。
2:基础识别结果之上,增加词粒度的详细识别结果(包含词级别时间戳、语速值和标点)。
ChannelNum
Integer
当前只支持配置为 1。
SourceType
Integer
语音数据来源:
0:语音 URL。
1:语音数据(post body)。
CallbackUrl
String
回调 URL,用户自行搭建的用于接收识别结果的服务 URL。回调格式和内容详见:录音识别回调说明
注意:
如果用户使用轮询方式获取识别结果,则无需提交该参数。
建议在回调 URL 中带上您的业务 ID 等信息,以便处理业务逻辑。
Url
String
语音的 URL 地址,需要公网环境浏览器可下载。当 SourceType 值为 0 时须填写该字段,为 1 时不填。音频时长不能超过 12 小时,音频文件大小不能超过 1GB。
Data
String
语音数据,当 SourceType 值为 1(本地语音数据上传)时必须填写,当 SourceType 值为 0(语音 URL 上传)可不写。必须使用 Base64 编码(采用 Python 语言时注意读取文件应该为 string 而不是 byte,以 byte 格式读取后要 decode()。编码后的数据不可带有回车换行符)。音频文件大小不能超过 5MB(Base64 编码后)。
DataLen
Integer
数据长度,单位为字节。当 SourceType 值为 1(本地语音数据上传)时必须填写,当 SourceType 值为 0(语音 URL 上传)可不写(此数据长度为数据未进行 Base64 编码时的数据长度)。
FilterDirty
Integer
是否过滤脏词(中文普通话):
0:不过滤脏词。
1:过滤脏词。
2:将脏词替换为 \\*。
默认值为 0。
FilterModal
Integer
是否过滤语气词(中文普通话):
0:不过滤语气词。
1:部分过滤。
2:严格过滤。
默认值为 0。
FilterPunc
Integer
是否过滤标点符号(中文普通话):
0:不过滤。
1:过滤句末标点。
默认值为 0。
ConvertNumMode
Integer
是否进行阿拉伯数字智能转换:
0:不转换,直接输出中文数字。
1:根据场景智能转换为阿拉伯数字。
默认值为 1。
HotwordList
String
临时热词表:该参数用于提升识别准确率。
单个热词限制:“热词|权重”,单个热词不超过 30 个字符(最多 10 个汉字),权重 1-11 或者 100,例如:“热词|5” 或 “ASR|11”。
临时热词表限制:多个热词用英文逗号分隔,最多支持 128 个热词,例如:“热词|10,语音识别|5,ASR|11”。
注意:
热词权重设置为 11 时,当前热词将升级为超级热词,建议仅将重要且必须生效的热词设置到 11,设置过多权重为 11 的热词将影响整体字准率。
热词权重设置为 100 时,当前热词开启热词增强同音替换功能(仅支持 8k_zh, 16k_zh)。举例:热词配置“蜜制|100”时,与“蜜制”同拼音(mizhi)的"秘制"的识别结果会被强制替换成“蜜制”。
language
String
暂不支持。

响应格式

响应消息为 json 格式,所有返回字段都位于顶层 Response 对象之内。

参数说明

参数名
类型
描述
Response
Object
顶层响应对象,包含以下字段。
Response.RequestId
String
请求的 RequestId,定位问题时需要提供该次请求的 RequestId。
Response.Data
Object
响应数据对象,包含以下字段。
Response.Data.RecTaskId
String
该参数由服务端生成。录音文件识别的请求返回结果,包含结果查询需要的 RecTaskId。
注意:
RecTaskId 有效期为 24 小时,不同日期可能出现重复 RecTaskId,请不要依赖 RecTaskId 作为您业务系统里的唯一 ID。
示例
用户通过 SourceType=1 请求录音文件识别,请求如下:
请求网址:
https://asr.cloud-rtc.com/v1/CreateRecTask?AppId=1234***5&RequestId=7737****81dd-4b60-a08b-b34ed46243a7
输入参数
{
"EngineModelType": "16k_zh_en",
"ResTextFormat": 0,
"ChannelNum": 1,
"SourceType": 1,
"Data": "xxxxxxxx",
"DataLen": 8
}
响应结果
{
"Response": {
"RequestId": "24fe80e8-5b0c-4232-866f-4a402ee3127b",
"Data": {
"RecTaskId": "TT1Ie0V0voyHKBrWqqUZw57smgjSR3K1eazaxrmIuEZoeyw+xUgmJ+Y5eli2U9Y2dcpUF4wsMOqPjQAPxw8bvcUoWTON2M6wjcBZcHtrpt0Dm"
}
}
}

录音文件回调说明

录音识别请求中,如果用户设置了 CallbackUrl 参数,则通过回调的方式来返回识别结果,用户需要自行搭建可公网访问的 HTTP 或者 HTTPS 服务,并在创建录音识别任务时,将回调 Url 填写到 CallbackUrl 中。回调时,使用 HTTP 的 POST 方法,将所有内容放入 Body 中,Content-Type 为 application/x-www-form-urlencoded

回调 body 说明

回调 body 示例
code=0&requestId=DYz1ieNlIyb5nZT+R9kQsCAocpoDD6l1qvqam7XBk78PDQ..&appid=12516****&text=%5B0&audioTime=8.420000&message=&resultDetail=

回调参数说明

名称
类型
描述
code
Integer
任务状态码,0 为成功,其他:失败。
message
String
失败原因文字描述,成功时此值为空。
requestId
String
任务唯一标识,与录音识别请求中返回的 RecTaskId 一致。
appid
Integer
请求的 AppId。
audioUrl
String
语音 URL,如创建任务时为上传数据的方式,则不包含该字段。
text
String
识别出的结果文本。
resultDetail
String
包含详细识别结果,如创建任务时 ResTextFormat 为 0,则不包含该字段。
audioTime
Float
语音总时长(秒)。

详细识别结果

SentenceDetail
单句的详细识别结果,包含单个词的时间偏移
名称
类型
描述
FinalSentence
String
单句最终识别结果。
注意:
此字段可能返回 null,表示取不到有效值。
SliceSentence
String
单句中间识别结果,使用空格拆分为多个词。
注意:
此字段可能返回 null,表示取不到有效值。
StartMs
Integer
单句开始时间(毫秒)。
注意:
此字段可能返回 null,表示取不到有效值。
EndMs
Integer
单句结束时间(毫秒)。
注意:
此字段可能返回 null,表示取不到有效值。
WordsNum
Integer
单句中词个数。
注意:
此字段可能返回 null,表示取不到有效值。
Words
Array of SentenceWords
单句中词详情。
注意:
此字段可能返回 null,表示取不到有效值。
SpeechSpeed
Float
单句语速,单位:字数/秒。
注意:
此字段可能返回 null,表示取不到有效值。
SentenceWords
识别结果中词文本,以及对应时间偏移
名称
类型
描述
Word
String
词文本。
注意:
此字段可能返回 null,表示取不到有效值。
StartTime
Integer
在句子中的开始时间偏移量。
注意:
此字段可能返回 null,表示取不到有效值。
EndTime
Integer
在句子中的结束时间偏移量。
注意:
此字段可能返回 null,表示取不到有效值。

回调状态码

数值
说明
10000
转码失败,请确认音频格式是否符合标准。
10001
识别失败。
10002
语音时长太短。
10003
语音时长太长。
10004
无效的语音文件。
10005
其他失败。
10006
音轨个数不匹配。
10007
音频下载失败。

录音文件识别结果查询

接口描述

调用录音文件识别请求接口后,有回调和轮询两种方式获取识别结果。采用回调方式时详见录音文件回调说明
注意:
任务有效期为 24 小时,超过 24 小时的任务请不要再查询,且不要依赖 RecTaskId 作为业务唯一 ID,不同日期可能出现重复 RecTaskId。
当采用轮询方式时,需要主动提交任务 ID 来轮询识别结果,共有任务成功、等待、执行中和失败四种结果,具体信息请参见下文说明。
请求方法为 HTTP POST,Content-Type 为 "application/json; charset=utf-8"。
默认接口请求频率限制:50 次/秒。
内容
说明
请求协议
https 协议。
请求地址
https://域名/v1/DescribeTaskStatus?\\{请求参数\\}。
响应格式
JSON。
并发限制
默认单账号限制并发数为 50 次每秒。

请求格式

客户端发起 HTTP POST 请求,请求 URL 格式为:
正式环境:https://asr.cloud-rtc.com/v1/DescribeTaskStatus?{请求参数}
在请求 header 中填写以下字段:
key
必填
value 含义
X-TRTC-SdkAppId
TRTC 应用 ID,获取方式请参见 应用基本信息
X-TRTC-UserSig
TRTC 签名,计算及使用请参见 用户鉴权,其中的 UserID 等于 URL 参数中的 RequestId。

请求参数

请求参数格式为:AppId=value1&RequestId=value2
参数说明
参数名
必填
类型
描述
AppId
String
腾讯云注册账号的 AppId,可通过 API 密钥管理 获取。
RequestId
String
全局请求唯一 ID(UUID),该参数用来生成请求 UserSig。

输入参数

录音文件查询接口的请求消息体格式为 json。
参数名
必填
类型
描述
RecTaskId
String
从 CreateRecTask 接口获取的 RecTaskId,用于获取任务状态与结果。
注意:
RecTaskId 有效期为 24 小时,超过 24 小时的 RecTaskId 请不要再查询。

输出参数

录音文件查询接口请求消息体响应格式为 json,所有返回字段都位于顶层 Response 对象之内。
参数名
类型
描述
Response
Object
顶层响应对象。
Response.Data
TaskStatus
录音文件识别的请求返回结果。
Response.RequestId
String
唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
TaskStatus 结构如下:
名称
类型
描述
RecTaskId
String
任务标识。RecTaskId 数据类型为 String。
Status
Integer
任务状态码:
0:任务等待。
1:任务执行中。
2:任务成功。
3:任务失败。
StatusStr
String
任务状态:
waiting:任务等待。
doing:任务执行中。
success:任务成功。
failed:任务失败。
Result
String
识别结果。
ErrorMsg
String
失败原因说明。
ResultDetail
Array of SentenceDetail
识别结果详情。包含每个句子中的词时间偏移,一般用于生成字幕的场景。(录音识别请求中 ResTextFormat 不为 0 时该字段不为空)。
注意:
此字段可能返回 null,表示取不到有效值。
AudioDuration
Float
音频时长(秒)。
注意:
此字段可能返回 null,表示取不到有效值。

查询示例

请求网址
https://asr.cloud-rtc.com/v1/DescribeTaskStatus?RequestId=2f5e8263-a23b-4e65-be22-6b7c19bd4064&AppId=12345
输入参数
{
"RecTaskId": "DYz1ieNlIyb5nZT+R9kQsCAocpoDD6l1qvqam7XBk78PDQ.."
}
响应结果
{
"Response": {
"RequestId": "2f5e8263-a23b-4e65-be22-6b7c19bd4064",
"Data": {
"RecTaskId": "DYz1ieNlIyb5nZT+R9kQsCAocpoDD6l1qvqam7XBk78PDQ..",
"Status": 2,
"StatusStr": "success",
"AudioDuration": 2.38,
"Result": "[0:0.200,0:1.380] 你好。\\n",
"ResultDetail": [
{
"FinalSentence": "你好。",
"SliceSentence": "你好",
"StartMs": 200,
"EndMs": 1380,
"SpeechSpeed": 2,
"WordsNum": 1,
"Words": [
{
"Word": "你好",
"StartTime": 200,
"EndTime": 1380
}
]
}
],
"ErrorMsg": ""
}
}
}