CapsWriter Offline 開源語音輸入,按住 CapsLock 說話就打字

CapsWriter Offline 是 Windows 開源語音輸入工具,按住 CapsLock 說話、鬆開就自動打字,辨識引擎全程在本機執行,也能把音影片檔轉成 srt 字幕。台灣用戶改一行設定就能輸出繁體中文。

用 AI 摘要這篇文章:

CapsWriter Offline 是一套裝在 Windows 上的開源聽寫工具:按住鍵盤的大寫鎖定鍵(CapsLock)說話,鬆開,辨識好的文字就直接打進游標所在的位置。語音辨識引擎放在自己的電腦裡跑,錄音、辨識結果、日記檔全部留在本機。結論先講:在 Windows 10 或 11 上想找免費、離線的語音輸入方案,它值得裝來試;Mac 使用者官方版本連原始碼執行都不支援,請直接看後面的替代路線;而期待「AI 幫我把話潤飾好」的人要看清楚,那層功能預設走的反而是雲端服務。

按住鍵說話,鬆開就輸入:它把自己做成鍵盤的一部分

這套工具的核心互動只有一個動作:按住 CapsLock(或滑鼠側鍵 X2)開始說話,鬆開鍵,整句文字立刻輸入到當前游標。沒有視窗要切換、沒有按鈕要點。作者對它的定位寫得很白:這是一個像鍵盤、滑鼠一樣的基礎輸入工具,開機自動常駐,安靜地在系統匣工作。

圍繞這個核心,有幾個設計細節值得知道。

麥克風是持續開啟的。作者在常見問題裡解釋過原因:系統開啟麥克風有大約 0.5 秒延遲,如果按鍵時才開啟,開頭一兩個字會被吃掉。為了按下鍵就能立刻說話,它選擇讓麥克風一直待命,並宣稱實測對整機功耗影響很小。

按鍵行為本身也有變體可以選:除了按住說話的基本模式,還有類似對講機的鎖定模式,以及按一下開始、再按一下結束的單擊模式。說話時可以直接把「逗號、句號、回車」說出口,系統會自動換成對應的標點和換行,連續喊兩次回車也行。這些小地方加起來,決定了它用起來像不像身體的一部分。

每一句錄音和辨識結果都會自動歸檔:錄音存成音訊檔,文字照「年/月/日」的結構寫進 Markdown 日記。作者估算連續錄一個月不到 200MB、一年不會超過 3GB,比通訊軟體的聊天紀錄長得慢,所以刻意不做自動刪除。這對把語音當工作紀錄的人是加分,對隱私敏感的人則代表:你說過的每句話都以音訊形式留在硬碟裡,要自己定期清。

除了聽寫,它也能轉錄檔案。把音訊或影片檔直接拖到客戶端程式上,會在原檔旁邊生成三個檔案:srt 字幕、按標點分行的純文字、字級時間戳的 JSON。批次拖多個檔案也可以。這條路線需要另外裝 ffmpeg。長錄音的處理方式是分段辨識再合併,官方文件的說法是「理論上不限時長,服務端會逐段處理」,並老實補了一句:不排除超大檔案會觸發沒考慮到的錯誤。字幕的分行和句末時間軸在 2026 年 8 月被重寫過一輪:提交紀錄顯示分行改成兩段式,第一遍按標點切句、第二遍才在句內分行,句尾時間改為組句時計算,順手修掉了字幕提前 0.2 秒消失的老問題;辨識有錯字時,也可以拿 JSON 裡的字級時間戳手動校正時間軸。

服務端和客戶端是分開的兩個程式,這個架構有一個貼心的用途:跑不動模型的舊電腦,可以只執行輕量的客戶端(官方的純客戶端包標明適用 Windows 7 64 位元以上),連到區域網路裡另一台跑得動模型的機器輸入。家裡或辦公室有一台主力的話,其他設備都能借用它的辨識力。

「完全離線」要拆成兩層看

專案 README 的第一句話就是「完全離線」,這四個字需要拆開檢驗,因為它對兩層功能的真實程度不同。

辨識引擎這一層,離線是真的。專案內建四個語音辨識引擎,全部在本機跑:Paraformer 與 SenseVoice-Small 走 ONNX 格式,Fun-ASR-Nano 與 Qwen3-ASR 是作者自己打包的 ONNX 加 GGUF 版本,用 llama.cpp 推理。從整份儲存庫的原始碼看,核心程式裡沒有任何遙測、統計或版本檢查的程式碼,對外連線只有一個 WebSocket 伺服器(服務端與客戶端之間的通道)和本機的 UDP 廣播。換句話說,你講的話、錄的檔,辨識過程不出這台機器。斷網、保密環境、不想把聲音交給雲端的人,這層可以放心。

AI 潤色那一層,預設卻是雲端的。這套工具有「角色」機制:對著麥克風說出某個角色的名字開頭,辨識結果就會交給那個角色處理,例如潤色、翻譯、小助理。看角色設定檔的內容,預設的「大助理」角色指向 DeepSeek 的雲端 API,設定檔裡還留著作者自己遮罩過的 API 金鑰範例;「小助理」和「翻譯」兩個角色指向 LM Studio 的本機模型。作者在 2.6 版的更新說明裡也明講:預設角色改用 DeepSeek API,方便新使用者填入金鑰後直接體驗。

