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

Show HN: Ghost Pepper – macOS用ローカルホールドトーク音声認識テキスト変換

概要

Ghost Pepper は、macOS向けの 完全ローカル音声認識アプリControlキー長押し で録音、離すと文字起こし&ペーストを自動実行。 クラウドAPI不使用 ・データは一切外部送信なし。 Apple Silicon (M1+)専用 で最新macOSに対応。 オープンソースMITライセンス、フィードバックやPR歓迎。

Ghost Pepper:100%ローカル音声認識アプリ概要

  • macOS 14.0+、Apple Silicon (M1+) に対応した音声認識アプリ
  • Controlキー長押し で録音、キーを離すと自動で文字起こし&ペースト
  • 完全ローカル実行、クラウドAPIや外部送信なし
  • メニューバー常駐型 アプリ、Dock非表示、ログイン時自動起動
  • カスタマイズ性 :クリーニングプロンプト編集、マイク選択、機能ON/OFF切替
  • スマートクリーニング機能 :ローカルLLMがフィラーや自己修正を自動除去

技術詳細・搭載モデル

  • オープンソース音声モデル を自動ダウンロード&ローカルキャッシュ
    • Whisper tiny.en (~75MB) :英語のみ、最速
    • Whisper small.en (デフォルト, ~466MB) :英語のみ、最高精度
    • Whisper small (多言語, ~466MB) :多言語対応
    • Parakeet v3 (~1.4GB) :25言語対応
  • クリーニングモデル
    • Qwen 3.5 0.8B (デフォルト, ~535MB) :超高速(約1-2秒)
    • Qwen 3.5 2B (~1.3GB) :高速(約4-5秒)
    • Qwen 3.5 4B (~2.8GB) :高品質(約5-7秒)
  • WhisperKit で音声認識、 LLM.swift でクリーニング、 Hugging Face からモデル提供

使い方

  • アプリダウンロード :GhostPepper.dmgを取得
  • インストール :DMGを開き、Ghost PepperをApplicationsへドラッグ
  • 初回起動時 :マイク・アクセシビリティ権限を許可
  • 録音・文字起こし :Controlキー長押しで録音、離すと自動ペースト
  • ソースからビルド
    • リポジトリをクローン
    • XcodeでGhostPepper.xcodeprojを開く
    • Cmd+Rでビルド&実行

権限・セキュリティ

  • マイク :音声入力のために必要
  • アクセシビリティ :グローバルホットキー・ペースト機能用
  • データ管理
    • データは一切外部送信・ファイル保存なし
    • デバッグログもメモリのみ、アプリ終了時消去
    • ログイン時自動起動は初回デフォルト、設定で変更可能

エンタープライズ・管理端末対応

  • アクセシビリティ権限 は通常管理者権限が必要
  • MDM(Jamf, Kandji, Mosaic等) のPPPCペイロードで事前承認可能
    • Bundle ID: com.github.matthartman.ghostpepper
    • Team ID: BBVMGXR9AY
    • Permission: Accessibility (com.apple.security.accessibility)

その他・ライセンス

  • WhisperKit, LLM.swift, Hugging Face, Sparkle 等のOSS技術を活用
  • MITライセンス で100%オープンソース
  • データ完全ローカル、プライバシー保護重視
  • 他社が8,000万ドル調達した分野で無料提供 という“spicy”な挑戦

開発者メッセージ

  • 100%ローカル音声認識 アプリ開発への挑戦
  • コーディングやメール作成 など日常用途で活用
  • 音声インターフェース として他エージェント連携も実験中
  • フィードバック・PR・アイディア 大歓迎

Hackerたちの意見

シェアしてくれてありがとう!ローカルのスピードとプライバシーに重点を置いてるのがいいね。Hex(https://github.com/kitlangton/Hex)を使ってるんだけど、同じような目標を持ってると思う。比較するとどう思う?

いいね!Linuxの人たち向けに、https://github.com/goodroot/hyprwhsprを開発したよ。Linuxでは最新のCohere Transcribeモデルにアクセスできて、めっちゃうまく動くよ。ただ、GPUが必要だけどね。大きなローカルモデルは、クリーンアップ用のサブモデルが必要ないことが多いよ。WhisperKitをfaster-whisperや似たようなものと比べたことある?turbov3をうまく動かせれば、クリーンアップの必要がなくなるかも。ちなみに、AppleがネイティブのSTTでこれを一気に吹き飛ばすのを待ってるところだよ。 :)

シェアしてくれてありがとう!実際、これを作る準備をしてたところだったんだ。これで作らなくて済むみたい!PTTにフットペダルを使うことを考えたことある?AppleはすでにネイティブのSTTを持ってるけど、何故かまだまともなモデルを使ってないんだよね。

自分はm2 maxで自己ホストのエンドポイントを通してwhisper large-v3を動かしてるけど、正直、精度が良すぎてクリーンアップモデルを使うのをやめちゃったよ。長い音声のレイテンシーが一番のストレスで、30秒を超えるとメタルアクセラレーションがあってももっさり感じるんだ。whisperkitは具体的には試してないけど、フルモデルと比べて長い音声をどう扱うのか気になるな。

これって、もっと確立された https://github.com/cjpais/handy と比べてどうなの?どちらの選択肢にも際立った特徴はある?既存のソフトを使ったり改善したりするのではなく、自分で作った理由は何だったの?

Hyprlandにほぼ同じ名前のやつがあるみたいだね。それに、nixpkgsにあったら、ほぼ永遠にビルドできるって保証されるのにね =)

