ASR录音文件识别接口
目录
使用要求
| 项目 | 说明 |
|---|---|
| 请求方式 | POST |
| 响应格式 | 以文本格式返回JSON数据 |
| 音频格式 | 单通道或双通道的PCM、WAV、OPUS、MP3、MP4、M4A、WMA、AAC、OGG、AMR、FLAC、SPEEX、AC3、APE、M4R格式 采用PCM格式时,音频需满足采样率16k、位长16bit、单声道 |
| 音频大小 | 音频不超过512MB,视频不超过2GB |
| 音频时长 | 不超过5小时 |
| 转写结果保存时长 | 已完成结果保留72小时 |
| 转写结果获取次数 | 转写完成后可获取不超过100次 |
| 最大转写时间 | 最长不超过4小时 |
服务地址与鉴权方式
服务地址
所有API接口均基于以下基 础URL:
https://aibook-api.mthreads.com:62220/api/v1/asr
鉴权方式
本服务采用 Bearer Token 认证方式。在每次API请求时,需要在HTTP请求头中添加 Authorization 字段:
HTTP Header 格式:
Authorization: Bearer {your_access_token}
Python示例:
import requests
# 您的访问令牌
access_token = "your_access_token_here"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
response = requests.post(
"https://aibook-api.mthreads.com:62220/api/v1/asr/submit",
headers=headers,
json=request_data
)
注意: 访问令牌(Access Token)请联系我们获取。联系方式: meng.cai@mthreads.com, ye.wang@mthreads.com
HTTP POST
交互流程
使用音频URL时

交互流程说明
阶段1:提交识别任务
客户端向服务端发送提交识别任务(Submit)的请求,并指定音频的URL;服务端收到请求后,会进行鉴权并初始化资源,并向客户端返回task_id。
当客户端在提交识别任务时设置了callback URL,服务端在完成识别后,会通过POST方式将识别结果发送到指定的URL。
阶段2:获取识别结果
客户端使用提交任务时得到的task_id,循环发送查询结果(Query)。服务端在未识别完成时会返回当前状态,在识别完成后会返回识别结果。
上传音频时