所以準確的講法是:聽寫本身零雲端,因為你沒說角色名時根本不會碰到 LLM;一旦用了潤色角色又沒改設定,你的文字就會送到 DeepSeek 的伺服器。想要「連潤色都離線」的人,要把角色設定改成 LM Studio 或 Ollama 這類本機推理方案再填自己的模型。這不是什麼見不得人的設計,但「完全離線」四個字確實沒有涵蓋這一層。

四個辨識引擎,照你的硬體選

引擎選擇直接影響速度和品質,作者的選法建議可以用一句話總結:有獨立顯卡選 Qwen3-ASR,只有內建顯示晶片可以先試它的較小量化版本,延遲太高再換 Fun-ASR-Nano,老機器用 SenseVoice。

引擎作者評的準確度速度檔案格式顯卡加速
Paraformer三星五星ONNX不支援
SenseVoice-Small三星五星ONNX支援
Fun-ASR-Nano四星四星ONNX+GGUF支援
Qwen3-ASR-1.7B五星三星ONNX+GGUF支援

作者公布的實測數字(20 秒音檔,CPU 為 Intel U9-285H、GPU 為 RTX5050):Paraformer 與 SenseVoice 在 CPU 上都是 0.6 秒,SenseVoice 上顯卡可到 0.15 秒;Fun-ASR-Nano 是 CPU 2.0 秒、GPU 0.5 秒;準確度最高的 Qwen3-ASR-1.7B 是 CPU 4.0 秒、GPU 1.0 秒。這些是作者自己量測的結果,量級可以參考,實際表現取決於你的機器。

兩個細節:Paraformer 這個最早期的引擎被作者標註為「紀念性保留」,不建議使用;Qwen3-ASR 本身不產生時間戳,做字幕轉錄時要額外載入強制對齊模型,這也是它速度代價的一部分。另外 2.6 版加了一個預設關閉的「GPU 預加速」選項,給 NVIDIA 獨顯用:錄音開始時主動鎖定顯示卡記憶體的高頻率,避免顯示卡閒置降頻造成的冷啟動延遲,作者宣稱可把轉錄延遲壓到 0.1 秒左右。這是給計較反應速度的人的微調選項。

安裝是兩段式的:軟體本體約 110MB,模型每個從 500MB 到 1.5GB 不等,分開打包、分開下載。官方通道是 GitHub Releases 和 123 網盤。作者在 2.6 版的發布說明裡交代過換盤的原因:百度網盤免費版太慢、開會員又太貴,改用 123 網盤分享,實測不限速,每個月有 10GB 免費額度,超出的部分大約 0.2 元人民幣換 1GB。他也解釋過為什麼不做「打開自動下載模型」:大陸用戶連 GitHub 慢,百度網盤這類服務又不提供給第三方程式呼叫的 API,只好請使用者自己動手。這也順帶說明了它的主要使用者群在哪裡。

CapsWriter Offline 專案 README 的平台支援與快速開始說明Pin
專案 README 的平台支援段落:僅保證 Windows 10/11 完整可用,macOS 因底層鍵盤監聽函式庫停止支援而明確不支援(GitHub,2026 年 10 月查核)

台灣使用者:一行設定讓它輸出繁體

預設的辨識結果是簡體中文,這可能是台灣使用者第一個撞上的牆。好消息是繁體輸出是內建功能,改一個設定就好。

在客戶端設定檔 config_client.py 裡,把 traditional_convert 從 False 改成 True,再把 traditional_locale 設成 ‘zh-tw’(台灣繁體;另外有 ‘zh-hant’ 標準繁體和 ‘zh-hk’ 香港繁體可選)。轉換用的是 zhconv 這個以 MediaWiki 轉換表為基礎的簡繁轉換模組,在收到辨識結果後、套用熱詞之前執行。以字元轉換來說它處理得算完整,但別期待它把簡體慣用詞換成台灣說法,它轉的是字,不是詞。

有一個順序上的細節:因為繁體轉換排在熱詞替換之前,而熱詞功能是拿來修正專有名詞的(例如把聽錯的英文品牌名強制換成正確拼法),熱詞表照簡體口吻維護會比較穩,避免轉換後的繁體字對不上熱詞比對。

熱詞是這套工具自訂能力的核心,一共三種檔案:hot.txt 做音素比對的強制替換(適合人名、術語、品牌),hot-rule.txt 用正規表示式或等號規則做精準替換,這兩種改完自動生效、不用重啟;hot-server.txt 則是給部分模型用的服務端語境增強,熱詞只作為辨識提示、不保證替換,作者自己補了一句:客戶端熱詞其實就已經完全夠用。熱詞可以用直線符號分隔多個別名,也有黑名單機制避免錯誤替換,讓「該換的換、不該換的別動」可以更精細地控制。作者在致謝裡坦白,音素熱詞檢索演算法是靠 AI 編程助手才寫得出來的,捐贈收入也主要花在訂閱這些服務上。