それはすごいね!Handyと比べてどうなのか知ってる?Handyもオープンソースでローカル専用だよ。結構前からあって、私も使ってるやつだよ。https://github.com/cjpais/handy

私もHandyが大好きでしばらく使ってるよ。モバイルアプリ用にこれが必要だと思うけど、無料のアプリはないし、ネイティブの音声入力は完全にローカルじゃないし、あんまり良くないよね。

Handyは最高だよね!Claude Codeが音声サポートを追加する前に、かなりの間使ってたよ。しっかりしたソフトウェアで、LinuxとMacの統合もすごく良い。Parakeetモデルにも注目だね、比較的メモリ要件が控えめなのに、すごく速くて安定したモデルだよ。

Handyは素晴らしいね。

Handyがあるのに、Ghost-Pepperを開発するきっかけが何だったのかも気になるな。最近のものに見えるし、Handyは結構好評だしね。さらにボーナスとして、Handyは自動LLMポストプロセッサーを追加できるのが便利なんだ。Parakeet V3モデルでは、単語を繰り返したり、認識エラーを起こすことがあるから、例えば一つの単語を何十回も認識しちゃうことがあるんだよね。

ソフトウェアエンジニアとして一日中Handyを使ってるし、チームのみんなにも勧めたよ。大好きなんだ。

Handyは素晴らしいプロジェクトで、めっちゃおすすめだよ。うちのエンジニアやPMたちも使ってる!HandyのクリエイターCJが最近、Mozilla.aiのBuilder in Residenceとして参加したんだ。ローカルのスピーチ・トゥ・テキスト(や他のマルチモーダル)モデルをもっと軽量なアプローチで展開したい人は、llamafileもチェックしてみてね。whisperfileが含まれていて、これはwhisper.cppとcosmopolitanフレームワークを使った単一ファイルの実行可能ファイルなんだ。両プロジェクトの間に橋を架けられたらいいなと思ってるよ。 https://github.com/mozilla-ai/llamafile

大好き!いつもオープンコードを使ってエージェントとコミュニケーションしてるよ。

うん、HandyのおかげでWispr Flowのローカルオープンソースの代替を探すのをやめたよ。Glimpseにも感謝を伝えたいな。https://github.com/LegendarySpy/Glimpse

いろんなwhisper関連のものを見かけるね。これって昔のOpenAIのwhisperと同じものなの?それとも大幅にアップデートされたのかな?私はparakeet v3を使ってるけど、素晴らしいし、サイズも小さいよ。まだwhisperが出回ってるのが不思議なんだけど、開発がたくさん進んでるのにね。

同じく、家のアシスタント用に音声からテキストへのkokoroも使ってるし、Mac OSのParakeetもVoice Ink経由で使ってるよ。それに、Vibeで自分のGrapheneOSのスマホから同じParakeet Piperサーバーを使う方法も作ったんだ。https://zach.codes/p/vibe-coding-a-wispr-clone-in-20-minutes

Whisperはやっぱり信頼できるね。新しいモデルよりも幻覚を起こしにくいし、動かすのも簡単(AMD GPUでwhisper.cpp経由で)だし、Parakeetよりも約2倍遅いだけだよ。ParakeetをNemoなしのPyTorchに「ポート」してGPUで動かそうとしたけど、結局数日後にはWhisperに戻っちゃった。

Whisperは多くの言語で非常に良いよ。小型からターボまでいろんなバリエーションがあって、いろんなシステムプロファイルに合うんだ。それが独自性であり、置き換えが難しい理由だね。

こういうの結構見るけど、個人的には自分の声に合わせてモデルを微調整できる機能が決定的だと思う。例えば、名前が「Donold」(ドナルドみたいに発音する)だったら、その名前を正しく書き取るトランスクリプションモデルは存在しないんだよね。だから、名前やメールアドレスを入力するのは諦めた方がいい。絶対に正しく出力されないから。自分の話し方の微妙なニュアンスや、よく使う業界用語と組み合わせれば、もっと役立つツールになると思う。音声データに合った最も一般的な単語を予測するオプションはたくさんあるけど、「自分の最も一般的な単語を予測する」設定は見つけられなかったな。

「修正」機能は、ほとんどの業界用語や誤字のケースでうまく機能することが分かったよ。試してみて、エッジケースがあれば教えてくれる?

Whisperはプロンプトをサポートしてるから、「Donold」をそこに入れられるよ。https://developers.openai.com/cookbook/examples/whisper_prom...

