本文根據 OpenAI 官方《File transcription》和《Text to speech》整理,資料核對於 2026-11-05。配圖為本站整理的示意圖,不是介面截圖。代碼裏的模型名取自官方當天頁面,請以官方模型頁為準。本站(bigolab.com)不是 OpenAI 官方網站。API 是按用量計費的獨立服務,與 ChatGPT 訂閱分開計算,Key 的獲取見 /guides/openai-api-key。
適用於誰
- 想把會議錄音、訪談、課程音頻轉成文字的開發者;
- 想給自己的應用加朗讀功能,又看到網上教學裏的
tts-1、whisper-1不知道還能不能用的人; - 已經能發出第一個請求(見 /guides/openai-api-python-quickstart)的人。
結論先說
- 語音轉文字:官方現在推薦用
gpt-transcribe轉寫已經錄好的語音,端點是/v1/audio/transcriptions。 - 舊模型在走向停服:
whisper-1、gpt-4o-transcribe、gpt-4o-mini-transcribe、gpt-4o-transcribe-diarize和/v1/audio/translations官方標為棄用,將在 2027 年 2 月 26 日停止服務。 - 文字轉語音:
tts-1、tts-1-hd、gpt-4o-mini-tts同樣已棄用,將在 2027 年 1 月 6 日停止服務,官方指向 Realtime API。 - 文件上限 25 MB,支持 mp3、mp4、mpeg、mpga、m4a、wav、webm。
- 以上日期和推薦都以官方當天頁面為準,這類接口變化比較快,寫代碼前先看一眼官方棄用公告。

圖:本站根據 OpenAI 官方《File transcription》 和 《Text to speech》 整理的示意圖
一、語音轉文字:最短的例子
Python:
python
from openai import OpenAI
client = OpenAI()
with open("audio.wav", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="gpt-transcribe", # 以官方模型頁當天為準
file=audio_file,
)
print(transcription.text)
Node.js(儲存為 .mjs):
javascript
import fs from "fs";
import OpenAI from "openai";
const openai = new OpenAI();
const transcription = await openai.audio.transcriptions.create({
file: fs.createReadStream("audio.wav"),
model: "gpt-transcribe", // 以官方模型頁當天為準
});
console.log(transcription.text);
官方說,返回的 JSON 裏有轉寫文本,也有檢測到的語言,比如:
json
{
"text": "Bonjour, pouvez-vous m'entendre ?",
"languages": [{ "code": "fr" }]
}
當模型無法可靠判斷語言時,會返回 "languages": []。
二、讓專有名詞更準:prompt、keywords、languages
官方給 gpt-transcribe 提供了三個輔助資訊:
prompt:關於這段錄音的非結構化背景,比如“一通關於高級套餐和帳號 AC-42 的客服電話”;keywords:你預期會聽到的字面詞;languages:預期的輸入語言。
Python 示例(官方寫法,keywords 和 languages 通過 extra_body 傳):
python
with open("meeting.wav", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="gpt-transcribe",
file=audio_file,
prompt="一通關於高級套餐和帳號 AC-42 的客服電話。",
extra_body={
"keywords": ["高級套餐", "AC-42", "帳單"],
"languages": ["zh-cn", "en"],
},
)
print(transcription.text)
注意幾條官方規則:
- 關鍵詞只是提示,不是必須出現的輸出。只放相關的詞,並自己評估它們有沒有讓準確度變好,同時沒有讓沒說過的詞冒出來;
- 對
gpt-transcribe,languages(複數)取代舊的language,兩個不要同時發; - 每個關鍵詞必須單獨一行,不能含
<、>、回車或換行; - 只要觸犯上面的字符規則,或者
prompt超過模型的長度限制,整個請求會被拒絕; languages的格式:ISO 639-1 代碼(如en、es、fr)、部分 ISO 639-3 代碼(如yue、cmn),以及地區性的中文代碼(如zh-cn、zh-tw、zh-hk);不支持或格式錯的代碼會被拒絕。示例裏的zh-cn取自官方列出的格式,具體哪些代碼可用以官方當天文檔為準。

