音频转写
音频转写接口。支持 multipart file、file_id、url、audio_url,不支持 audio_data。
认证
在请求头中加入 Authorization: Bearer <API_KEY> 完成鉴权,密钥可在控制台「API 密钥」页生成。
curl https://api.mosi.cn/v1/audio/transcriptions \
-H "Authorization: Bearer $MOSS_API_KEY"
支持模型
| 字段 | 允许值 |
|---|---|
| model |
|
选择转写模式
| 场景 | model | version | stream | 返回形式 |
|---|---|---|---|---|
| 普通音频转写 | moss-transcribe | 不传,或 moss-transcribe-v1 | 不传 | JSON / text |
| 多说话人转写,非流式 | moss-transcribe-diarize | moss-transcribe-diarize-20260325 | 不传 | JSON,含 segments |
| 多说话人转写,流式 | moss-transcribe-diarize | v20260410-streamparam-20260703 | true | SSE |
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 取值见「选择转写模式」。 |
| version | string | 条件必填 | 多说话人转写建议显式传入;具体取值见「选择转写模式」。 |
| file | multipart file | 条件必填 | 使用 multipart 上传时必填;与 |
| file_id | string | 条件必填 | 使用已上传文件时必填;与 |
| url | string | 条件必填 | 使用公网音频 URL 时必填;与 |
| audio_url | string | 条件必填 |
|
| diarize | boolean | 否 | 是否返回说话人分离结果;使用 |
| stream | boolean | 否 | 仅多说话人流式转写传 |
| response_format | string | 否 |
|
| async | boolean | 否 | 设为 |
| webhook_url | string | 否 | 异步任务完成后回调的 HTTPS URL。 |
请求示例
{
"model": "moss-transcribe",
"file_id": "<file_id>",
"response_format": "json"
}
响应字段
普通转写(response_format=json)
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
| text | string | 是 | 识别出的完整文本。 |
多说话人转写,非流式
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
| task | string | 是 | 任务类型,当前返回 |
| duration | number | 是 | 音频时长,单位为秒。 |
| text | string | 是 | 完整转写文本。 |
| segments | array | 是 | 分段列表;短音频或无有效分段时可能为空数组。 |
| segments[].type | string | 有分段时 | 分段事件类型。 |
| segments[].id | string | 有分段时 | 分段 ID。 |
| segments[].start | number | 有分段时 | 分段起始时间,单位为秒。 |
| segments[].end | number | 有分段时 | 分段结束时间,单位为秒。 |
| segments[].text | string | 有分段时 | 该段文本。 |
| segments[].speaker | string | 有分段时 | 说话人标识,例如 |
文本响应(response_format=text)
多说话人转写,流式 SSE
stream=true 时返回 text/event-stream;SSE 帧仅由 data: 行构成(无 event: 行),事件类型写在每帧 JSON 的 type 字段。
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
| task.created | SSE event | 是 | 流式任务创建事件,携带 |
| transcript.text.delta | SSE event | 按内容返回 | 增量文本事件,携带 |
| transcript.segment.done | SSE event | 按内容返回 | 分段完成事件,携带 |
| transcript.text.done | SSE event | 是 | 转写结束事件,可能携带完整 |
| usage | object | 事件中可选 | 用量信息,按服务端实际事件返回。 |
data: {"type":"task.created","task_id":"<task_id>","object":"audio.transcription","status":"PROCESSING","model":"moss-transcribe-diarize"}
data: {"type":"transcript.text.delta","delta":"大家"}
data: {"type":"transcript.segment.done","content_index":0,"speaker":"S01","text":"大家好,"}
data: {"type":"transcript.segment.done","content_index":1,"speaker":"S02","text":"你好。"}
data: {"type":"transcript.text.done","text":"大家好,你好。","usage":{"prompt_tokens":142,"completion_tokens":12,"total_tokens":154}}
异步创建响应(async=true)
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
| id | string | 是 | 任务 ID。 |
| task_id | string | 是 | 任务查询 ID,通常与 |
| object | string | 是 | 固定为 |
| status | string | 是 | 初始状态,例如 |
| retry_after | integer | 否 | 建议轮询间隔,单位为秒。 |
| created_at | integer | 是 | 创建时间,Unix 时间戳,单位为秒。 |
| updated_at | integer | 否 | 更新时间,Unix 时间戳,单位为秒。 |
异步任务完成后的结果字段见 GET /v1/audio/tasks/{task_id}。