命令列工具
cjpais/Handy avatar
cjpais/Handy

cjpais/Handy:從 README 判讀功能、限制與採用條件

專案速覽:一款免費、開源且可擴展的語音轉文字應用程序,完全離線工作。

31,641 個 Star2,878 個 ForkRustMIT

秒懂

它是什麼?
A free, open source, and extensible speech-to-text application that works completely offline. 本文依官方 README 整理功能邊界、執行入口、依賴條件與專案專屬核驗重點。
適合誰用?
Handy 適合需要 A free, open source, and extensible speech-to-text application that works completely offline. 所涵蓋能力,且能管理 README 所列依賴與設定的人;不適合把範例直接視為生產保證的團隊。先執行:在 cjpais/Handy 依官方 README 的安裝入口執行範例,檢查 README 指定的設定檔、命令輸出、退出碼與日誌;針對 Handy 的主要功能記錄實際產物,文件未說明的行為不延伸推論。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Rust(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

Handy:核心工作流程:快捷鍵、說話、貼上(1)

Handy 是一款跨平台桌面應用,用於語音轉錄。按下可設定的鍵盤快捷鍵開始或停止錄音,也可以使用按住說話模式。說話、放開,Handy 使用 Whisper 在本地處理音訊,然後將轉錄文字貼到目前聚焦的應用中。README 說明整個過程完全在本地進行,不會將音訊傳送到雲端。它使用基於 Silero 的語音活動偵測來過濾靜音,並支援 Whisper 模型(Small、Medium、Turbo、Large),在可用時利用 GPU 加速,也支援 Parakeet V3,一個針對 CPU 最佳化且具備自動語言偵測的模型。\n\n在 cjpais/Handy 依官方 README 的安裝入口執行範例,檢查 README 指定的設定檔、命令輸出、退出碼與日誌;針對 Handy 的主要功能記錄實際產物,文件未說明的行為不延伸推論。

Handy:架構與底層函式庫(2)

Handy 是基於 Tauri 建構的應用。前端使用 React 與 TypeScript,並採用 Tailwind CSS 建構設定介面;後端使用 Rust 處理系統整合、音訊處理和機器學習推論。核心函式庫包括:用於透過 GGML/GGUF 執行 Whisper 系列模型的 transcribe-cpp,用於 Parakeet 模型的 transcribe-rs,跨平台音訊 I/O 的 cpal,語音活動偵測的 vad-rs,全域鍵盤快捷鍵的 rdev,以及音訊重取樣的 rubato。README 也記錄了進階除錯模式,macOS 上透過 Cmd+Shift+D 存取,Windows/Linux 上透過 Ctrl+Shift+D 存取。\n\n在 cjpais/Handy 依官方 README 的安裝入口執行範例,檢查 README 指定的設定檔、命令輸出、退出碼與日誌;針對 Handy 的主要功能記錄實際產物,文件未說明的行為不延伸推論。(Handy 本節補充)

Handy:安裝管道與打包說明(3)

發行版本發佈在 GitHub releases 頁面和專案網站上。macOS 使用者可以透過 Homebrew cask 安裝,命令為 `brew install --cask handy`;Windows 使用者可以透過 winget 安裝,命令為 `winget install cjpais.Handy`。README 指出這些套件並非由 Handy 開發者維護。安裝後,應用需要麥克風和輔助功能權限,使用者需在設定中設定鍵盤快捷鍵。對於從原始碼建構,README 指向 BUILD.md 以取得特定平台的建構要求。\n\n在 cjpais/Handy 依官方 README 的安裝入口執行範例,檢查 README 指定的設定檔、命令輸出、退出碼與日誌;針對 Handy 的主要功能記錄實際產物,文件未說明的行為不延伸推論。(Handy 本節補充)

Handy:平台支援與系統需求(4)

README 列出了對 macOS(Intel 和 Apple Silicon)、x64 Windows 和 x64 Linux 的支援。對於 Whisper 模型,macOS 需要 M 系列或 Intel Mac;Windows 和 Linux 需要 Intel、AMD 或 NVIDIA GPU。對於 Parakeet V3,該模型僅支援 CPU,要求至少 Intel Skylake(第六代)或等效的 AMD 處理器。README 報告在中階硬體(在 i5 上測試)上執行速度約為即時速度的 5 倍,並支援自動語言偵測,無需手動選擇。這些是建議而非保證;README 表示在不滿足要求的機器上效能可能會下降。\n\n在 cjpais/Handy 依官方 README 的安裝入口執行範例,檢查 README 指定的設定檔、命令輸出、退出碼與日誌;針對 Handy 的主要功能記錄實際產物,文件未說明的行為不延伸推論。(Handy 本節補充)

Handy:已知問題與 Linux 特定限制(5)

Handy 正在積極開發中,README 列出了幾個已知問題。Whisper 模型在某些 Windows 和 Linux 設定上可能當機,問題取決於設定;開發者被要求提供除錯日誌來幫助修復。Wayland 支援有限,需要 `wtype` 或 `dotool` 才能正確輸入文字;沒有這些工具時,Handy 會回退到 enigo,其相容性可能有限。在 Linux 上,錄音覆蓋層可能會干擾貼上;README 建議在進階設定中將 Overlay Position 設定為 None。對 libgtk-layer-shell.so.0 的執行時依賴可能導致啟動失敗,並提供了各發行版的安裝命令。\n\n在 cjpais/Handy 依官方 README 的安裝入口執行範例,檢查 README 指定的設定檔、命令輸出、退出碼與日誌;針對 Handy 的主要功能記錄實際產物,文件未說明的行為不延伸推論。(Handy 本節補充)

Handy:遠端控制、CLI 參數與 Wayland 整合(6)

Handy 支援命令列參數來控制正在執行的實例和自訂啟動行為。遠端控制參數包括 `--toggle-transcription`、`--toggle-post-process` 和 `--cancel`;啟動參數包括 `--start-hidden`、`--no-tray`、`--debug` 和 `--help`。在 macOS 上以應用程式套件方式安裝時,二進位檔位於 `/Applications/Handy.app/Contents/MacOS/Handy`。在 Linux 上,外部熱鍵守護行程可以透過 `pkill -USR2 -n handy` 或 CLI 參數觸發 Handy;README 提供了 GNOME、KDE Plasma、Sway/i3 和 Hyprland 的設定範例。它還警告說舊版本監聽了 SIGUSR1,這與 WebKitGTK 內部對該訊號的使用衝突,導致幻影錄音;該處理程式已被移除。\n\n在 cjpais/Handy 依官方 README 的安裝入口執行範例,檢查 README 指定的設定檔、命令輸出、退出碼與日誌;針對 Handy 的主要功能記錄實際產物,文件未說明的行為不延伸推論。(Handy 本節補充)

Handy:模型安裝、自訂模型與簽章驗證(7)

對於位於代理或受限網路之後的使用者,README 記錄了手動模型安裝方法。模型檔案放置在應用程式資料目錄(macOS 為 `~/Library/Application Support/com.pais.handy/`,Windows 為 `C:\Users\{username}\AppData\Roaming\com.pais.handy\`,Linux 為 `~/.config/com.pais.handy/`)下的 `models` 子資料夾中。Whisper 的 `.bin` 檔案和 Parakeet 的 `.gguf` 檔案直接放在該資料夾;Parakeet 的 `.tar.gz` 壓縮包必須解壓縮到名稱精確的目錄,如 `parakeet-tdt-0.6b-v3-int8`。Handy 也會辨識 Hugging Face 快取中已有的 GGUF 模型。放置在模型目錄中的自訂 Whisper GGML 模型會自動被發現並顯示在 Custom Models 下。發行工件使用 Tauri 的更新器簽章格式簽名;公鑰儲存在 `src-tauri/tauri.conf.json` 中,驗證使用 `minisign`,而不是 `gpg`。\n\n在 cjpais/Handy 依官方 README 的安裝入口執行範例,檢查 README 指定的設定檔、命令輸出、退出碼與日誌;針對 Handy 的主要功能記錄實際產物,文件未說明的行為不延伸推論。(Handy 本節補充)\n\nHandy 的核對應落在具體檔案與結果:確認命令是否成功、輸出是否符合 README 的描述、資料是否寫入預期位置,以及重跑時是否能解釋差異。第 1 次記錄仍應保留 cjpais/Handy 的版本、設定鍵和日誌關鍵行,避免只憑介面印象作決定。\n\nHandy 的核對應落在具體檔案與結果:確認命令是否成功、輸出是否符合 README 的描述、資料是否寫入預期位置,以及重跑時是否能解釋差異。第 2 次記錄仍應保留 cjpais/Handy 的版本、設定鍵和日誌關鍵行,避免只憑介面印象作決定。\n\nHandy 的核對應落在具體檔案與結果:確認命令是否成功、輸出是否符合 README 的描述、資料是否寫入預期位置,以及重跑時是否能解釋差異。第 3 次記錄仍應保留 cjpais/Handy 的版本、設定鍵和日誌關鍵行,避免只憑介面印象作決定。\n\nHandy 的核對應落在具體檔案與結果:確認命令是否成功、輸出是否符合 README 的描述、資料是否寫入預期位置,以及重跑時是否能解釋差異。第 4 次記錄仍應保留 cjpais/Handy 的版本、設定鍵和日誌關鍵行,避免只憑介面印象作決定。\n\nHandy 的核對應落在具體檔案與結果:確認命令是否成功、輸出是否符合 README 的描述、資料是否寫入預期位置,以及重跑時是否能解釋差異。第 5 次記錄仍應保留 cjpais/Handy 的版本、設定鍵和日誌關鍵行,避免只憑介面印象作決定。\n\nHandy 的核對應落在具體檔案與結果:確認命令是否成功、輸出是否符合 README 的描述、資料是否寫入預期位置,以及重跑時是否能解釋差異。第 6 次記錄仍應保留 cjpais/Handy 的版本、設定鍵和日誌關鍵行,避免只憑介面印象作決定。

編輯結論

Handy 適合需要 A free, open source, and extensible speech-to-text application that works completely offline. 所涵蓋能力,且能管理 README 所列依賴與設定的人;不適合把範例直接視為生產保證的團隊。先執行:在 cjpais/Handy 依官方 README 的安裝入口執行範例,檢查 README 指定的設定檔、命令輸出、退出碼與日誌;針對 Handy 的主要功能記錄實際產物,文件未說明的行為不延伸推論。 再依命令輸出、檔案與日誌決定是否納入正式流程。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記