圖:本站根據 OpenAI 官方《File transcription》 整理的示意圖,處理辦法為本站補充
三、文件超過 25 MB 怎麼辦
官方說:轉寫接口接受最大 25 MB 的文件。更大的錄音,用壓縮格式,或者切成每塊不超過 25 MB 的片段。不要在一句話中間切開,那樣會丟失上下文、降低準確度。官方示例用的是開源 Python 包 PyDub 來切分(官方註明不對第三方軟件的可用性和安全性做保證):
python
from pydub import AudioSegment
song = AudioSegment.from_wav("good_morning.wav")
ten_minutes = 10 * 60 * 1000 # PyDub 以毫秒計時
first_10_minutes = song[:ten_minutes]
first_10_minutes.export("good_morning_10.wav", format="wav")
分段轉寫後,如果想讓後一段延續前一段的上下文,官方在提示詞一節說過可以把上一段的內容作為背景使用,具體做法以官方當天文檔為準。
四、邊轉寫邊出文字
官方說,對已經錄好的文件也可以流式返回:設 stream=True,會先收到一串 transcript.text.delta 事件,最後收到包含完整文本的 transcript.text.done 事件,對 gpt-transcribe,最終事件裏還會帶檢測到的語言。事件循環的寫法和文字流式一樣,見 /guides/openai-api-streaming。
麥克風、通話這種還在持續到來的音頻,官方明確說要用 Realtime transcription,而不是上面的文件流式。Realtime 的概念見 /guides/openai-api-realtime。
五、文字轉語音:官方已標為棄用
官方 Text to speech 頁頂部的提示:tts-1、tts-1-hd、gpt-4o-mini-tts 已棄用,2027 年 1 月 6 日停止服務;請遷移到 Realtime API 裏的 gpt-realtime-2.1-mini。官方強調,這是 API 工作流的變化,gpt-realtime-2.1-mini 不是 /v1/audio/speech 支持的模型,不能只改個模型名。現有集成在停服前仍可使用下面的 speech 接口。
官方頁上仍保留的現有寫法(Python):
python
from pathlib import Path
from openai import OpenAI
client = OpenAI()
speech_file_path = Path("speech.mp3")
with client.audio.speech.with_streaming_response.create(
model="gpt-4o-mini-tts", # 已棄用,僅供現有集成參考
voice="coral",
input="今天是做點大家喜歡的東西的好日子。",
instructions="用愉快積極的語氣說。",
) as response:
response.stream_to_file(speech_file_path)
官方對這個接口的說明:預設輸出 MP3,也支持 opus、aac、flac、wav、pcm;聲音(voice)有 13 種,官方說目前針對英語優化,也能生成其他語言;追求最快響應推薦 wav 或 pcm 格式。
還有一條使用政策:官方使用政策要求你向終端用戶明確披露,他們聽到的 TTS 聲音是 AI 生成的,而不是真人。
新項目如果需要語音輸出,本文不給出自寫的替代方案,因為官方的替代方向走 Realtime,工作流不同,請直接看官方 Realtime 指南。
六、翻譯接口
/v1/audio/translations(把錄音翻譯成英文)已棄用,到 2027 年 2 月 26 日停止服務。官方說遷移目標是 Realtime translation,而且它需要翻譯會話、流式音頻輸入和翻譯事件,只改模型名並不等於遷移完成。
常見問題
Q:我看到的教學裏用 whisper-1,還能用嗎?
官方寫的是棄用、將在 2027 年 2 月 26 日停止服務,停服前現有集成仍可使用。新項目建議從 gpt-transcribe 開始。
Q:需要說話人區分、逐詞時間戳、字幕格式怎麼辦?
官方說這些專門示例目前用的是棄用模型,僅為現有集成保留到停服。需要時按官方當天的轉寫工作流頁面選擇當前方案。
Q:轉寫要花多少錢?
價格以官方價格頁當天為準,見 /guides/openai-api-price-official-table。
參考資料
- OpenAI 官方:File transcription — https://developers.openai.com/api/docs/guides/speech-to-text
- OpenAI 官方:Text to speech — https://developers.openai.com/api/docs/guides/text-to-speech
0 條評論
還沒有評論,來搶沙發~