主题切换
ASR_SRT API 接口文档
🌐 语言切换
接口信息
POST /openapi/autosubrt/v1/asr/srt这是语音识别服务
本接口的基地址是 https://autosubrt.jcaigc.cn,与剪映小助手(https://capcut-mate.jcaigc.cn)不是同一个服务,路径前缀也不同。
完整请求地址 = https://autosubrt.jcaigc.cn + /openapi/autosubrt/v1/asr/srt功能描述
语音识别:把音频识别成 SRT 字幕文件,并把文件本体直接返回给调用方(Content-Disposition: attachment),服务端不落盘、不返回下载链接。
需要文案或时间线数据用 语音转文案;要按自己写的文本对齐时间线用 文本对齐时间线。
请求参数
json
{
"audio_url": "https://example.com/audio.mp3",
"apiKey": "123e4567-e89b-12d3-a456-426614174000"
}参数说明
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| audio_url | string | ✅ | - | 音频文件 URL,需可被服务端直接下载,且必须是合法的 http/https 地址 |
| apiKey | string | 开启计费时必填 | - | 合法 UUID;可登录 https://jcaigc.cn 获取 |
参数详解
audio_url
- 类型: string
- 说明: 服务端会先把这个 URL 下载到本地再识别,因此必须是可直接访问的直链(不能是需要登录的网页地址)
- 格式: 常见音视频文件均可,如 wav、mp3、m4a、aac、flac、ogg,mp4、mov 等视频文件也能直接传(服务端自动抽取音轨)
- 限制: 单文件最大 100MB(服务端
FILE_SIZE_LIMIT默认 104857600 字节)
apiKey
- 类型: string
- 说明: 必须是合法 UUID;计费开启时(默认开启)必填,且账户积分需大于 1
响应格式
成功响应 (200)
成功时不是 JSON,响应体就是 SRT 文件内容:
HTTP/1.1 200 OK
Content-Type: application/x-subrip; charset=utf-8
Content-Disposition: attachment; filename="subtitle.srt"
1
00:00:02,810 --> 00:00:03,330
多谢
2
00:00:04,889 --> 00:00:06,009
请入席吧响应头说明
| 响应头 | 值 | 说明 |
|---|---|---|
| Content-Type | application/x-subrip; charset=utf-8 | 字幕文件;错误时是 application/json |
| Content-Disposition | attachment; filename="subtitle.srt" | 固定文件名 subtitle.srt |
错误响应
失败时返回 JSON 错误体(HTTP 仍是 200),按 Content-Type 区分是文件还是错误:
json
{
"code": 2003,
"message": "下载文件失败"
}| Content-Type | 含义 |
|---|---|
application/x-subrip; charset=utf-8 | SRT 字幕文件 |
application/json | 错误,按 code 判断具体原因 |
使用示例
cURL 示例
bash
curl -X POST https://autosubrt.jcaigc.cn/openapi/autosubrt/v1/asr/srt \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://example.com/audio.mp3",
"apiKey": "123e4567-e89b-12d3-a456-426614174000"
}' \
-o subtitle.srtPython 示例
python
import requests
resp = requests.post(
"https://autosubrt.jcaigc.cn/openapi/autosubrt/v1/asr/srt",
json={
"audio_url": "https://example.com/audio.mp3",
"apiKey": "123e4567-e89b-12d3-a456-426614174000",
},
timeout=600,
)
# 失败时返回的是 JSON 错误体,不是字幕文件
if resp.headers["Content-Type"].startswith("application/json"):
raise RuntimeError(resp.json()["message"])
with open("subtitle.srt", "wb") as f:
f.write(resp.content)计费
本接口按音频时长扣费,与剪映小助手共用同一套积分体系。
| 项 | 说明 |
|---|---|
| 单价 | 0.00022 积分 / 秒 |
| 计费依据 | 音频实际时长(秒),由识别引擎给出 |
| 扣费时机 | 识别成功之后才扣费;识别失败不扣费 |
| 余额门槛 | 调用前账户积分需大于 1,否则直接拒绝(2035) |
| 音频时长 | 费用(积分) |
|---|---|
| 10 秒 | 0.002200 |
| 60 秒 | 0.013200 |
| 1 小时 | 0.792000 |
apiKey 必须是合法 UUID,可登录 https://jcaigc.cn 获取。
错误码说明
| 错误码 | 错误信息 | 说明 | 解决方案 |
|---|---|---|---|
| 1001 | 参数校验失败 | 缺少 audio_url、audio_url 不是合法 http/https 地址,或 apiKey 不是合法 UUID | 检查请求参数 |
| 2001 | 识别音频失败 | 音频无法解码、模型未加载,或 audio_url 返回 401/403/404 | 换一个可正常播放的文件或可访问的直链 |
| 2002 | 文件大小超出限制 | 音频超过 100MB | 压缩或截取后再试 |
| 2003 | 下载文件失败 | 下载过程中网络或服务端错误,重试后仍失败 | 确认是公网可直链下载的地址 |
| 2005 | 下载文件超时 | 下载整体超时 | 换更快的源或更小的文件 |
| 2035 | 账户余额不足 | 账户积分需大于 1 才可继续使用服务 | 完成充值后重试 |
| 2036 | 无效的 apiKey | 计费开启时未传 apiKey | 登录 https://jcaigc.cn 获取 apiKey |
| 9997 | 服务器忙 | 并发已达上限,请求未排队 | 稍后重试 |
| 9998 | 系统内部错误 | 未预期的内部异常 | 联系技术支持 |
| 9999 | 未知异常 | 积分服务不可用等 | 稍后重试 |
注意事项
- 响应体是文件本身,不是
{code, message, data}:「文件下载链接」这种返回形式已废弃,消费方需按Content-Type分流。 - 文件编码为 UTF-8,行尾为
\n,序号从 1 开始,时间戳格式为时:分:秒,毫秒。 - 断句依据是静音:相邻两字间隔超过 250 毫秒就断开一条字幕,整段无法分割时合成一条。
- SRT 文本不经标点模型:内容直接来自识别结果,通常不带标点(与 语音转文案 的
text不同)。 - 完全没识别到语音时会返回一条 0 秒 → 30 秒的空字幕,调用方可按「字幕内容为空」判断。
- 服务端不落盘:临时音频在请求结束时删除,不产生需要自行清理的静态文件。
- 重复调用会重复扣费,超时后请勿盲目重试。
工作流程
- 校验 apiKey 与账户余额(计费开启时)
- 下载
audio_url指向的音视频到服务端临时目录 - 语音识别,得到逐字时间线
- 按静音间隔把字序列切成字幕条目
- 识别成功后按音频时长扣费
- 以 UTF-8 文本直接返回 SRT 文件本体,删除临时文件
相关接口
📚 项目资源
GitHub: https://github.com/Hommy-master/autosubrt