交互流程说明
阶段1:提交识别任务
客户端向服务端发送提交识别任务(Submit)的请求;服务端收到请求后,会进行鉴权并初始化资源,并向客户端返回task_id。
客户端向服务端上传音频(Upload)。当音频较大时,客户端可分块上传音频。客户端在分块上传过程中,每次应等待服务端告知当前数据块上传成功后,再接着上传下一块数据。
当客户端上传数据完成后,向服务端发送结束上传(UploadDone)的请求,服务端开始识别。
当客户端在提交识别任务时设置了callback URL,服务端在完成识别后,会通过POST方式将识别结果发送到指定的URL。
阶段2:获取识别结果
客户端使用提交任务时得到的task_id,循环发送查询结果(Query)。服务端在未识别完成时会返回当前状态,在识别完成后会返回识别结果。
提交识别任务
请求
在HTTP Body中使用JSON格式字符串。相关参数如下:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| domain | String | 否 | 识别领域。目前仅支持general。 默认为general(通用场景) |
| language | String | 否 | 语种。目前仅支持cn 默认为cn(中文) |
| audio_type | String | 否 | 转写音频上传方式,默认为url - url:使用网络链接 - upload:使用文件上传 当使用文件上传时,客户端需要在提交识别任务的xxx时间内,开始上传音频,否则识别超时 |
| url | String | 是 | 存放录音文件的url地址 仅当audio_type=url时生效 |
| format | String | 否 | 音频编码格式,默认是WAV 可选:PCM、WAV、OPUS、MP3、MP4、M4A、WMA、AAC、OGG、AMR、FLAC、SPEEX、AC3、APE、M4R 采用PCM格式时,仅支持采样率16k、位长16bit、单声道;其他格式支持单通道或双通道音频 |
| lm_id | String | 否 | 自定义语言模型对应的ID,默认不添加 |
| vocabulary_id | String | 否 | 自定义热词对应的ID,默认不添加 |
| enable_punctuation | Boolean | 否 | 是否在后处理中添加标点,默认是False |
| enable_itn | Boolean | 否 | 逆文本归一化,即将识别结果中的中文数字转换阿拉伯数字。默认是False |
| remove_disfluency | Boolean | 否 | 语气词过滤,即结果顺滑,默认是False |
| enable_speaker_info | Boolean | 否 | 是否开启说话人分离功能,默认是False |
| show_confidence | Boolean | 否 | 是否输出置信度,默认为False |
| show_words | Boolean | 否 | 是否开启返回词信息,默认为False |
| enable_semantic_sentence_detection | Boolean | 否 | 是否开启语义断句,默认是False |
| max_single_segment_time | Integer | 否 | 单句话允许的最长时间,单位为毫秒,默认是60000 |
| max_sentence_length | Integer | 否 | 每句话的最大字数, 默认为-1,表示不启用该功能 |
| min_paragraph_length | Integer | 否 | 分段的最少字数,默认为-1,表示不启用该功能 |
| max_paragraph_length | Integer | 否 | 分段的最大字数,默认为-1,表示不启用该功能 |
| special_word_filter | String (文本化的JSON字符串) | 否 | 敏感词过滤功能,可根据实际需求开启或关闭自定义词或默认词表。默认为空字符串,该参数支持: - 空字符串:不处理 - 字典Dict:敏感词替换 - 列表List:敏感词替换为* |
| callback | String | 否 | 回调服务的地址,默认为空 当callback非空时,在识别完成后,会使用将结果POST到该URL。要求URL支持HTTP和HTTPS协议,host不可使用IP地址 |
| enable_query | Boolean | 否 | 该参数仅在callback非空时有效 如果使用回调功能并且设置enable_query=False,当服务端识别完成并调用callback后,不能再使用query接口查询结果。默认为False 若该参数设置为True,则在回调后依然允许使用query查询结果 |
| first_channel_only | Boolean | 否 | 是否只识别首个声道,默认为False |
| channel_split | Boolean | 否 | 该参数仅在first_channel_only=False时有效 当识别所有声道的内容时,是否要分轨识别。分轨识别是指,分别识别不同声道的内容。默认为False,表示将所有声道混合在一起识别。 如果为True,则会分别识别各个声道,并在结果中使用channel_id表示来源。例如,对于一条双通道音频,当channel_split=True时,将会分别识别左右声道的内容。 |
| valid_times | List | 否 | 有效时间段信息,用来排除一些不需要的时间段。 其中,valid_time参数中的每个元素说明如下: - start_time (Integer, 必填):音频段起始时间,单位为毫秒 - end_time (Integer, 必填):音频段结束时间,单位为毫秒 - channel_id (Integer, 可选):音频所属声道,默认为0 |
示例
{
"appid":"76e81efb964447",
"domain":"general",
"language":"cn",
"audio_type":"url",
"url":"https://oss.mthreads.com/test.wav",
"format":"wav",
"lm_id":0,
"vocabulary_id":0,
"enable_punctuation":true,
"enable_itn":true,
"remove_disfluency":true,
"enable_speaker_info":false,
"enable_timestamp_alignment":false,
"show_confidence":true,
"show_words":true,
"max_end_silence":800,
"enable_semantic_sentence_detection":true,
"max_single_segment_time":60000,
"max_sentence_length":-1,
"min_paragraph_length":-1,
"special_word_filter":"",
"callback":"https://callback.mthreads.com",
"enable_query":true,
"first_channel_only":false,
"channel_split":true,
"valid_times":[
{
"channel_id":0,
"start_time":0,
"end_time":60000
}
]
}
响应
返回HTTP状态码为200时,表示成功;其余为失败
| 字段 | 类型 | 说明 |
|---|---|---|
| task_id | String | 任务id |
| status | Integer | 识别状态码 |
| status_text | String | 状态说明 |
如果设置了callback,在识别结束后,服务端会向指定的URL发送HTTP POST请求。具体请求内容请参考"查询结果"部分。
示例
{
"task_id":"4c0d4443fcd34567b42e028a54400e40",
"status":1000,
"status_text":"Success."
}
上传音频
请求
仅在提交任务时指定audio_type=upload时,能使用上传音频功能。当音频文件过大时,可以每次上传一部分数据,分多次上传。
进行分块时,建议用户一次性上传不超过10M的数据。
在进行音频上传时,相关参数放在HTTPS请求行中,二进制数据放在请求体中。
HTTPS请求行
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| task_id | String | 是 | 在"提交识别任务"阶段,服务端返回的task_id |
HTTPS请求头
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Content-Type | String | 是 | 取值"application/octet-stream",表明HTTPS请求体的数据为二进制流。 |
HTTPS请求体
待识别音频的二进制数据
示例
POST http://url/upload?task_id=68753A444D6F12269C600050E4C00067 HTTP/1.1
Content-Type: application/octet-stream;
content of audio[语音文件的二进制数据]
响应
| 字段 | 类型 | 说明 |
|---|---|---|
| status | Integer | 识别状态码 |
| status_text | String | 状态说明 |
示例
{
"task_id":"4c0d4443fcd34567b42e028a54400e40",
"status":1000,
"status_text":"Success."
}
结束上传
请求
在完成所有音频片段的上传后,需要发送"结束上传"的请求。发送"结束上传"后,该音频进入服务端处理队列。请求参数说明:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| task_id | String | 是 | 在"提交识别任务"阶段,服务端返回的task_id |
| md5 | String | 是 | 上传文件的MD5码值,用于文件完整性校验。 |
示例
{
"task_id":"4c0d4443fcd34567b42e028a54400e40",
"md5":"cc57b89407609632014997eeb90f0c86"
}
响应
| 字段 | 类型 | 说明 |
|---|---|---|
| status | Integer | 识别状态码 |
| status_text | String | 状态说明 |
示例
{
"status":1000,
"status_text":"Success."
}