私の経験では、Aqua voiceはカスタム辞書や置き換えを使ってうまくやってくれるよ。

スピーチ・トゥ・テキストは、特にLLMやコーディングエージェントに詳細なプロンプトを伝えるための開発フローに欠かせない存在になったよ。プラットフォーム別に最高のオープンソース音声入力ツールを集めた素晴らしいGitHubリポジトリを作ったから、みんな役立ててくれるといいな! https://github.com/primaprashant/awesome-voice-typing

このスレッドは、独自に同じmacOSのスピーチ・トゥ・テキストアプリを作った人たちのサポートグループだよ。

20代の頃に戻って、ポートフォリオのためにたくさんの無償の仕事をしたいなぁ。

ある晩、自分で音声入力ツールを作ったんだけど、その後に考えられたKeyVoxを見つけて、クリエイターと話すことになったんだ。お互いにアイデアが溢れ出てるよ。 https://github.com/macmixing/keyvox/

/r/macappsのサブレディットでは、新しいアプリの投稿が大量に増えてるけど、「whisper dictation」は最も飽和状態のカテゴリーの一つだね。[0] >「比較」 - これが最も重要な部分だよ。最も飽和したカテゴリー(whisper dictation、クリップボードマネージャー、壁紙アプリなど)のアプリは、既存のソリューションとの差別化を明確に説明しなきゃいけない。https://www.reddit.com/r/macapps/comments/1r6d06r/new_post_r...

Superwhisperより良いのはある?見つけられないんだけど。

うん、でも俺のは…あ、こんにちは。

hahaha 自分が生成されたNPCでよかった!クロスプラットフォーム用に一つ作ったよ — parakeet mlxか、もっと早いwhisperを使ってね。 :)

checking in windows (kotlin multi platform) => https://github.com/maceip/daydream parakeet-tdt-0.6b-v2

これすごいね、否定するつもりはないけど、こういうアプリを見るたびに自分のスマホを思い出すんだ。2021年のGoogle Pixel 6はオフラインでも音声をテキストに書き起こせるし、文脈に応じて修正もしてくれる。間違えることもあるけど、話し続けると前の文の部分を修正してくれるんだ。GoogleにはWhisperやQwenよりも5年前から入ってる技術があるのに、なんで今さら1GBのトランスフォーマーが必要なんだろうね?

Microsoft OneNoteは2007年頃にこれをやってたんだ。確かに、その頃の音声からテキストへのモデルは今ほど進んでなかったけど。実は、オンライン専用の書き起こしモデルに移行してるときにOneNoteチームにいたんだ。デバイスのレガシーシステムを維持する人がもういなかったからなんだよね。計画的な技術的方向性ではなく、ただ古いシステムを維持したい人がいなかっただけなんだ。

でも、精度はかなり低いよね。GboardからFutoに切り替えて、MacではデフォルトのAppleの書き起こしモデルの代わりにMacWhisperを使ってる。

面白いね。私のPixel 7の書き起こしはほとんど使い物にならないよ。間違いが多すぎて、タイプしなくて済む目的が台無しになっちゃう。でも、これは私の経験かもしれない。最近のオープンソースのローカルSTTモデルはかなり頑丈だよ(例えば、WhisperモデルやParakeetモデルなど)。だから、バックグラウンドノイズやもごもご言うこと、完璧な音声環境がなくても、最先端のモデルはあまり影響を受けないんだ(それでも全てのモデルが影響を受けるけど)。私は音声AIの仕事をしていて、これらのモデル(プロプライエタリとローカルオープンソースの両方)を毎日使ってる。私にとっては天と地の差だよ。

https://handy.computer/ ってもうあるの?

うん、Handyには感謝だね。ほんとにいいツールだよ。

同じ問題に対して、複数の解決策が存在することもあるよね。

このアプリにはいくつか気になる点があるな。1. Linuxユーザーなら、FTPアカウントを取って、curlftpfsでローカルにマウントして、マウントしたファイルシステム上でSVNやCVSを使えば、簡単にそんなシステムを自分で作れるよ。WindowsやMacからは、内蔵ソフトウェアを使ってこのFTPアカウントにアクセスできるし。2. USBドライブの代わりにはならないね。知ってる人たちは、プレゼンのためにファイルを自分にメールしたり、どこかにホストしたりするけど、接続の問題に備えてUSBドライブは持ってるよ。これじゃ接続の問題は解決しない。3. あんまり「バイラル」でも収益を生む感じでもないね。今はまだ早いとは思うけど、ユーザーにサービスの料金を取らないなら、これでお金を稼ぐのは現実的なのかな?

これ、俺の使い方にはぴったりだね。別のアプリのUIいじる必要もないし。

クリーンアップのプロンプトを調整する必要があるね。もしトランスクリプトが一人称でAIアシスタントに話しかける感じだと、ほんとに「答えよう」として、指示を完全に無視しちゃうんだ。プロンプトをいじってみたけど、AIアシスタントみたいに振る舞わないようにするのがどうしても分からなかった。