转录

基于 Whisper large-v3 的异步音视频转录(音视频转文字),支持说话人分离。

计费:每分钟 4 积分(不足 1 分钟按 1 分钟),提交时预扣,任务失败自动退回。

接口:POST/transcriptions GET/transcriptions/{id}

提交任务

传公网可访问的 URL(推荐——比如单个帖子提取拿到的媒体直链):

curl -X POST https://api.snapany.com/openapi/v1/transcriptions \
  -H "Authorization: Bearer sk_snapany_xxx" \
  -H "Accept-Language: zh" \
  -H "Content-Type: application/json" \
  -d '{"fileUrl": "https://example.com/audio.mp3", "speakerLabels": true, "maxSpeakers": 2}'

或上传本地文件(最大 512MB、6 小时):

curl -X POST https://api.snapany.com/openapi/v1/transcriptions \
  -H "Authorization: Bearer sk_snapany_xxx" \
  -H "Accept-Language: zh" \
  -F "file=@meeting.mp3" -F "speakerLabels=true"

响应:{ "id": "...", "status": "processing", "duration": 605.3 }

轮询结果

curl https://api.snapany.com/openapi/v1/transcriptions/{id} \
  -H "Authorization: Bearer sk_snapany_xxx" \
  -H "Accept-Language: zh"

3–5 秒轮询一次(轮询免费)。轮询循环示例:

import time
import requests

headers = {"Authorization": f"Bearer {API_KEY}"}
url = f"https://api.snapany.com/openapi/v1/transcriptions/{job_id}"

while True:
    job = requests.get(url, headers=headers).json()
    if job["status"] == "completed":
        print(job["result"]["text"])
        break
    if job["status"] == "failed":
        # 预扣的积分会自动退回
        print("失败:", job["error"])
        break
    time.sleep(5)

statuscompleted 时,result 是 Whisper verbose_json 结果:完整 text、检测到的 language、带起止时间戳的 segments——开启说话人分离时每段带 speaker 标签。

音视频转录 API——Whisper large-v3 - SnapAny API