ハクソク

世界を動かす技術を、日本語で。

Handy – 無料のオープンソース音声認識アプリ

概要

Handyは完全オフラインで動作する、無料かつオープンソースの音声認識アプリケーション。
プライバシー重視で、ユーザーの音声データをクラウド送信しない設計。
クロスプラットフォーム対応(Windows、macOS、Linux)。
WhisperやParakeetなど複数の音声認識モデルを選択可能。
開発・拡張性が高く、コミュニティ貢献も歓迎。

Handyとは

  • Handy完全無料オープンソース拡張性重視音声認識アプリケーション
  • **Tauri(Rust + React/TypeScript)**で構築、クロスプラットフォーム対応
  • ショートカットキーで録音開始、話した内容が任意のテキストフィールドに自動貼り付け
  • 音声データは全てローカル処理、クラウド送信一切なし
  • シンプル設計で「話した内容をテキスト化し貼り付ける」という一つの役割に特化
  • 最もフォークしやすい音声認識アプリを目指す

主要機能と仕組み

  • ショートカットキーで録音開始/停止(Push-to-talkモードあり)
  • 録音中に話すだけでテキスト化
  • WhisperParakeet V3など多様な音声認識モデル選択
    • Whisper:GPUアクセラレーション対応
    • Parakeet V3:CPU最適化、言語自動判別
  • **VAD(Voice Activity Detection)**による無音区間の自動除去
  • ローカル処理のみでプライバシー保護を徹底
  • Windows、macOS、Linux対応

インストールと初期設定

  • 公式リリースページまたはWebサイトから最新版をダウンロード
  • プラットフォーム別の手順でインストール
  • マイク・アクセシビリティ権限を付与
  • 設定画面でショートカットキーをカスタマイズ
  • すぐに音声認識を利用開始

アーキテクチャ

  • フロントエンド:React + TypeScript + Tailwind CSS
  • バックエンド:Rust(システム統合・音声処理・ML推論)
  • 主要ライブラリ
    • whisper-rs:Whisperモデルによる音声認識
    • transcription-rs:ParakeetモデルによるCPU最適化音声認識
    • cpal:クロスプラットフォーム音声I/O
    • vad-rs:音声活動検出
    • rdev:グローバルショートカット・システムイベント
    • rubato:音声リサンプリング

デバッグモード

  • 高度なデバッグモード搭載
    • macOS:Cmd+Shift+D
    • Windows/Linux:Ctrl+Shift+D

既知の問題・制限事項

  • Whisperモデルのクラッシュ(一部Windows/Linux環境で発生、要デバッグ協力)
  • Waylandサポート(Linux):限定的、wtypeまたはdotoolのインストール推奨
  • Linuxでの入力補助ツール
    • X11:xdotool推奨
    • Wayland:wtypeまたはdotool推奨(inputグループへのユーザー追加が必要)
  • 録音オーバーレイ:Linuxでは一部コンポジタで貼り付け失敗の可能性
  • 環境変数WEBKIT_DISABLE_DMABUF_RENDERER=1で一部問題回避可
  • グローバルショートカットは外部ツールからも制御可能(SIGUSR2シグナル送信)

プラットフォーム・システム要件

  • 対応OS
    • macOS(Intel/Apple Silicon)
    • Windows x64
    • Linux x64
  • 推奨要件
    • Whisperモデル:MシリーズMac、Intel/AMD/NVIDIA GPU、Ubuntu 22.04/24.04
    • Parakeet V3モデル:Intel Skylake(第6世代)以上、CPUのみで動作

今後のロードマップ・開発中機能

  • デバッグログのファイル出力
  • macOS向けキーボード改善(Globeキー対応、ショートカット処理の再設計)
  • オプトイン型匿名利用統計(プライバシー重視で明確な設定可)
  • 設定システムのリファクタリング
  • Tauriコマンドパターンの整理・型安全化検討

オフラインモデル手動インストール手順

  • ネットワーク制限環境向けの手動導入
    • アプリデータディレクトリの特定(設定→About、またはデバッグメニュー)
      • macOS: ~/Library/Application Support/com.pais.handy/
      • Windows: C:\Users{username}\AppData\Roaming\com.pais.handy\
      • Linux: ~/.config/com.pais.handy/
    • modelsフォルダ作成
    • モデルファイルを公式URLからダウンロードし配置
      • Whisperモデル(.binファイル):そのままmodels直下に配置
      • Parakeetモデル(.tar.gzアーカイブ):解凍し、規定ディレクトリ名でmodels直下に配置
    • Handy再起動で認識、設定画面からモデル選択
    • ファイル名・ディレクトリ名は厳密に指定通り

コントリビューション方法

  • GitHub Issue(github.com/cjpais/Handy/issues)で課題確認
  • リポジトリをフォークし、フィーチャーブランチ作成
  • 対象プラットフォームで十分なテスト
  • プルリクエスト提出(変更内容の明確な説明必須)
  • ディスカッション参加・連絡先:contact@handy.computer

