跳到主要內容

【2026 最新】Whisper Local vs open-wispr 客觀比較:繁中離線語音輸入怎麼選?(安裝+隱私驗收+決策樹)

最後更新: ·
Whisper Local vs open-wispr 繁中離線語音輸入客觀比較與驗收教學

你按住快捷鍵,講完一句話,文字真的出現在游標旁邊;這還不代表你找到好用的 Whisper Local vs open-wispr 離線替代。對繁體中文使用者來說,真正會卡住的通常是四件事:台灣口音能不能穩定辨識、TypeScript 這類程式術語會不會被改成普通英文、放開按鍵後要等多久,以及斷網後是否仍能完成「錄音→轉寫→貼上」。

這篇專為第一次接觸本機語音輸入的人寫。我不會拿兩張官方功能表就宣布誰勝出,也不會把沒有跑過的數字叫做「實測」;你會先看懂兩套工具的差別,再建立一份 30 句固定音檔、量測字錯率與貼上延遲,最後用同一套驗收方法在自己的電腦上做決定。

先說結論:離線語音輸入不是一個開關,而是一條管線

一句話記住:離線語音輸入=麥克風+本機模型+文字後處理+游標交付;任何一段改走雲端,都不能只靠「Local」三個字判斷。

  • Windows 使用者:先看 Whisper Local;官方文件提供 Windows 10+ standalone app 與 Python 安裝路徑。
  • Apple Silicon Mac、想要最少功能:open-wispr 的產品面更窄,核心是按住、說話、放開、貼上。
  • 想加詞庫、修正常見誤字、依 App 切 profile:Whisper Local 的控制面比較完整,但設定與資料留存面也更多。
  • 繁中準確率:兩者都使用 Whisper 家族,不能從 App 名稱直接推導誰較準;模型、語言設定、量化版本、硬體與你的錄音集才是答案。
  • 隱私:先完成模型下載,再做斷網轉寫與連線觀察;這只能證明「你測的版本、設定與那次執行」,不是永久保證。
Whisper Local vs open-wispr 離線語音輸入四段管線:麥克風、本機模型、後處理、游標貼上
先把「離線」拆成四段:模型留在本機只是起點,後處理、貼上與更新檢查也要一起驗收。

Whisper Local vs open-wispr:先固定版本,不要比到兩個不同年代

截至 2026 年 9 月 24 日,Whisper Local 最新 release 是 v0.19.0;open-wispr 最新 release 與程式內版本則是 v0.46.0。後面所有比較都綁定這兩個版本;換版後請重新跑同一份音檔,不要把不同版本的結果直接拼在一起。

open-wispr 目前有一個需要先踩煞車的官方來源矛盾:release 與 Sources/OpenWisprLib/Version.swift 顯示 0.46.0,但同一個 repository 的 Formula/open-wispr.rb 仍把 source tag 寫成 v0.9.1。因此一行 installer 跑完後,先執行 open-wispr --version;若不是你要比較的版本,就不要把結果標成 0.46.0。這不是推測安裝一定失敗,而是兩份官方檔案在 2026 年 9 月 24 日尚未對齊。

Whisper Local vs open-wispr 功能與安裝比較圖,包含作業系統、推論引擎、繁中設定、詞庫與本機資料
兩者都能把 Whisper 包成桌面語音輸入,但定位不同:open-wispr 收斂在 Apple Silicon Mac;Whisper Local 提供更多跨平台與後處理控制。

兩套工具到底差在哪?先看「產品層」,再看模型

① Whisper Local:「可調整的語音輸入工作台」

Whisper Local 預設使用 faster-whisper,官方也提供 whisper_cpp backend。除了 push-to-talk,它還有 hotwords、永久字詞修正、App profile、voice command、fallback window、轉寫歷史與選配的本機 Ollama 後處理。白話說,它比較像一張有很多旋鈕的工作台:你能救專有名詞,也要決定哪些紀錄要留在本機。

官方文件寫明,預設會在本機保留最近 2,000 筆 transcripts.jsonl,另存不含文字內容的統計資料;logging.log_transcriptions 預設關閉。這不等於把資料送上雲端,但隱私敏感者要把「不出站」與「不落地」分開檢查。

② open-wispr:「把 Mac 變成一顆本機聽寫鍵」

