语音转文字 (STT) 转录
上传预先录制的音频文件,以异步方式获取带时间戳的精准文本转录。
由于处理大型音频文件可能需要数分钟,该 API 采用了稳健的“提交与轮询”(Submit & Poll)架构。您首先提交文件以获取 `job_id`,随后轮询状态接口,直至转写任务完成。
1. 提交音频任务
发布
/api/v1/stt/submit/
| 参数 | 必填 | 类型 | 描述 |
|---|---|---|---|
| audio | 必需的 | 文件 | 待转录的音频文件。支持 mp3、wav、m4a 等格式,最大 50MB。 |
| language | 可选的 | 字符串 | 默认值为 ar-JO。 |
| output_format | 可选的 | 字符串 | 接受 json 或 srt 格式。默认为 json。 |
2. 检查任务状态
获取
/api/v1/stt/status/{job_id}/
生产环境集成示例(Python)
import requests
import time
API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 1. 提交音频文件
submit_url = "https://moknah.io/api/v1/stt/submit/"
files = {"audio": ("audio.mp3", open("long_audio.mp3", "rb"), "audio/mpeg")}
data = {"language": "ar-JO", "output_format": "json"}
print("正在提交音频……")
response = requests.post(submit_url, headers=HEADERS, files=files, data=data)
job_id = response.json().get("job_id")
print(f"任务已加入队列!ID: {job_id}")
# 2. 轮询结果
status_url = f"https://moknah.io/api/v1/stt/status/{job_id}/"
while True:
res = requests.get(status_url, headers=HEADERS)
result = res.json()
if result.get("status") in ["queued", "processing"]:
print("正在处理……5秒后再次检查。")
time.sleep(5)
elif result.get("status") == "completed":
print("转写已完成!")
print(result["result"]["subtitles"])
break
else:
print("\n任务失败:", result)
break
API 支持
如有关于 API 的问题或疑问,请联系我们: api@moknah.io.