OpenAI Whisper 怎麼用?從安裝到輸出字幕,一篇搞定

你可能早就在用 ChatGPT 或 API,但 Whisper 這個工具很多人其實從來沒認真碰過。它是 OpenAI 在 2022 年底開源的語音轉文字模型,到 2026 年依舊是準確度、多語言支援跟免費程度之間最平衡的選項之一。白話講就是:你給它一段音訊,它吐出逐字稿或字幕檔,而且中文、日文、台語夾雜英文都行。
這篇的目標很明確:讓你從零跑出第一份逐字稿,然後知道怎麼把它接進實際需求——不管是 YouTube 字幕、Zoom 會議紀錄還是 Podcast 後製。
你需要先準備什麼
硬體:有 NVIDIA GPU 會快很多,但沒有也能跑,只是 CPU 模式處理長音訊會慢。M1/M2/M3 Mac 用 MPS 加速也 OK。
軟體前置條件:
- Python 3.9 以上(建議 3.11)
ffmpeg:Whisper 底層要用它解碼音訊,沒裝會直接報錯- pip 或 conda 管理環境
安裝 ffmpeg 最省力的方式:
- Mac:
brew install ffmpeg - Ubuntu/Debian:
sudo apt install ffmpeg - Windows:從 ffmpeg.org 下載或用 winget
Step 1:建虛擬環境、裝 Whisper
別直接裝在系統 Python,這種事做多次就知道為什麼了。
python -m venv whisper-env
source whisper-env/bin/activate # Windows 用 whisper-env\Scripts\activate
pip install openai-whisper
這會把 Whisper 跟它依賴的 PyTorch 一起拉進來,體積不小,第一次裝需要一點時間。
Step 2:選模型大小,第一次先用 small
Whisper 有五個模型等級:tiny、base、small、medium、large(目前最新是 large-v3)。
| 模型 | VRAM 需求 | 速度 | 適合場景 |
|---|---|---|---|
| tiny | ~1 GB | 最快 | 快速草稿 |
| base | ~1 GB | 快 | 英文為主 |
| small | ~2 GB | 中 | 新手首選 |
| medium | ~5 GB | 慢 | 多語言夾雜 |
| large-v3 | ~10 GB | 最慢 | 高準確度需求 |
第一次跑建議 small,準確度夠用又不會等太久。如果你是在 CPU 上跑,tiny 或 base 比較不痛苦。
Step 3:執行轉錄,輸出你要的格式
最基本的指令:
whisper audio.mp3 --model small
Whisper 預設會輸出 .txt、.vtt、.srt、.tsv、.json 五種格式,全部一起吐出來。如果只要 SRT 字幕:
whisper audio.mp3 --model small --output_format srt
中文音訊要指定語言,不然它會先跑語言偵測浪費時間:
whisper audio.mp3 --model small --language zh
輸出檔案會存在當前目錄,檔名跟音訊檔一樣、副檔名換掉。
Step 4:用 Python API 整合進你的工作流
如果你不是只要一次性轉錄、而是要把 Whisper 接進某個自動化流程,直接用 Python 呼叫更靈活:
import whisper
model = whisper.load_model("small")
result = model.transcribe("audio.mp3", language="zh")
print(result["text"]) # 完整逐字稿
for segment in result["segments"]:
print(f"[{segment['start']:.1f}s] {segment['text']}")
result["segments"] 裡每一段都有開始時間、結束時間跟文字,你可以直接拿來生字幕、做關鍵字搜尋,或餵進 LLM 做摘要。
如果你在用 OpenAI 的其他服務,可以參考 OpenAI API 實戰踩坑筆記 裡對 API 定價結構的說明——Whisper 也有雲端版本可以直接打 API,不用本地跑。
常見錯誤與怎麼避開
「No module named 'whisper'」:你忘了啟動虛擬環境,或裝錯成 whisper 而不是 openai-whisper(這兩個是不同 package)。
「ffmpeg not found」:裝了 ffmpeg 但沒加進 PATH。Mac 用 Homebrew 裝通常沒問題,Windows 要手動設環境變數。
中文逐字稿有大量錯字:試試看換成 medium 或 large-v3,small 對中文方言或口音較重的音訊支援有限。另外確認有加 --language zh,讓它跳過語言偵測步驟。
跑很慢:如果是 NVIDIA GPU 但沒用到,檢查 PyTorch 版本是否有 CUDA 支援:python -c "import torch; print(torch.cuda.is_available())",輸出 False 代表沒抓到 GPU。
進階技巧:timestamp、音訊分段、搭配其他工具
Word-level timestamp:Whisper 支援輸出每個詞的時間點,搭配 whisper-timestamped 這個第三方套件可以做到,適合做 Karaoke 字幕或精確剪輯。
長音訊分段:超過 30 分鐘的檔案建議先用 pydub 切段再分批送,可以避免記憶體爆掉的問題,速度也比較好控制。
接進自動化流程:Whisper 輸出的逐字稿接上 LLM 做摘要是很常見的組合。如果你在想怎麼讓 LLM「查資料」而不是死背,可以看看 RAG 是什麼? 這篇,把會議記錄建成可查詢的知識庫是個蠻實用的應用。
批次處理多檔:Python 跑迴圈就能搞定:
import whisper, os
model = whisper.load_model("small")
for f in os.listdir("./audio_files"):
if f.endswith(".mp3"):
result = model.transcribe(f"./audio_files/{f}", language="zh")
with open(f"{f}.txt", "w") as out:
out.write(result["text"])
跑完之後,確認一下這幾點
跑出第一份逐字稿之後,檢查幾個東西:
- SRT 時間軸有沒有偏移?(常見於音訊開頭有長靜音的情況)
- 專有名詞或人名有沒有辨識錯?(這個 Whisper 本來就弱,可以後處理替換)
- 如果要上傳 YouTube,
.vtt格式直接支援,不用轉檔
下一步可以試著把逐字稿接進 Fine-tuning vs RAG 裡提到的 RAG 架構,讓你的會議紀錄變成可以問答的知識庫——這個組合在 2026 年已經是蠻成熟的 workflow 了。
常見問題
Whisper 要有 GPU 才能跑嗎?
不一定。Whisper 在 CPU 上也能執行,只是速度較慢,處理長音訊時會很明顯。如果你有 NVIDIA GPU 且 PyTorch 有 CUDA 版本,速度會快很多;M1/M2/M3 Mac 則可以用 MPS 加速,體感也比純 CPU 快。
Whisper 跟 OpenAI 的雲端語音 API 有什麼差?
本地跑的 Whisper 是開源版本,免費但需要自己的硬體。OpenAI 也提供雲端 Whisper API(/v1/audio/transcriptions),按分鐘計費,不用管理本地環境,適合不想自己架的情境,但長時間大量使用成本會累積。
Whisper 的中文辨識準確嗎?
用 medium 或 large-v3 模型、並加上 --language zh 參數的話,普通話的準確度相當不錯。台語、廣東話或口音很重的音訊會有明顯掉字,這類情境目前還是建議用更大的模型或後處理校正。
輸出的 SRT 字幕時間對不上怎麼辦?
最常見原因是音訊開頭有長靜音,Whisper 的 VAD(語音活動偵測)有時會跳過或誤判。解法是先用 ffmpeg 剪掉靜音頭,或用 --condition_on_previous_text False 參數減少累積誤差。
可以直接處理影片檔嗎?
可以。Whisper 底層透過 ffmpeg 解碼,所以 .mp4、.mov、.mkv 等影片格式可以直接傳入,不用手動先抽出音軌。指令跟音訊檔完全一樣,直接把檔名換成影片檔即可。
分享這篇