関連プロジェクト・ライセンス・謝辞

  • Handy CLI:Python製コマンドライン版
  • handy.computer:公式サイト(デモ・ドキュメント)
  • MITライセンス採用
  • 主要技術・プロジェクト協力
    • Whisper by OpenAI
    • whisper.cpp / ggml
    • Silero
    • Tauri
    • コミュニティコントリビューター

完璧な音声認識アプリを探す旅はここで終了。Handyは“あなた仕様”に作り変えられるから。」

Hackerたちの意見

これ、めっちゃいいね!Wispr Flowから乗り換えるために必要なのは、よく間違えられる単語(会社名、人名、コードライブラリなど)の辞書を提供できる機能かな。
「カスタムワード」っていう機能があるみたいだけど、これが君が言ってることかも。まだこの機能はちゃんと試してないけど。
いくつかのモデルが、自信の度合いを示す機能を持ってるのがいいね。特別な単語を手動で入力するのは大丈夫だけど、出力を見て、モデルがあまり自信がなかった単語を確認したいんだ。それを元に、何を追加する必要があるか調べられるから。
これに関するPRがあって、すぐに取り込まれる予定だよ。もしプリリリース版をダウンロードしたいなら、そのPRのビルドを始められるよ。
もう誰かがこれを https://github.com/HeroTools/open-whispr と比較した人いる?説明を見る限り、すごく似てるみたい。Handyの初リリースは2025年6月で、OpenWhisprはその1ヶ月後。Handyは約11,000のGitHubスターがあって、OpenWhisprは約730だね。
試してみたけど、HandyをmacOSアプリとしてインストールするのが、npmコマンドを常に実行するよりもずっと簡単なんだ。数ヶ月前にチェックしたとき、パラキートモデルがなかったから、使うのをやめたんだと思う。確か、UIもあまりスムーズじゃなかった気がする。でもHandyのUIはすごくクリーンでミニマルだから、何をすればいいか、どこに行けばいいかがいつも分かる。確かにいくつかの高度な機能は欠けてるけど、正直、もう2ヶ月使ってるけど、他のSTTアプリを探すことはなかったよ。
僕はジストニアを持っていて、腕が固まってキーボードを打つのが不可能になることがよくあるんだ。SuperWhisperみたいなTTSアプリは、そういう時にすごく助かってる。だから「Handy」でも同じような体験ができることを期待してる(僕的にはすごく適切な名前だと思う)。でも、これらのTTSツールが次のレベルに進化する方法があるのか気になる。生成されたテキストは、ただの逐語的なコピーじゃなくて、文脈に応じて詳しく説明してほしい。例えば、もしカーソルがエディタやIDEの中にあって、コードがある場合、コーディング関連の音声プロンプトがそのIDEで正しいコードを生成するようにしてほしい。もしかしたら、TTSとコンピュータの使い方を組み合わせる感じかもね。
君が言ったことは、音声認識ツールの出力をLLMに渡すことで可能だよ。LLMに君が達成したいことを理解させて、アクションのセットを作成させることができる。CLIなら簡単で、音声コマンドを実行可能なシェルコマンドに翻訳できる。GUIだと少し複雑だけど、LLMエージェントが画面に何が表示されているかを知る必要があるからね。さっき言ったCLIの部分はもう実現可能だよ。例えば、macOSにはMacWhisperっていうアプリがあって、音声入力の出力をOpenAI互換のエンドポイントに送れるんだ。
君の言うことに完全に同意するし、君が説明してることが、僕がHandyをオープンソースにした理由の一つだよ。こういうものを見たいし、誰かが実験して実現してくれるのを期待してる。小さなローカルモデル(moondreamやqwen)を使って、コンピュータ自体の文脈をもっと得ようとしている人たちも聞いたことがある。僕は指を骨折してギプスをしていた時に、Handyにたくさんのキーボードショートカットを設定していたんだ。これで、ショートカットが特定のアプリに明確なユースケースでマッピングできる最もシンプルな形の文脈を試すことができたんだ。
LLMが登場するずっと前から「音声でコーディング」についての研究はたくさんあったよ。例えば(2013年のもの): http://xahlee.info/emacs/emacs/using_voice_to_code.html と、その関連のHNディスカッション(「キーボードよりも早く音声でコーディングする」): https://news.ycombinator.com/item?id=6203805 それに、最近の研究もあるよね、例えば https://dl.acm.org/doi/fullHtml/10.1145/3571884.3597130
`ultraplan`っていうものを作ったんだ。これはCLIツールで、マルチモーダルなコンテキスト(ローカルWhisperによる音声転写、スクリーンショット、クリップボードの内容など)をAIエージェントが使えるタイムラインに記録するんだ。CLIを実行する`/record`というClaudeスキルがあって、新しい録音を始めるんだ。デバッグやリサーチをして、最後に「finito」って言うと(好きなストップワードを選んでね)、音声転写とスクリーンショット、コピーしたテキストが交互に入ったマークダウンファイルが出力されるよ。「marco」みたいな他のキーワードを言うと、ハンズフリーでスクリーンショットを撮ってくれる。セッションが終わると、Claudeがタイムラインを見て作業を始めるんだ。もし誰かが使うなら、整理してGitHubにアップできるよ。
最高だね。STTアプリを何週間も探してたんだけど、どのアプリも一回払いか月額課金だったんだ。バックエンドが小さなモデルで動いてるのに、払わなきゃいけないのはちょっとおかしいなって思ったから、自分で作ろうかなって考えた。でも「Handy」を見つけて、それが本当に素晴らしい相棒になったよ。超速いし、シンプルで、邪魔にならないし、常にアップデートされてる。大好きだよ。作ってくれてありがとう!ほんと感謝!追記:君が言ってたポストプロセッシング、めっちゃいいと思うんだけど。
いくつか試したけど、これを含めて、最終的にVoiceInk(ローカル、一回払い)に落ち着いたよ。Parakeet V3を使うと、驚くほど速い(ほぼ瞬時)し、LLMsやコードエージェントと話すのに十分な精度があるんだ。Whisper Turbo3に対するわずかな精度の低下は気にする必要がないし、彼らは「行間を読む」ことができるからね。普段はCLIエージェントにカジュアルに話しかけて、「君が理解したことを言い返して」と頼むんだけど、ほぼいつもきれいで明確なバージョンを出してくれる。これが理解の確認にもなって、エージェントを軌道に乗せるのに役立ってると思う。アップデート - HandyをParakeet V3で試してみたけど、これもすごく良く動くから、しばらくVoiceInkの代わりに使うつもり。あと、「debug」UIをCmd-shift-Dでオンにすると、ポストプロセッシングやトレーリングスペースを追加するオプションが表示されるのも発見したよ。
これらのモデルのうちのどれかがプログラミング用に微調整されてたらいいのに。「cd ~/projects」や「git push --force」みたいなことが言えるようになりたい。
macOS用のFluidVoiceも結構便利だよ。Apacheライセンスのオープンソースだし。 https://altic.dev/fluid https://github.com/altic-dev/FluidVoice
UIの雰囲気がちょっと複雑すぎる気がする。
すごくいいよ、使ってる。2つリクエストがあるんだけど、1. iOSアプリ 2. ミーティングの転写やマイクからの音声をルーティングするためのAPIオプションが欲しい。
ミーティングの転写に+1!
注意喚起のユーザー体験レポート。ダウンロード時のデフォルトホットキーはctrl+space。押すと録音が始まり、離すと文字起こしして挿入される。スペースキーを離すのがホットキーの解除になる。挿入が完了したときにctrlキーがまだ押されていると、文字起こしされたテキストはctrl文字として扱われる。テストアプリはemacsだった。(x64 linux x11、xdotoolありなし)
大ファン!Parakeet v3はこれと相性抜群だよ。過去にMonologue、Superwhisper、Aquaをいろいろ使ってきたけど、Handyも負けてないし、そんなに高いサブスクリプションじゃないのがいいね。ローカルで動くのも好き。強くおすすめするよ!
言及された文字起こしツールSuperwhisperについての簡単な感想 — 長いこと使ってるよ。生涯サブスクリプションのある有料版。機能がたくさんあるし、言語モデルも追加料金なしで組み込まれてる。個人開発者がすごいけど、たまにバグや後退を避けるためにアップグレードを先延ばしにするかも(だって、複雑なソフトウェアだからね)。それぞれ数分試してみたけど、Hexはこのスレッドで言及されてる中で一番スリム(&クリーン)な無料オプションに感じた。Fluid Voiceは、話している間に自分のスピーチをリアルタイムで見ることができるユニークな機能を提供してる!Superwhisperにもあるけど、オンラインモデルだけ。Fluidでは全体の文字起こしは見れないけど、録音ウィンドウは一度に約一文しか表示されない(もちろん、ディクテーションが終われば全部見ることができる)。Handyは、ピンクでかわいい。履歴ウィンドウが好き。クリップボードの扱いについては、「クリップボードを変更しない」設定は「クリップボードを復元する」設定に近いかも。Hexほど多くの権限はいらないけど、クリップボードのアイテムを少し移動させることができるから、間違ってなければね。Hexは他のアプリをインストールしたことでちょっと不満そうだった…インストールの合間にたくさん再起動したし。それぞれに何かしらの良さがあるよ。--- NvidiaがParakeetをオープンソースにしてくれたことに大感謝!これらのアプリはどれも超速い。あと、カーソルに文字起こしをストリーミングしたり、Fluid(またはオンラインのsuperwhisper)みたいにライブで見ることができるのも好き。モデルが正確さのためにファイル全体を文字起こしするから、複雑なのは分かってる。(リアルタイムで低品質の文字起こしを見て、最後に高品質のバージョンがペーストされるのを待つのは全然OKだよ。)