OpenAI Speech API 入门:Whisper 转写与 TTS 合成
开发者向:语音转写与语音合成的选型、最小工作流与隐私注意;与 ChatGPT 产品内 Voice 严格区分,参数以官方文档为准。
- 作者
- ChatGPT博客编辑部
- 发布时间
- 阅读时长
- 约 4 分钟阅读
这篇解决什么: 在应用里使用 OpenAI 语音相关 API(常见为语音转写 Speech-to-Text、语音合成 Text-to-Speech;具体产品名与模型 ID 以官方为准)。
适合谁: 已会 API 入门,要把音频进/出接到自己服务的开发者。
不是这篇: ChatGPT App / 网页里点麦克风聊天——见 ChatGPT 语音指南。
上次核对方向:2026-09-18。Endpoint、模型名、定价与限额以 platform.openai.com 文档 为准;下文用稳定概念,不编造未核对的字段表。
快速结论
| 需求 | 方向 |
|---|---|
| 用户在 ChatGPT 里说话聊天 | 产品 Voice |
| App 上传音频 → 文本 | Speech-to-Text / 转写 API(常称 Whisper 系列,以文档为准) |
| 文本 → 音频文件/流 | TTS / 语音合成 API |
| 多步工具编排 | Agents + 把语音 I/O 当工具 |
和 ChatGPT Voice 的边界
| ChatGPT Voice | Speech API | |
|---|---|---|
| 使用者 | 终端用户 | 开发者 |
| 集成位置 | chatgpt.com / 官方 App | 你的后端或客户端(Key 勿暴露) |
| 控制力 | 产品设定 | 格式、存储、鉴权、批处理由你设计 |
| 计费 | 订阅/产品规则 | API 用量(官方定价页) |
概念工作流
A. 语音 → 文本(STT)
- 在服务端保存音频(注意保留期与合规)。
- 调用官方转写接口(SDK 方法名以当前
openai包文档为准)。 - 拿回文本后做:敏感信息过滤 → 再送入 Responses 或 Completions 做理解。
- 不要把原始音频日志默认永久存储。
B. 文本 → 语音(TTS)
- 先定稿文本(避免把未审核的模型胡话直接播报)。
- 调用官方 TTS 接口,选择文档列出的 voice / format。
- 返回音频流或文件,由你的 CDN/对象存储分发。
- 无障碍与版权:确认你对播报内容有权使用。
最小示意(结构示例,非保证可复制字段)
import OpenAI from 'openai';
import fs from 'node:fs';
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
// 转写:方法名与参数以官方 SDK 文档为准
async function transcribe(filePath: string) {
const file = fs.createReadStream(filePath);
const result = await client.audio.transcriptions.create({
file,
model: 'whisper-1', // 以平台当前模型列表为准;名称变更时以官方文档替换
});
return result.text;
}
// TTS:同上,以文档为准
async function speak(text: string, outFile: string) {
const response = await client.audio.speech.create({
model: 'tts-1', // 常见示例名;上线前对照官方当前 TTS 模型列表
voice: 'alloy', // 以文档枚举为准
input: text,
});
const buffer = Buffer.from(await response.arrayBuffer());
fs.writeFileSync(outFile, buffer);
}
若本地 SDK 报错或模型名无效:以官方文档当前列表为准升级 SDK,不要复制过时博客字段。流式与成本控制原则见 流式与成本。
设计注意
- Key 只放服务端;移动端直出 Key 等于公开钱包。
- 隐私:通话录音、会议音频可能含 PII;写明用途与删除策略。
- 延迟:先转写再对话会叠加 RTT;产品 Voice 是另一条优化路径。
- 幻觉:TTS 只是朗读;错的文本读出来仍是错的。
- 与 Realtime / 低延迟双工:若官方另有实时语音接口,属进阶专题;本页只覆盖批式 STT/TTS 入门心智。
常见问题
必须先学 Responses 吗?
不必。STT/TTS 可独立。若转写后要工具调用,再接 Responses / Agents。
能代替专业字幕团队吗?
通用清晰音频可以辅助;嘈杂、重口音、专业术语仍需人工校对。
相关阅读
使用入口
- 开发文档:platform.openai.com
- 对话体验(非 API):ChatGPT
相关阅读
评论
评论功能即将上线,欢迎先通过关于页联系我们反馈意见。