語言方面,除了中文專用、不支援英文的 Paraformer,其他引擎都支援中文和英文,SenseVoice 支援自動偵測,日文、粵語、韓文要指定,更多語言只有 Qwen3-ASR 引擎支援。輸出時它會自動處理中英混講的間距,也會把「十五六個」這類口語數字換成「15~16個」。

另外有個已知的輸入法干擾:部分中文輸入法(作者點名微信輸入法)會干擾系統的 Unicode 字元輸出,造成標點後面的字不正常。解法是切到英文鍵盤,或在設定檔把特定程式改成貼上輸出。

Mac 和 Linux 的替代路線

官方支援範圍寫得很明白:只有 Windows 10/11 的 64 位元版本保證完整可用。Linux 沒有測試環境,無法保證。Mac 則是明確不支援,原因是底層的鍵盤監聽函式庫已放棄 macOS。

這裡有個新舊資訊的陷阱:網路上流傳的介紹文章(包含引用舊版 README 的內容)會說 Mac 可以從 Python 原始碼執行,只是要用管理員權限、預設快速鍵改成右 Shift。以目前版本的 README 來看,這條路已經不通了,別照著舊文章白忙一場。

CapsWriter Offline 2.6 版發布說明附的模型選擇建議與 123 網盤下載連結Pin
2.6 版發布說明附的模型選擇建議與 123 網盤下載連結:獨顯用 Qwen3-ASR、集顯降一級、弱機選 SenseVoice-Small(GitHub Releases)

Mac 使用者有幾條現成的路:作者自己在 README 推薦了同樣走離線引擎、跨平台的 LazyTyper 和閃電說;專案的置頂 issue 也官方彙整了第三方適配版本,包括 Apple Silicon 的 CapsWriter-for-macOS、Linux 離線環境的適配分支,以及加了靈動島動畫和串流辨識的 VoxCaps 分支。有意思的是,VoxCaps 補的正是原作者明確表示不做的方法,上游作者不想加、社群自己 fork 一份做出來,這大概是開源專案最健康的樣子。TechMoon 先前介紹過的 macOS 本機聽寫工具 FreeFlow,也是 Mac 使用者可以比較的選項。

裝之前該知道的四個限制

有幾件事先知道,可以少走冤枉路。

安靜的時候別按著鍵不放。就算不說話,麥克風也會收到微弱的環境噪音,而辨識模型被強制要求輸出文字時,會對噪音「幻覺」出不存在的字。這是模型天性,官方文件建議真的要輸入時才按鍵。

想在以管理員權限執行的程式裡輸入,客戶端也要以管理員權限執行,否則鍵盤監聽會被擋住。這是 Windows 的限制,所有全域快捷鍵工具都會遇到。

服務端預設監聽所有網路介面上的 6016 連接埠,而且沒有身分驗證。自己一台電腦用沒問題(服務端和客戶端都在本機),但它的設計本來就允許一個服務端同時服務多台客戶端,在公司或宿舍的區域網路裡開著,同網段的人都能連上你的辨識服務。用不到多機共用的人,可以把設定檔裡的監聽位址改成 127.0.0.1。

更新節奏要有點耐心。最新版本標籤釘在 2026 年 5 月,但下載包其實在 9 月中又被替換過一次(檔名直接標 20260914),版本號沒有跟著跳。已經有使用者在 issue 裡催更新。單人開發、免費開源,這是你要接受的交換條件。

CapsWriter Offline v2.6 版更新說明頁面,列出 GPU 預加速與角色功能簡化等項目Pin
v2.6 版更新說明(GitHub Releases):GPU 預加速、角色功能簡化為單一開關、預設角色改用 DeepSeek API 等項目

誰該裝,誰該繞路

適合:Windows 使用者,而且經常要打長文字(寫作、回訊息、填表單);需要把錄音、會議、上課影片轉成字幕稿,又不想把檔案上傳到雲端轉錄服務的人;重視隱私、想在斷網或保密環境用語音輸入的人。熱詞機制對需要反覆輸入專有名詞的客服、醫療、法律從業者特別有價值。

不適合:Mac 和 Linux 使用者(官方不支援,走第三方適配要有折騰心理準備);電腦規格較低又想要最高準確度的人(Qwen3-ASR 在純 CPU 下 20 秒音檔要轉 4 秒,開顯示卡加速時解碼器會佔約 1.6GB 顯示卡記憶體,弱機建議退到 SenseVoice);期待「說話就自動變成潤飾好文章」的人,那要另外接雲端或本機 LLM,預設體驗不是這樣。

想比較其他方案的話,TechMoon 介紹過把語音轉 Markdown 的本機聽寫工具、用 Whisper 把 YouTube 影片轉文字的做法,以及 AI 課堂轉錄工具 ReadLecture,可以對照著看。

CapsWriter Offline 把「按住鍵說話」做成了鍵盤等級的輸入基礎設施,辨識引擎層的離線宣稱經得起原始碼檢驗,代價是你得接受它是個 Windows 限定、需要自己選引擎、自己調熱詞的工具人。它不神奇,但免費、乾淨、把該在本機的都留在本機。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 2054

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...