在 Windows 自己跑 Whisper 語音轉文字:我踩過的六個坑與一支批次工具
我做投資筆記和 YouTube 頻道,需要大量把影片、錄音轉成逐字稿。雲端服務很方便,但我更想要離線:檔案不用上傳,敏感內容(例如會議錄音)也不會離開自己的電腦。OpenAI 開源的 Whisper 剛好能做到。
問題是在 Windows 上第一次裝,錯誤訊息常常完全看不出真正原因。以下是我實際踩過的坑。
坑一:錯誤訊息沒提 ffmpeg,但就是缺 ffmpeg
模型載入成功,跑到讀音訊時才噴錯:FileNotFoundError: [WinError 2] 系統找不到指定的檔案。整段訊息沒有出現 ffmpeg 這個字,只能從錯誤停在 whisper/audio.py 那一行推斷。
原因是 Whisper 讀音訊要呼叫 ffmpeg,系統的 PATH 找不到就會這樣。解法是安裝 ffmpeg(例如 winget install Gyan.FFmpeg)並確認它在 PATH 裡,或在程式裡直接指定 ffmpeg 的路徑。
坑二:裝到 CPU 版的 PyTorch,顯卡完全沒用到
執行時一直看到 FP16 is not supported on CPU; using FP32 instead。這個警告本身不影響功能,但它在提醒你:現在是用 CPU 在跑。
我檢查之後發現 PyTorch 版本是 2.7.0+cpu——後綴是 +cpu 就是純 CPU 版;要用 NVIDIA 顯卡,版本號要是 +cu 開頭的那種。
坑三:有顯卡不代表該用顯卡
如果你的顯卡只有 2GB 顯示記憶體,下 --device cuda 不一定會報錯,但可能比 CPU 還慢,甚至跑到一半記憶體不足——這是靜默的效能陷阱。Whisper 官方說明列出的顯示記憶體需求大約是:small 2GB、medium 5GB、large 10GB。2GB 的卡只夠跑最小的幾個模型,顯卡太弱時,乖乖用 CPU 反而比較快。
坑四:路徑尾巴多一個引號
用批次檔讓使用者輸入檔案路徑時,結尾多了一個 ",Whisper 建立輸出資料夾時就失敗,錯誤是 WinError 123 檔案名稱、目錄名稱或磁碟區標籤語法錯誤。拖曳檔案到命令列視窗時特別容易發生。批次檔裡要把路徑頭尾的引號和空白處理乾淨。
坑五:PowerShell 擋下腳本
想用 .ps1 腳本自動化,結果出現「此系統上已停用指令碼執行」。可以只對目前視窗放行:Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass,關掉視窗就恢復,比較不會影響系統整體設定。
坑六:中文出來是簡體
Whisper 辨識中文,輸出常常是簡體字。我的做法是轉完之後用 OpenCC 自動轉成繁體。另外記得明確指定語言(--language Chinese),避免它猜錯;超過一小時的長檔,用 large-v2 這類大模型品質會好很多。
我自己的批次轉檔工具
踩完這些坑之後,我把流程包成一支 Python 小工具:把檔案拖進去就自動轉,一次輸出 SRT、VTT、TXT、Markdown、JSON 等六種格式,打包成 zip。後來陸續加了批次處理、自動轉繁體、避免檔名覆蓋、單一檔案失敗不會中斷整批。
如果你要轉的是會議錄音,也可以直接用 Buzz 這類開源工具:它同樣以 Whisper 為核心,有圖形介面,可以在個人電腦上離線轉錄和翻譯。
判斷「是不是壞了」的參考
社群回報的大致速度:用 large-v2 轉 10 分鐘的音檔,CPU 大約要 12 到 20 分鐘,RTX 3060 這種等級的顯卡大約 1 到 2 分鐘。如果你的速度差很多,先檢查是不是坑二或坑三。這些數字是社群回報,不是嚴格的測試結果。
小結
Whisper 本身很好用,難的是 Windows 上的環境。錯誤訊息常常不會告訴你真正的原因,記住這幾個坑,大概能省下大半天。
資料來源
- 本人 Whisper 安裝與排錯對話紀錄(2025-06~10)、自製批次轉檔工具的使用說明與更新紀錄
- OpenAI Whisper、Buzz、OpenCC
封面圖由 AI 生成。
留言討論
留言載入中…
留言會公開顯示,請遵守留言規範;違規留言會被移除。