音频文件转写API
更新时间:2024-08-21
接口描述
音频文件转写接口可以将大批量的音频文件异步转写为文字。适合音视频字幕生产、批量录音质检、会议内容总结、录音内容分析等场景,一般12小时内返回识别接口。
步骤:
1、根据音频url、音频格式、语言id以及采样率等参数创建音频转写任务,获取task_id参数。
2、根据task_id的数组批量查询音频转写任务结果。
在线调试&示例代码
您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
Python Demo 点击下载 (文件为.zip压缩包,若无法打开时,可尝试在文件后上增加".zip“后缀)
创建音频转写任务-请求说明
请求接口:https://aip.baidubce.com/rpc/2.0/aasr/v1/create
HTTP 方法:POST
URL参数:
参数 | 取值 |
---|---|
access_token | 通过 API Key 和 Secret Key 获取的 access_token,参考Access Token获取 |
JSON方式上传音频
Body中放置请求参数,语音数据和其他参数通过标准 JSON 格式串行化 POST 上传,包括的参数如下:
参数名 | 类型 | 是否必需 | 对外状态 | 取值范围 |
---|---|---|---|---|
speech_url | str | 是 | 音频url | 可使用百度云对象存储进行音频存储,生成云端可外网访问的url链接,音频大小不超过500MB,url长度不超过2048字节 |
format | str | 是 | 音频格式 | ["mp3", "wav", "pcm","m4a","amr"]单声道,编码 16bits 位深 |
pid | int | 是 | 语言类型 | 80001(中文语音近场识别模型极速版), 80006(中文音视频字幕模型,1737(英文模型) |
rate | int | 是 | 采样率 | [16000] 固定值 |
switch_nlp_smooth | int | 否 | 文本后处理开关 | 0关闭,1为开启 |
smooth_task_list | int | 否 | 文本后处理分功能选取 | 0为全开,1为标点,2为数字转化阿拉伯,3为语气词删除 |
switch_nlp_censor | int | 否 | 文本敏感词过滤开关 | 0关闭。1开启。开启后敏感词会变为* |
若音频采样率为8k,请使用呼叫中心音频文件转写
Body请求示例:
{
"speech_url": "https://platform.bj.bcebos.com/sdk%2Fasr%2Fasr_doc%2Fdoc_download_files%2F16k.pcm",
"format": "pcm",
"pid": 80001,
"rate": 16000
}
创建音频转写任务-返回说明
返回参数
参数名 | 类型 | 是否必需 | 对外状态 |
---|---|---|---|
log_id | int | 是 | log id |
task_id | str | 否 | 任务id |
task_status | str | 否 | 任务状态 |
error_code | int | 否 | 错误码 |
error_msg | str | 否 | 错误信息 |
Body返回示例:
# 创建成功
{
"log_id": 12345678,
"task_status": "Created",
"task_id": "234acb234acb234acb234acb" #注意保存该id,用于后续请求识别结果
}
# 创建失败,缺少参数
{
"error_code": 336203,
"error_msg": "missing param: speech_url",
"log_id": 5414433131138366128
}
注意:查询识别结果时,需要该步骤返回的task_id来进行请求。请注意保存task_id列表。
查询音频转写任务-请求说明
请求接口:https://aip.baidubce.com/rpc/2.0/aasr/v1/query
HTTP 方法:POST
URL参数:
参数 | 取值 |
---|---|
access_token | 通过API Key和Secret Key获取的access_token,参考Access Token获取 |
Body中放置请求参数,参数如下:
参数名 | 类型 | 是否必需 | 描述 | 取值范围 |
---|---|---|---|---|
task_ids | list | 是 | 任务id | task_ids为空,返回空任务结果列表;单次查询任务数不超过200个 |
请求示例:
{
"task_ids": ["234acb234acb234acb234acb", "234acb234acb234acb234acd", "234acb234acb234acb234acbe"]
}
查询音频转写任务-返回说明
返回参数:
参数名 | 类型 | 是否必需 | 描述 |
---|---|---|---|
log_id | int | 是 | log id |
tasks_info | list | 否 | 多个任务的结果 |
+task_id | str | 是 | 任务id |
+task_status | str | 是 | 任务状态 |
+task_result | dict | 否 | 转写结果的json格式 |
++corpus_no | str | 否 | 日志,反馈时使用 |
++result | str | 否 | 转写结果 |
++audio_duration | int | 否 | 音频时长(毫秒) |
++detailed_result | list | 否 | 分段转写详细结果 |
+++res | list | 否 | 分段转写文本 |
+++begin_time | int | 否 | 分段开始时间 |
+++end_time | int | 否 | 分段结束时间 |
+++words_info | list | 否 | 字粒度(预留参数,暂不启用) |
+++sn | str | 否 | 分段日志,反馈时使用 |
+++corpus_no | str | 否 | 分段日志,反馈时使用 |
++err_no | int | 否 | 转写失败错误码 |
++err_msg | str | 否 | 转写失败错误信息 |
error_code | int | 否 | 请求错误码 |
error_msg | str | 否 | 请求错误信息 |
error_info | list | 否 | 错误的或查询不存在的taskid数组 |
返回示例:
{
"log_id": 12345678,
"tasks_info": [
{ # 转写中
"task_status": "Running"
"task_id": "234acb234acb234acb234acb",
},
{ # 转写失败
"task_status": "Failure"
"task_id": "234acb234acb234acb234acd",
"task_result": {
"err_no": 3301
"err_msg": "speech quality error",
"sn": "xxx"
}
},
{ # 转写成功
"task_status": "Success",
"task_result": {
"result": [
"观众朋友大家好,欢迎收看本期视频哦。毕竟..."
],
"audio_duration": 6800,
"detailed_result": [
{
"res": [
"观众朋友大家好,欢迎收看本期视频哦。"
],
"end_time": 6700,
"begin_time": 4240,
"words_info": [],
"sn": "257826606251573543780",
"corpus_no": "6758319075297447880"
}
...
],
"corpus_no": "6758319075297447880"
},
"task_id": "234acb234acb234acb234ace"
}
]
}