open-wispr 的官方定位是 Apple Silicon macOS dictation,使用 whisper.cpp 與 Metal。它把產品面壓得很窄:Globe key 按住錄音,放開後轉寫並交付到游標;預設 maxRecordings: 0官方 README 說 temp audio 轉寫後刪除。你仍可設定模型、語言、hotkey、Whisper prompt 與是否保存最近錄音;相較之下,Whisper Local 的目前文件明列更多 profile、hotwords 與 corrections 控制。

換句話說,兩套工具最大的差距不是「都有沒有 Whisper」,而是 App 在 Whisper 前後替你做多少事。模型相同,不代表貼上體驗、詞庫、歷史紀錄與故障恢復相同。

Whisper Local vs open-wispr 安裝:先讓繁中設定站在同一起跑線

Whisper Local 在 Windows 可從 release 下載 standalone app;Windows/macOS 也能固定 Python 版本安裝:

python3 -m venv .venv-whisper-local
source .venv-whisper-local/bin/activate   # Windows PowerShell 改用 .venv-whisper-local\Scripts\Activate.ps1
python -m pip install "whisper-local==0.19.0"
whisper-local --doctor
whisper-local

macOS 初次使用會需要麥克風與 Accessibility(輔助使用)權限;Windows 則要允許桌面 App 使用麥克風。測試前把語言固定為 zh,模型先從 multilingual basesmall 開始,不要選 *.en。在 ~/.whisperkey/user_settings.yaml(Windows 是 %APPDATA%\whisperkey\user_settings.yaml)加入:

whisper:
  language: zh
  model: small
  initial_prompt: "輸出繁體中文;保留 TypeScript、GitHub Actions、PostgreSQL。"
  hotwords: ["TypeScript", "useEffect", "GitHub Actions", "PostgreSQL"]

open-wispr 官方 quick install 是:

curl -fsSL https://raw.githubusercontent.com/human37/open-wispr/main/scripts/install.sh -o /tmp/open-wispr-install.sh
less /tmp/open-wispr-install.sh
bash /tmp/open-wispr-install.sh
open-wispr --version

先下載再閱讀,比直接把遠端腳本 pipe 進 shell 多一道審查。open-wispr 的預設 base.en 是英文限定;測繁中前必須把 ~/.config/open-wispr/config.json 改成 multilingual model 與中文語言:

{
  "language": "zh",
  "modelSize": "small",
  "whisperPrompt": "輸出繁體中文;保留 TypeScript、GitHub Actions、PostgreSQL。",
  "maxRecordings": 0
}

儲存後執行 brew services restart open-wispr。注意:prompt 只是偏好提示,不保證每次都輸出繁體字,也不等於真正的自訂詞典;這正是固定音檔測試存在的理由。

建立 30 句繁中測試集:不要邊講邊改考題

最小可用測試集分成 5 組,每組 6 句。每一句都先寫「參考答案」,再用同一支麥克風、同一距離、同一音量各錄一次 WAV;兩套工具必須吃同一份音檔,不能對 A 現場講、對 B 重新講。

  1. 日常繁中:地址、日期、金額、電話與自然停頓,例如「下週三下午兩點,把三萬五千元的預算表寄給陳經理」。
  2. 英中混說:「請把 pull request 指派給 Terry,然後在 Slack 標記 backend team」。
  3. 程式術語:TypeScriptuseEffectPostgreSQLKubernetesJSONsnake_case 各出現至少兩次。
  4. 數字與符號:版本 0.19.0、連接埠 7777、百分比、Email、URL 與指令 npm run build
  5. 自我修正:「把狀態改成 pending——不對,改成 processing」。先決定你要評 raw transcript 是否忠實保留口語,還是要評 App 的後處理能否只留最後意圖;兩個分數不能混成一個。

完整 30 句不用追求文學性,重點是每一類都有固定覆蓋。建議把檔名寫成 zh-tw-01.wavself-correction-30.wav,另建一份 UTF-8 的 reference.txt。日後升級模型或 App,只換被測版本,不換題目。

30 句繁中語音輸入測試集設計圖,涵蓋日常繁中、英中混說、程式術語、數字符號與自我修正
30 句不求多,而求固定:五種失敗模式都覆蓋,升級後才能重跑同一份考卷。

怎麼量:CER、專有名詞、貼上延遲與資源占用

1. 繁中用 CER,不要硬套英文單字錯誤率

CER(Character Error Rate,字元錯誤率)可以記成:(替換+刪除+插入) ÷ 參考答案字元數。先做「文字 CER」:統一全半形與空白、暫時不計標點;再做「標點命中率」。這樣才不會一個逗號掩蓋真正的中文字誤辨識。

