- Handyは、完全オフラインで動作する無料のオープンソース音声テキスト変換デスクトップアプリで、プライバシー重視の設計を備えている
- Tauri(Rust + React/TypeScript) ベースで作られており、ショートカットキーを押して話すと音声がそのままテキストフィールドに入力される構造
- WhisperとParakeet V3モデルをサポートし、GPUアクセラレーションまたはCPUベースでローカル音声認識を実行
- Windows、macOS、Linuxのすべてで動作し、拡張性とフォークのしやすさを重視した構造で開発者の貢献を促進
- クラウド送信なしでローカル処理されるプライバシー重視の音声入力ツールであり、アクセシビリティとカスタマイズ性が高い
概要
- Handyは、無料・オープンソース・拡張可能な音声認識アプリケーションで、インターネット接続なしで完全オフライン動作する
- Tauriフレームワークをベースに、RustバックエンドとReact/TypeScriptフロントエンドを組み合わせている
- ユーザーはショートカットキーを押して話し、手を離すとWhisperまたはParakeet V3モデルが音声をテキストに変換して現在のアプリに貼り付ける
- すべての音声データはローカルで処理されるため、個人情報漏えいのリスクがない
Handyの哲学
- 無料: アクセシビリティツールは誰でも使えるべき
- オープンソース: 誰でも機能を拡張し改善できる
- プライバシー保証: 音声データはクラウドに送信されない
- シンプルさ: 1つの目的、つまり音声をテキストに変換する機能に集中
- 目標は「最も完璧な」アプリではなく、「最もフォークしやすい」アプリを作ること
動作方式
- ユーザーはショートカットキーで録音を開始・停止するか、プッシュツートークモードを使える
- Silero VADで無音区間をフィルタリングし、WhisperまたはParakeet V3モデルで音声を変換
- Whisperモデル: Small、Medium、Turbo、Largeバージョンを提供、GPUアクセラレーション対応
- Parakeet V3: CPU最適化、自動言語検出機能を含む
- 変換されたテキストは、使用中のアプリケーションの入力欄に自動挿入される
- Windows、macOS、Linuxをすべてサポート
アーキテクチャ
- フロントエンド: React + TypeScript + Tailwind CSS
- バックエンド: Rustベースで、オーディオ処理と機械学習推論を担当
- 主要ライブラリ
whisper-rs: Whisperモデルのローカル音声認識
transcription-rs: ParakeetモデルのCPU認識
cpal: オーディオ入出力
vad-rs: 音声アクティビティ検出
rdev: グローバルショートカットとシステムイベント処理
rubato: オーディオリサンプリング
- デバッグモード:
Cmd+Shift+D(macOS) または Ctrl+Shift+D(Windows/Linux) でアクセス可能
既知の問題と制限事項
- Whisperモデルのクラッシュ: 一部のWindows/Linux環境でモデルがクラッシュする問題がある
- Waylandサポートの制限: LinuxのWayland環境では
wtype または dotool のインストールが必要
- テキスト入力ツール
- X11:
xdotool
- Wayland:
wtype または dotool
- ツール未インストール時は
enigo で代替されるが、互換性に制限がある
- Linuxオーバーレイ無効化のデフォルト設定: フォーカス競合を防ぐため、デフォルトでオフになっている
システム要件
- Whisperモデル向け
- macOS: MシリーズまたはIntel Mac
- Windows/Linux: Intel、AMD、NVIDIA GPU (Ubuntu 22.04/24.04推奨)
- Parakeet V3モデル向け
- CPU専用、Intel Skylake(第6世代)以降を推奨
- 中級クラスのハードウェアでリアルタイム比約5倍の速度
- 自動言語検出機能を含む
開発ロードマップ
- 進行中の機能
- デバッグログファイルの追加
- macOSショートカット改善 (Globeキー対応、グローバルショートカット処理の書き直し)
- 任意の分析機能: 匿名の利用データ収集、明示的な同意ベース
- 設定システムのリファクタリングと抽象化の改善
- Tauriコマンド構造の整理と型安全性の向上
トラブルシューティングと手動モデルインストール
- ネットワーク制限環境では、モデルを手動でダウンロードおよびインストールできる
- アプリデータディレクトリ内に
models フォルダを作成し、モデルファイルを配置
- Whisperモデル:
.bin ファイルを直接コピー
- Parakeetモデル:
.tar.gz を展開後、指定フォルダ名を維持
- インストール後にアプリを再起動すると、モデルを自動認識
貢献方法
- GitHub Issueを確認後、フォークしてブランチを作成
- 対象プラットフォームで十分にテストした後、Pull Requestを提出
- メール(contact@handy.computer) または Discord を通じてコミュニティに参加可能
- 目標は、シンプルでよく構造化されたコードベースを通じてコミュニティが発展させられる土台を提供すること
関連プロジェクトとライセンス
- Handy CLI: Pythonベースのコマンドライン版
- handy.computer: 公式ウェブサイトとデモを提供
- MITライセンスで配布
- Whisper(OpenAI)、Silero、Tauri などのオープンソースプロジェクトに基づく
引用文
- 「Handyは完璧だからではなく、あなたが完璧にできるから、音声認識ツール探しを終えられる」
1件のコメント
Hacker Newsのコメント
Parakeet V3 と組み合わせるとほぼ即時に反応し、精度も十分高い
自分はCLIエージェントに話しかけて、「私の発話をどう理解したか教えて」と頼むルーチンをよく使っている
こうすると認識確認にもなるし、ある種の仕様書の役割も果たす
最近は Handy + Parakeet v3 の組み合わせも試したが、とてもよく動くので数日間はこれで使ってみる予定
Cmd‑Shift‑D で「debug」UIを開くと、後処理(post‑processing)や空白追加のような追加オプションも見られる
「cd ~/projects」や「git push --force」のようなコマンドを声で入力したい
そのため SuperWhisper のようなTTSアプリにはとても助けられてきた
Handyにも同じような体験を期待している
ただ、次の段階に進むには、単に音声をテキストに変換するだけでなく 文脈ベースの拡張 が必要だと思う
たとえばIDEの中でコードを話したら、実際のコードが生成されるような形だ
結局はTTSとコンピュータ操作を組み合わせる方向になる
ultraplanというCLIツールを作ったローカルのWhisperで音声を記録し、スクリーンショットやクリップボード内容などを タイムライン形式で保存 する
その後、Claude Code のようなエージェントがこのタイムラインを読んで作業を引き継ぐ
「marco」と言うとスクリーンショットを撮るなど、ハンズフリー操作 も可能
望む人がいればGitHubに整理して公開できる
小さなローカルモデル(moondream、qwen など)を使って、コンピュータの文脈を把握しようとする実験もしている
以前、指を骨折したときにショートカットをHandyに割り当てて、簡単な文脈制御を実装してみた
たとえば Using Voice to Code Faster than Keyboard のような2013年の事例がある
最近の研究では この論文 もある
STTの出力をLLMに入力すれば、意図を理解して コマンドセット を生成できる
CLIでは音声コマンドをそのままシェルコマンドに変換するのは簡単だ
GUIでは画面状態を把握する必要があるので少し複雑になる
macOSの MacWhisper は書き起こしたテキストをOpenAI互換エンドポイントへ送れる
Superwhisper は有料だが生涯サブスクオプションがあり、機能も多い。個人開発者が保守しているので、ときどきバグがある
Hex は最も軽量でクリーンな無料オプション
Fluid Voice には、話している最中にリアルタイムでテキストを表示するユニークな機能がある
Handy はピンク色のUIがかわいく、履歴ウィンドウが気に入っている。クリップボード復元設定はやや独特
いくつものアプリを入れ替えてインストールしていたら、多少競合が起きた
NvidiaがParakeetをオープンソース化 したおかげで、どれも非常に高速だ
私はリアルタイム文字起こしストリーミング機能が好みだ。低品質でもまず即座に見えて、後から高品質版に置き換わる方式がよい
たいていは有料かサブスク型だったので自分で作ろうかとも考えたが、Handy は 高速でシンプルで邪魔にならない
しかも継続的に更新されていて本当に満足している
後処理(post‑processing)機能も良さそうだ
手動で単語を追加するのもよいが、不確かな単語を示してくれれば補完しやすそうだ
デフォルトのショートカットは Ctrl+Space だが、キーを離した瞬間に文字起こしが挿入される
このとき Ctrl がまだ押されたままだと、書き起こされたテキストが Ctrl文字として扱われる
テスト環境は Linux x64、X11、Emacs だった
Monologue、Superwhisper、Aqua も使ってみたが、Handy は ローカル実行 でサブスク料金もない
強くおすすめする
説明を見る限り似ているように見える。Handy は2025年6月に最初のリリース、OpenWhispr は1か月後に公開された
Handy は GitHub Star が11k、OpenWhispr は730ほど
当時のOpenWhisprにはParakeetモデルがなく、UIも滑らかではなかった
Handy は ミニマルなUI のおかげで直感的に使える
高度な機能は足りないが、2か月使っていて他のSTTアプリを探すつもりはない
設定も適度にシンプルで使いやすい
「discharging the model」オプションが何なのか気になったが、RAMやCPUには影響しないように見える
アンロードするとメモリから外れるので、起動速度が遅くなる