OpenRouter 新增音频转写 API，支持 Whisper 与 token 计价 STT 模型

你手上有一个40分钟的销售通话录音、一文件夹语音备忘录，或者一个用户按着麦克风按钮录音，你需要将其转成文字记录。常见方法是搭建一个Whisper服务器，或者在已有处理聊天流量的基础上，额外增加一个语音转文字的提供商SDK。在OpenRouter上，你可以将音频发送到POST /api/v1/audio/transcriptions，然后获取包含转录文本和使用情况对象的JSON，使用与聊天补全相同的API密钥和身份验证。

你不需要新的SDK或单独的服务。因为转录运行在与你的聊天流量相同的平台上，由多个提供商托管的模型会自动负载均衡，而不是绑定到单一供应商。

将base64编码的音频发送到POST /api/v1/audio/transcriptions，并从JSON响应中读取text字段。你像进行聊天调用一样，将OpenRouter API密钥作为Bearer令牌传递，设置一个模型，然后传入音频。

响应是一个JSON，其中text字符串包含转录内容，usage对象报告音频时长（秒）、token计数和请求花费。你只需发出一次请求，转录文本就会在响应体中返回，因此无需轮询，也无需跟踪作业ID。

请求体携带一个模型和一个input_audio对象。在input_audio内部，你放入文件的base64数据和格式字符串。可选地，你可以添加语言提示、temperature值和provider块。完整流程如下：

你可以选择两类模型。Whisper类模型，如openai/whisper-1：https://openrouter.ai/docs/guides/overview/multimodal/stt 按音频时长（每秒）计费，而新型语音转文字模型按token计费。适合哪种取决于你的准确率要求、语言组合和预算。

STT模型ID不会显示在默认的/api/v1/models目录中。这是预期之内的，因为转录是一种输出模式，需要过滤。

这样会返回语音转文字模型及其当前每模型定价。同样的列表也存在于Speech-to-Text集合中：https://openrouter.ai/collections/speech-to-text-models，如果你希望以页面形式查看，也可以在模型目录中：https://openrouter.ai/models 查阅实时每模型价格。

如果你想在连接模型之前先尝试一下，OpenRouter Playground：https://openrouter.ai/playground 可以在浏览器中转录上传的文件。

整个流程分三步。你需要将文件进行 base64 编码，然后与模型和格式一起 POST，并从响应中读取文本和使用情况。data 字段接受原始 base64 字节，而不是 data: URI，因此不要在前面加上 data:audio/mp3;base64,。format 字段是必需的，它告诉上游模型如何解码这些字节。

该端点也接受 OpenAI 风格的 multipart/form-data 上传（文件加模型），最大为 25 MB。如果你已经为 OpenAI 的 /v1/audio/transcriptions 构建了客户端，可以将其基础 URL 指向 https://openrouter.ai/api/v1，并且无需更改即可工作。大于 25 MB 的文件需要通过 base64 JSON 路径上传。

语言提示是可选的。如果你不提供，模型会检测语言；设置语言提示可以减少在短或嘈杂音频片段中的歧义。一些提供商通过 provider 接受自己的额外参数。例如 Groq，通过 provider.options.groq.prompt 提供预期词汇提示，这有助于处理模型可能会弄错的专有名词和术语。

响应是 JSON 格式，包含一个文本字符串和一个使用情况对象。使用情况对象让你可以按请求计量花费，而不是估算。

该成本值是我们文档中的示例，而非报价；你的实际费用取决于模型和音频长度。使用情况对象报告秒数（音频时长）、token 数量以及费用（美元）。响应还包含一个 X-Generation-Id 头，你可以记录它以便以后追踪或调试特定请求。

当你想将音频转换为文本时使用 /audio/transcriptions；当你希望模型分析音频时使用聊天的音频输入。

转录端点适合会议记录、语音指令、字幕以及可搜索的通话或播客档案。如果你想获取客服通话的情绪分析、关于所述内容的问答，或在一个提示中混合音频与其他模态的数据，请使用 /chat/completions 的 input_audio 内容类型。将文本转语音是第三个独立的端点。

关于音频分析和文本转语音，请参阅音频 API 公告：https://openrouter.ai/blog/announcements/announcing-audio-apis。