2. 程式術語要逐項 exact match

把 20 個 target token 列出來,大小寫與符號都算:useEffect 被輸出成「use effect」就不算命中。Whisper Local 再做一輪 hotwords/corrections;open-wispr 再做一輪 whisperPrompt。比較「預設」與「調整後」,才能看出 App 控制面的價值。

3. 貼上延遲從放開按鍵開始算

用 60 fps 螢幕錄影,同步拍到你放開快捷鍵與最後一個字出現在游標的畫面。每套工具先 warm-up 一次,再跑 10 次 5 秒音檔,記中位數與最慢那幾次;「首次啟動到可錄音」另外計時。官方或別人的單一毫秒數不能替代你的 CPU、模型與 App 組合。

4. CPU/RAM 分成 idle、轉寫峰值、回落後

macOS 用 Activity Monitor,Windows 用 Task Manager。每次記三個狀態:啟動後靜置 60 秒、處理 30 秒音檔時的峰值、完成 30 秒後。模型越大通常越吃記憶體,但不要直接把官方模型大小當成實際 resident memory。

「真的零出站」怎麼驗:斷網只是第一關

  1. 先連網完成模型下載。open-wispr 官方模型來自 Hugging Face 的 ggerganov/whisper.cpp;Whisper Local 預設模型也會在首次啟動下載。
  2. 關閉選配網路功能。Whisper Local 的 update check 與 Ollama 後處理預設/端點設定要記錄;open-wispr 則把 maxRecordings 保持為 0。
  3. 完全斷網後冷啟動。重新開機或完整退出 App,關 Wi-Fi/拔網路線,再完成錄音、轉寫與貼上。若模型其實沒快取,這一步會立刻揭露。
  4. 恢復網路後觀察封包。在安靜的測試帳號執行 sudo tcpdump -i any -n,同時跑固定音檔;Windows 可用 Resource Monitor 的 Network 頁面看對應 process。把封包檔、版本、設定與時間一起保存。
  5. 把結論寫成有邊界的句子。正確格式是「在版本 X、設定 Y、這次 10 分鐘執行中沒有觀察到非本機連線」,不是「這個專案永遠不連網」。

官方原始碼也能做第二層稽核:open-wispr 的 URLSession 網路路徑集中在 model downloader;Whisper Local 官方 FAQ 列出首次模型下載、選配 GPU runtime、opt-in update check 與自訂 Ollama endpoint。原始碼檢查能縮小範圍,但執行期封包觀察才會覆蓋實際安裝環境。

Whisper Local vs open-wispr 決策樹,依 Windows、Apple Silicon Mac、詞庫需求與最小資料留存選擇
先用 OS 排除不適用路徑,再用詞庫需求、資料留存與你自己的延遲結果做最後決定。

決策樹:你該選 Whisper Local 還是 open-wispr?

  • 你在 Windows:選 Whisper Local,因為它有官方 Windows 10+ 路徑;本文查到的 open-wispr 官方安裝與權限文件以 Apple Silicon macOS 為目標。
  • 你在 Apple Silicon Mac,只想要簡單 push-to-talk:先試 open-wispr;把版本與 multilingual model 查清楚,再看 30 句結果是否過關。
  • 你常講人名、套件名、內部專案代號:先試 Whisper Local 的 hotwords 與 corrections,再比較調整前後 exact-match。
  • 你要求預設不保留錄音:open-wispr 的 maxRecordings: 0 比較貼近這個起點;Whisper Local 要另外審視 transcript history 與 log 設定。
  • 你要最低延遲:不要先看品牌;在同一台機器上用相近模型級別重跑 10 次,選中位數、尾端延遲與準確率都能接受的那套。

常見坑:本機跑得動,不代表日常輸入好用

  • 拿英文限定模型測繁中:base.ensmall.en 不該進繁中賽道。
  • 兩套 App 用不同模型大小:比較到的是模型,不一定是 App。
  • 只測一句短句:短句會隱藏長停頓、重複、標點與記憶體回收問題。
  • 把 prompt 當保證:它能提供偏好,不能保證繁體字、專有名詞與大小寫每次正確。
  • 把 raw transcript 與 AI polish 混算:先評 ASR,再評後處理;否則你無法知道錯在哪一層。
  • 授權後不清理:測完若不再使用,記得移除 Microphone/Accessibility 權限與本機資料。

卸載與資料清理:最後一關也要可逆

