FishSpeech Docs
API Reference语音转文字

语音转文字

使用 CN /v1 ASR 任务接口提交音频 URL 并查询转写结果。

语音转文字

中国站 ASR 使用异步任务模型。创建任务时提交音频 URL 和可选模型、时长、语言提示;任务完成后通过详情接口读取 transcript

实时音频流场景请使用 实时 ASR

Endpoint

创建任务:

POST /v1/asr/tasks

列出任务:

GET /v1/asr/tasks

查询任务:

GET /v1/asr/tasks/{taskId}

完整地址:

https://kittaaudio.com/api/v1/asr/tasks

鉴权与请求头

Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN

创建任务请求

{
  "audioUrl": "https://example.com/audio.mp3",
  "model": "kitta-asr-v1",
  "durationSeconds": 65,
  "languageHints": ["zh"],
  "language": "zh"
}
字段类型必填说明
audioUrlstring公网可访问的音频 URL
modelstringASR 模型 ID,默认值以 OpenAPI schema 为准
durationSecondsnumber预估音频时长,便于创建阶段估算扣费
languageHintsstring[]语言提示数组,例如 ["zh"]["en"]
languagestring 或 string[]语言提示;可传单个语言或语言数组

音频 URL 必须能被服务端直接访问,不能依赖浏览器 Cookie、局域网地址或过期签名。

创建任务响应

成功创建返回 202

{
  "taskId": "asr_task_123",
  "status": "pending",
  "model": "kitta-asr-v1",
  "creditsCharged": 200
}

查询任务详情

curl -X GET "https://kittaaudio.com/api/v1/asr/tasks/asr_task_123" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

成功响应:

{
  "id": "row_123",
  "taskId": "asr_task_123",
  "type": "asr",
  "status": "succeeded",
  "audioUrl": "https://example.com/audio.mp3",
  "transcript": "这是识别出的完整文本。",
  "model": "kitta-asr-v1",
  "errorCode": null,
  "errorMessage": null,
  "creditsCharged": 200,
  "createdAt": "2026-07-01T08:00:00.000Z",
  "startedAt": "2026-07-01T08:00:03.000Z",
  "completedAt": "2026-07-01T08:01:00.000Z"
}

任务状态包括 pendingprocessingsucceededfailed。成功任务会包含 transcript;失败任务会包含 errorCodeerrorMessage

查询任务列表

curl -X GET "https://kittaaudio.com/api/v1/asr/tasks?limit=20&offset=0&status=succeeded" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

列表响应结构:

{
  "data": [
    {
      "taskId": "asr_task_123",
      "type": "asr",
      "status": "succeeded",
      "transcript": "这是识别出的完整文本。",
      "creditsCharged": 200
    }
  ],
  "pagination": {
    "limit": 20,
    "offset": 0,
    "hasMore": false
  }
}

curl 创建示例

curl -X POST "https://kittaaudio.com/api/v1/asr/tasks" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
    "audioUrl": "https://example.com/audio.mp3",
    "model": "kitta-asr-v1",
    "durationSeconds": 65,
    "languageHints": ["zh"]
  }'

错误行为

错误响应示例:

{
  "error": {
    "code": "invalid_request",
    "message": "audioUrl is required",
    "requestId": "req_xxx"
  }
}
状态码场景
400缺少 audioUrl、URL 无效、模型不支持或字段类型错误
401API Token 缺失或无效
403当前账户无权访问该能力或模型
402余额不足
404查询任务不存在或不属于当前账户
500任务创建、识别供应商或结果查询失败

计费与积分

ASR 创建任务时返回 creditsCharged,任务详情和列表也会保留该字段。若传入 durationSeconds,服务端可在创建阶段更准确地估算扣费;最终请以任务 DTO 中的 creditsCharged 为准。

只读的列表和详情查询不会创建新任务。对账时可以使用 GET /v1/usage 查看 ASR 任务数量和累计扣费。

On this page