转录使用与聊天相同的路由层。当一个模型由多个提供商托管时，我们会根据价格在它们之间分配你的请求，以实现负载均衡，这样你就不会被锁定在单一供应商上。转录今天没有提供的是每次请求的路由控制。在 /api/v1/audio/transcriptions 上，你在聊天调用中设置的 order、only、allow_fallbacks、data_collection 和 sort 字段不会被应用。这个端点的 provider 块包含特定于提供商的选项：

该请求向 Groq 提供了专有名词的词汇提示，否则这些词会被错误处理。选项由提供商标识（slug）作为键，只有匹配的提供商的选项会被转发。如果你需要固定特定提供商或在转录上强制执行每次请求的数据策略，这个端点目前还不提供该控制功能。完整的提供商对象在提供商路由文档中有说明：https://openrouter.ai/docs/guides/routing/provider-selection。

OpenRouter 不标注提供商价格：https://openrouter.ai/pricing，所以目录价格就是你支付的价格，Zero Completion Insurance 意味着转录失败时不会收费。如果你已经有提供商协议，BYOK：https://openrouter.ai/docs/guides/overview/auth/byok 允许你通过你自己的提供商密钥进行路由，并只支付我们的平台费用，而不是按使用量的费用模式，对于按需付费模式每月前 100 万次请求还免收费用。

有四个约束条件决定了你如何构建一个转录调用：

因为超时限制是对处理时间而不是音频长度进行限制，所以单凭片段时长无法判断它是否能被处理。一个长时间的录音，比如通宵游戏，需要分块处理；单次调用无法覆盖它。

对于字幕，默认响应是文本加使用情况，不包含时间。设置 response_format 为 verbose_json，你将获得段级时间戳，如果你传入 timestamp_granularities: ["word"]，还会得到词级时间戳。这在 OpenAI 兼容提供商（OpenAI、Groq、Together）上有效；其他提供商会以 400 拒绝。没有内置的 .srt / .vtt 输出，因此字幕文件需要你自己根据时间戳生成。

您支付模型目录费率，我们不加收任何费用，usage.cost 字段会告诉您每次请求的确切费用。Whisper 类模型按音频秒数收费，新型号按 token 收费。

费率会变化，因此我们在每个模型目录页面上保持实时数据：https://openrouter.ai/models，而不是在这里打印。读取响应中的 usage.cost 可以告诉您每次请求实际花费多少。STT 模型是付费的，因此 API 转录会从您的信用余额中扣除费用。

要开始使用，请先在 Playground 中确认模型适合您的音频：https://openrouter.ai/playground，接入调用，并读取每次请求的 usage.cost，从第一天起就可以计量花费。

将 base64 编码的音频发送到 POST /api/v1/audio/transcriptions，并提供 model 和 input_audio 对象（包括 data 和 format）。响应是 JSON，包含 text 字符串（转录文本）和 usage 对象（秒数、tokens 和费用）。它使用与 Chat Completions 相同的 Bearer API Key 和认证。

是的。Whisper 类模型可用于转录，使用 openai/whisper-1 作为标识。STT 模型 ID 不在默认的 /api/v1/models 列表中，因此需要通过 ?output_modalities=transcription 进行过滤或浏览语音转文本合集来发现：https://openrouter.ai/collections/speech-to-text-models。Whisper 按音频时长收费，每秒计费；新 STT 模型按 token 收费。

常用格式包括 wav、mp3、flac、m4a、ogg、webm 和 aac，这些需要在 input_audio.format 字段中指定。不同模型和提供方对格式支持不同，并非每个模型都接受所有格式。wav 是最安全的默认格式，兼容性最广；压缩格式如 mp3 则传输体积小、速度快。

支持时间戳。将 response_format 设置为 verbose_json 可获取片段级时间戳，并添加 timestamp_granularities: ["word"] 获取按词级别的时间戳，存储在 words 数组中。这在兼容 OpenAI 的提供方（OpenAI、Groq、Together）上有效；其他提供方会返回 400 错误。暂不支持 SRT/VTT 输出，因此需根据时间戳自行生成字幕文件。

实际限制是大约 60 秒的上游处理超时，而不是固定的音频长度上限。短音频和中等长度音频可以一次返回。对于长录音，将音频分段，逐段转录，然后将文本拼接在一起。

您支付的是模型目录价格，不加任何溢价。Whisper 类模型按音频秒计价；较新的 STT 模型按 token 计价。每个响应中的 usage.cost 字段会报告该请求的准确美元费用。