音频输入

Whisper 语音转文字 API

使用 multipart/form-data 上传音频,可转写原语言、翻译为英文,或返回单词级时间戳。

$0.006 / 音频分钟最大 25 MB不支持流式

转写音频文件

file 是二进制文件,不能用 JSON 请求体。response_format=json 时会返回 {"text":"..."}

cURL · JSON 转写
curl https://api-models.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $API_MODELS_KEY" \
  -F "file=@./meeting.mp3" \
  -F "model=whisper-1" \
  -F "response_format=json" \
  -F "language=zh"
Python · multipart 上传
import os
import requests

with open("meeting.mp3", "rb") as audio:
    response = requests.post(
        "https://api-models.com/v1/audio/transcriptions",
        headers={"Authorization": f"Bearer {os.environ['API_MODELS_KEY']}"},
        files={"file": ("meeting.mp3", audio, "audio/mpeg")},
        data={"model": "whisper-1", "response_format": "json", "language": "zh"},
        timeout=180,
    )
response.raise_for_status()
print(response.json()["text"])
Node.js · FormData
import { openAsBlob } from "node:fs";

const form = new FormData();
form.set("file", await openAsBlob("meeting.mp3"), "meeting.mp3");
form.set("model", "whisper-1");
form.set("response_format", "json");
const response = await fetch("https://api-models.com/v1/audio/transcriptions", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.API_MODELS_KEY}` },
  body: form,
});
if (!response.ok) throw new Error(await response.text());
console.log((await response.json()).text);

获取单词时间戳

设置 response_format=verbose_json,并添加 timestamp_granularities[]=word。其他返回格式不能使用时间戳粒度。

cURL · 单词时间戳
curl https://api-models.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $API_MODELS_KEY" \
  -F "file=@./meeting.mp3" \
  -F "model=whisper-1" \
  -F "response_format=verbose_json" \
  -F "timestamp_granularities[]=word"

把音频翻译为英文

翻译端点会先识别语音,再返回英文文本;它与原语言转写端点不同。

cURL · 翻译为英文
curl https://api-models.com/v1/audio/translations \
  -H "Authorization: Bearer $API_MODELS_KEY" \
  -F "file=@./chinese.m4a" \
  -F "model=whisper-1" \
  -F "response_format=json"

文件、格式与参数

字段要求说明
file必填最大 25 MB;支持 mp3mp4mpegmpgam4awavwebm
model必填whisper-1
language可选ISO-639-1 语言代码,可提高速度和准确率
prompt可选提示拼写或续写,只使用前 224 tokens
response_format可选jsontextsrtverbose_jsonvtt
temperature可选0–1,默认 0
timestamp_granularities[]可选wordsegment,要求 verbose_json

whisper-1 不支持流式转写。超过 25 MB 的文件需要压缩或分段,并尽量不要在一句话中间切断。

常见问题

现象处理
415 或 JSON 无效使用 -F 发送 multipart 字段
文件过大压缩或拆分到 25 MB 以下
没有时间戳使用 verbose_json 并指定时间戳粒度
翻译结果是英文这是 /translations 的预期行为;保留原语言请用 /transcriptions