API 参考
语音识别 STT(Audio Transcriptions)
POST /v1/audio/transcriptions 的参数、请求与响应示例:上传音频转成文字,用于会议记录、客服录音质检和视频字幕。multipart/form-data 格式,与 OpenAI 转写接口一致,本站按原格式转发请求。
POST /v1/audio/transcriptions 上传一个音频文件,返回识别出的文字,可以输出纯文本,也可以输出带时间轴的 SRT、VTT 字幕。常用于会议记录、客服录音质检和视频字幕。请求用 multipart/form-data 上传文件,格式与 OpenAI 转写接口一致,本站按原格式转发给模型服务。
POST
https://open.tutujin.com/v1/audio/transcriptions请求头
| 请求头 | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer sk-...,控制台创建的 API Key |
Content-Type | 是 | multipart/form-data。用 SDK 或 curl -F 时会自动设置,不要手写 |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
file | file | 是 | 音频文件,常见格式 mp3、mp4、mpeg、mpga、m4a、wav、webm。单个文件大小有上限,长录音先切段 |
model | string | 是 | 模型名,例如 whisper-1 |
language | string | 否 | 音频语言,ISO-639-1 代码,如 zh、en。指定后识别通常更准,也更快 |
prompt | string | 否 | 提示文本,可以写专有名词、人名或上一段的结尾,让用词前后一致 |
response_format | string | 否 | json(默认)、text、srt、vtt、verbose_json |
temperature | number | 否 | 0 到 1,默认 0。一般保持默认 |
timestamp_granularities[] | array | 否 | segment 或 word,需要配合 verbose_json 使用,返回分段或逐词的时间戳 |
请求示例
curl https://open.tutujin.com/v1/audio/transcriptions \
-H "Authorization: Bearer $TUTUJIN_API_KEY" \
-F file=@meeting.mp3 \
-F model="whisper-1" \
-F language=zh \
-F prompt="土土金,季度复盘,客户成功"import os
from openai import OpenAI
client = OpenAI(base_url="https://open.tutujin.com/v1", api_key=os.environ["TUTUJIN_API_KEY"], timeout=300)
with open("meeting.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="whisper-1",
file=f,
language="zh",
prompt="土土金,季度复盘,客户成功",
)
print(result.text)import fs from 'node:fs'
import OpenAI from 'openai'
const client = new OpenAI({ baseURL: 'https://open.tutujin.com/v1', apiKey: process.env.TUTUJIN_API_KEY, timeout: 300_000 })
const result = await client.audio.transcriptions.create({
model: 'whisper-1',
file: fs.createReadStream('meeting.mp3'),
language: 'zh',
prompt: '土土金,季度复盘,客户成功',
})
console.log(result.text)响应示例
response_format 为 json 时:
JSON
{
"text": "我们先回顾一下这个季度的客户成功指标……"
}为 srt 时返回字幕文本,可以直接存成 .srt 文件:
Text
1
00:00:00,000 --> 00:00:03,200
我们先回顾一下这个季度的客户成功指标
2
00:00:03,200 --> 00:00:06,900
整体续约率比上季度有所提升| 字段 | 说明 |
|---|---|
text | 识别出的完整文字 |
segments | verbose_json 时出现,每段带 start、end(秒)和文字 |
language | verbose_json 时出现,模型判断的音频语言 |
注意事项
- 这个接口是原样转发,没有在本站单独实测,接入时先用一小段音频验证。
- 文件后缀要和真实格式一致。单个文件太大可能被拒绝(413),长录音先按 5 到 10 分钟切段,再按顺序拼接结果。
- 能确定语言时就传
language,中英混杂的录音可以不传,让模型自己判断。 - 专有名词识别不准时,把它们写进
prompt。 - 转写耗时和音频时长有关,客户端超时建议设长一些。计费按模型价目表执行,具体扣费以控制台「用量明细」为准。
支持此接口的模型
| 模型 | 厂商 | 最低价分组 | 输入 ¥/百万 | 输出 ¥/百万 | 按次 ¥/次 |
|---|---|---|---|---|---|
| whisper-1 | OpenAI | 标准 | ¥60 | ¥60 | — |
价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
没找到答案?加客服微信 JsnonoChat,发送报错信息里的 request id,我们帮你排查。