Whisper API 伺服器:設定選項與文字處理步驟
Whisper API 伺服器是一個 HTTP 服務,接受音訊並返回轉錄結果。它僅處理語音,因此後續對文字的任何處理都需要單獨的文字模型。
更新於

重點摘要
- Whisper 是語音轉文字模型;伺服器將其封裝在 HTTP 端點後方。
- 您可以租用託管端點、自行託管封裝程式,或執行本機二進位檔。
- 此 API 僅處理文字:它執行轉錄後的步驟,而非音訊步驟。
- 這兩階段透過 Python 程式碼兩次呼叫 OpenAI SDK 來連接。
簡短答案
Whisper 是 OpenAI 發布的開源語音辨識模型。單獨而言,它是一個模型檔案與一些推理程式碼。伺服器在其前方提供 HTTP 介面,讓您的應用程式可以傳送音訊檔案並取得文字,而非直接呼叫 Python 函式。
大多數伺服器複製 OpenAI 轉錄端點的格式,POST /v1/audio/transcriptions,該格式接受包含音訊檔案與模型名稱的多部分上傳。這種格式使得相同的客戶端程式庫可以與託管服務、您機器上的容器或他人編寫的小型封裝程式通訊。
- 輸入:音訊檔案,通常是 mp3、wav、m4a 或類似格式。
- 輸出:純文字,或包含片段與時間戳記的 JSON,取決於伺服器。
- 未包含:摘要、將內容轉化為優美散文的翻譯、提取行動項目。這些需要語言模型。
取得 Whisper 伺服器的三種方式
1. 託管端點
OpenAI 提供託管的轉錄端點,其他供應商也提供基於 Whisper 的轉錄服務。你按使用量付費,無需管理硬體,但需將音訊傳送至他人的基礎設施。不同供應商的計費模式各異,且語音服務通常按音訊時長收費,因此在大量使用前請先確認其最新定價。
2. 自行託管封裝程式
幾個開源專案將 Whisper 或其重新實作版本封裝在模擬 OpenAI 轉錄路徑的網頁伺服器中。您可以在具有 GPU 的機器上使用 Docker 運行它,或在 CPU 上運行(若接受較慢的處理速度)。這讓您可以控制音訊的去向。但也需要您負責模型下載、更新、佇列管理與重啟。
3. 本機二進位檔
whisper.cpp 專案是該模型的 C 和 C++ 移植版本,其程式碼庫包含一個範例 HTTP 伺服器。它在一般筆記型電腦和小型伺服器上運行,適合原型開發或每天轉錄少量錄音的單一使用者。對於數百小時的批次工作,基於 GPU 的服務通常更實用。
根據三個問題選擇:音訊可以傳輸到哪裡、每月處理多少小時的錄音、誰將維持服務運行。下文描述的文字步驟對這三種方式都適用。
文字 LLM API 在轉錄後的定位
原始的 Whisper 轉錄結果是一堆文字。段落分隔很少,除非單獨加入語者分離,否則缺少說話者姓名,且填充詞仍保留在內。Whisper 也會在產品名稱、術語和專有名詞上出錯。幾乎每個實際專案都會增加一個處理文字的後續階段。
典型的第二階段工作:
- 修正標點符號、分割段落、移除錯誤的開頭。
- 將會議或講座摘要為幾個要點。
- 提取結構化資料,如決策、姓名和日期,以 JSON 格式輸出。
- 將口語內容改寫為文章、腳本或節目筆記。
- 翻譯或本地化清理後的文字。
這就是此服務的定位。它是 OpenAI 相容的文字 API,使用單一模型 uncensored,擁有 100,000-token 上下文視窗和串流輸出功能。兩小時的訪談轉錄通常可包含在單一請求中,因此你可以跳過較小上下文視窗所強制要求的分塊邏輯。對於更長的內容,請參閱 快速入門文件 以獲取請求詳細資訊。
該模型經過調整,可針對合法成人用途提供無拒絕回應的輸出。這對於轉錄管線很重要,因為來源音訊具有不可預測性:訪談、播客、小說朗讀和客服電話常包含髒話或敏感主題。如果模型因為講者髒話就拒絕處理,會浪費一次付費轉錄。唯一的硬性限制是,不接受涉及未成年人性內容的內容。
實用的兩階段管線
OpenAI Python SDK 允許你建立兩個具有不同 base URL 的客戶端。一個指向你的 Whisper 伺服器,另一個指向此 API。為你的轉錄服務設定環境變數;第二個客戶端使用此站點的 base URL。
import os
from openai import OpenAI
# Stage 1: any Whisper-compatible transcription server you run or rent.
stt = OpenAI(base_url=os.environ["STT_BASE_URL"], api_key=os.environ["STT_KEY"])
# Stage 2: the text model.
llm = OpenAI(base_url="https://api.whisperapis.com/v1", api_key=os.environ["LLM_KEY"])
with open("call.mp3", "rb") as f:
transcript = stt.audio.transcriptions.create(
model=os.environ["STT_MODEL"], # the model name your server expects
file=f,
)
resp = llm.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "Clean up this transcript: fix punctuation, keep every statement, no commentary."},
{"role": "user", "content": transcript.text},
],
temperature=0.2,
)
print(resp.choices[0].message.content)有兩個細節容易出錯。首先,轉錄模型名稱就是你的伺服器所期望的名稱,這就是為什麼這裡來自環境變數。其次,文字 API 的金鑰與你持有的語音服務金鑰是分開的;每個金鑰僅驗證其自己的主機。
如果您偏好使用 shell,文字階段是一個普通的聊天補全請求:
curl https://api.whisperapis.com/v1/chat/completions \
-H "Authorization: Bearer $LLM_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [
{"role": "user", "content": "Summarize this transcript in five bullet points: ..."}
]
}'驗證方式是使用 Bearer 金鑰作為 Authorization 標頭,端點為 POST /v1/chat/completions 和 GET /v1/models。你可從 API 金鑰頁面取得金鑰;新帳戶可在此一鍵領取 $0.50 免費試用額度,有效期 7 天且無需綁定信用卡。
實務上會出錯的事項
大型音訊檔案
許多 Whisper 伺服器限制上傳大小,長時間錄音可能會在請求過程中超時。使用 ffmpeg 等工具將音訊分割為 10 到 30 分鐘的片段,轉錄每個片段,然後連接文字。由於文字 API 接受最多 100,000 token,您可以連接這些片段並作為單一提示詞傳送。此 API 的請求主體限制為 8 MB,這遠大於任何轉錄結果所需的大小。
速率與並行限制
完整金鑰允許 8 個並行請求和每分鐘 300 個請求;試用金鑰則允許 2 個和每分鐘 60 個。如果你使用多個工作程式執行佇列,請將其上限設為金鑰的並行數。超過限制會回傳 HTTP 429,並附上程式碼 rate_limited(每分鐘請求數)或 concurrency(同時請求過多)。串流請求會保留其槽位直到串流結束,因此如果客戶端停滯,可能會佔用比預期更久的槽位。請退避並重試;如果回應包含 Retry-After: 5 標頭,請等待該時間後再試。
LLM 無法察覺的轉錄錯誤
如果 Whisper 聽錯了字,文字模型只能看到這個錯字。它甚至可能修飾這個錯誤,使其看起來像是故意的。將名稱和術語的詞典放入系統提示詞中,並指示模型標記不確定的段落,而不是猜測。對於關鍵資料,請將原始轉錄內容與清理後的版本並列保存。
幻覺填充詞
Whisper 有時會在無聲或音樂期間產生虛構的文字。在傳送前修剪無聲部分,並要求第二階段標記讀起來不自然的句子。較低的 temperature(例如 0.2)可讓清理結果更接近來源。
此 API 不做的事
它不進行語音轉文字。沒有音訊輸入、沒有語音輸出、沒有影像或影片生成、沒有嵌入向量,也不支援微調。它是位於聊天補全端點後方的託管文字模型,由獨立供應商運行,並非 OpenAI 或其他模型供應商的官方 API。如果你的專案需要這兩部分,你需要一個語音伺服器處理第一部分,並使用此服務處理第二部分。
提示詞不用於訓練。這與您的語音供應商對音訊所做的處理不同,因此請單獨閱讀該供應商的條款。
為進行成本規劃,文字部分的計費方式為每百萬個輸入 token $0.15,每百萬個輸出 token $0.50,費用從永不過期的預付額度中扣除。定價頁面列出了儲值方案與贈額。失敗或被拒絕的請求不會收費,這可避免重試循環讓你浪費錢。
合理的起步方式
- 啟動一個相容 Whisper 的伺服器(託管或本機),並確認它對一分鐘的檔案返回文字。
- 建立帳號、領取試用額度,並執行上述 curl 指令,傳入一段簡短的文字稿。
- 使用 Python 腳本連接兩個客戶端,並使用你自己的系統提示詞來定義你想要的清理風格。
- 只有在單一檔案流程運作後才新增佇列,並根據金鑰的並行數來設定佇列大小。
大部分工作集中在提示詞和音訊處理上,而非連接程式碼。從你熟悉的單一錄音開始,將輸出與你聽到的內容進行比較,並在擴展之前調整提示詞。
更多指南
問答
Whisper API 伺服器與 OpenAI API 相同嗎?
否。Whisper 是一個模型,伺服器是任何透過 HTTP 暴露該模型的程式。OpenAI 運行一個託管版本,許多人使用複製相同轉錄路徑的開源工具運行自己的伺服器。
此 API 能轉錄音訊檔案嗎?
否。它僅接受文字。請使用語音服務或你自己的 Whisper 伺服器處理音訊步驟,然後將轉錄內容傳送至此。
文字處理步驟應使用哪個模型名稱?
使用 uncensored 作為模型 ID,搭配基礎 URL https://api.whisperapis.com/v1 與您的金鑰作為 Bearer token。
我可以傳送多長的轉錄內容?
上下文視窗為 100,000 token,涵蓋提示詞與補全內容的總和。這足以在單一請求中處理許多長達數小時的錄音。
試用需要信用卡嗎?
否。新用戶可在註冊後前往 API 金鑰頁面,一鍵領取 $0.50 試用額度,無需綁定信用卡。
只差一張表單,即可取得金鑰
建立帳號、複製金鑰、更改基礎 URL。這就是整個設定過程。