Whisper Local 提供互動式清理:先執行 whisper-local --uninstall,它會列出設定、log、transcript、autostart 與屬於該工具的模型,模型刪除要第二次確認;最後再執行 pip uninstall whisper-local,或刪除 standalone executable。這比手動刪整個 Hugging Face cache 安全,因為共用 cache 可能還有其他工具的模型。

open-wispr 官方卸載腳本會移除 service、formula、tap、config、models、App bundle、logs 與權限。仍建議先下載閱讀,再執行:

curl -fsSL https://raw.githubusercontent.com/human37/open-wispr/main/scripts/uninstall.sh -o /tmp/open-wispr-uninstall.sh
less /tmp/open-wispr-uninstall.sh
bash /tmp/open-wispr-uninstall.sh

完成後到 System Settings → Privacy & Security → Microphone / Accessibility 確認 OpenWispr 已不在授權清單。清理不是附錄,而是隱私測試的一部分:一套真正適合日常使用的工具,也要讓你知道資料在哪裡、如何停止、如何離開。

FAQ:Whisper Local vs open-wispr 新手最常問的 8 題

1. 兩套工具都能保證輸出繁體中文嗎?

不能把它當保證。把語言設為 zh、使用 multilingual model,再用 prompt 提示繁體字;最後仍要看你的 30 句輸出,必要時加字詞修正。

2. 哪一套繁中一定比較準?

沒有足夠證據直接下定論。兩者的 runtime、模型格式與後處理不同;截至 2026 年 9 月 24 日,我查核兩套工具的 README、release 與 repository 文件,未找到同一份台灣繁中+code-jargon A/B。用同音檔、同模型級別重跑才有意義。

3. 斷網成功就代表零出站嗎?

只通過第一關。斷網證明核心流程不依賴連線;恢復網路後還要觀察執行期連線,並記錄 update check、模型下載與 Ollama 等例外。

4. 我只用 Mac,為什麼不直接選 open-wispr?

可以先試,但先問你需不需要詞庫與 profile。若人名、程式術語很多,Whisper Local 的 hotwords/corrections 可能更重要;若只要簡單按住說話,open-wispr 的窄功能面反而清楚。

5. 模型越大一定越適合日常 dictation 嗎?

不一定。更大的模型可能改善困難語音,也會增加下載、記憶體與等待成本;先用 small 建 baseline,再看錯誤是否值得升級。

6. 能不能直接比較官方宣稱的 latency?

不能當成同一場比賽。不同硬體、模型、音檔長度、warm-up 與量化設定不可直接互比;用你的機器記中位數與尾端延遲。

7. 自我修正句要怎麼評分?

拆成兩層。raw ASR 評「有沒有忠實聽見」,後處理評「有沒有依規則只留最後意圖」。不要讓 LLM cleanup 把 ASR 的錯誤藏起來。

8. 這兩套工具適合會議逐字稿嗎?

本文評的是游標 dictation,不是多人會議系統。長音訊、speaker diarization、時間戳與系統音訊是另一套需求;不要因為都叫 speech-to-text 就混成同一個選型。

給新手的 5 個重點

  1. 先固定 App 版本、multilingual model、語言與硬體。
  2. 用同一份 30 句音檔比較,不要臨場重錄。
  3. 繁中看 CER,術語看 exact match,貼上看中位數與尾端延遲。
  4. 斷網冷啟動,再做連網封包觀察;把結論限制在你真的測到的範圍。
  5. 選擇能通過你門檻的工具,不選功能清單最長的工具。

接著閱讀

左右滑動查看更多推薦

結語:先做一張自己的及格線,再下載工具

回到開頭那條公式:離線語音輸入=麥克風+本機模型+文字後處理+游標交付。Whisper Local 與 open-wispr 都只是替你組好這條管線,但哪一條比較適合你,取決於 OS、繁中語料、程式術語、延遲容忍與資料留存。

最好的下一步不是再看十篇排行榜,而是今天先錄 30 句、寫下三條門檻,例如「文字 CER、20 個術語命中數、10 次貼上的中位延遲」,再讓兩套工具交同一份考卷。想把這種「先定驗收、再選 AI」的方法帶進更多工作流,可以接著逛 AlphaLab AI 專區,或到 AlphaLab 課程把它做成自己的可重跑系統。

ALPHALAB 社群

有問題?來 Telegram 聊

和 Terry、編輯、其他網友一起討論這篇文章。提問、分享觀點,回覆更即時。

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

每週最多三封:一封 Weekly 週報與最多兩封關鍵 Alpha Signal。

我們不會 spam,隨時可退訂。