Aoide のデモ:チャットアプリに音声入力し、LLM が話し言葉を整える。返信を選んで声で書き直す。ある言語で話して別の言語で入力する

話すのは、たいてい打つよりずっと速いものです。Typeless や Wispr Flow のような音声入力ツールはこれをうまくやってくれます。キーを押して話すだけで、文字がカーソル位置に現れ、ついでに話し言葉も整えてくれます。ただしどれも有料のサブスクリプション製品で、音声は向こうのサーバーで処理されます。

そこで作ったのが Aoide です。Windows と macOS で使えるオープンソースの音声入力ツールで、音声は自分のパソコンの中で認識され、アカウントもクラウドサービスも要りません。文章を整えたいときは、好きな LLM をつなげます。

Aoide(アオイデー)は、ギリシャ神話で歌と声をつかさどるムーサの名前です。

できること

普段使うのはキーひとつだけ。右Alt(macOS では 右Option)を一度押して話し始め、もう一度押すと終わり、文字がいまフォーカスのある入力欄に入ります。途中でやめたいときは Esc です。

その上で、こんなこともできます:

機能 操作 結果
音声入力 右Alt を押す → 話す → もう一度押す 認識・整形して、フォーカス中の入力欄に入力
音声で修正 文章を選ぶ → 右Alt を押したまま Space → 直し方を話す LLM が言われたとおりに選択部分を書き直して置き換える
音声翻訳 右Alt を押したまま T → 話す 中国語で話して英語で出力(設定した任意の言語)

いくつか特筆したい点:

  • 整えるけれど、勝手に足さない。 整形では「えー」「あのー」を取り除き、途切れ途切れの言葉を完全な文につなげます。要点をいくつか話せば番号付きリストに、一言のメッセージは一言のまま。話していない内容は加えません。
  • 文章の途中への挿入も自然。 カーソルが既存の文章の途中にあるとき、前後を参照して、そこに入るべき部分だけを書き、言語も句読点も前後になじませます。既存の文章は一字も変えません。
  • あなたの言葉を覚える。 人名、製品名、専門用語がいつも誤認識される? 入力欄で一度直すだけで大丈夫です。Aoide は直した内容と自分が入力した内容を比べ、読みが近いことを確かめたうえで(言い換えを誤認識と取り違えないため)、その修正を辞書に加え、次からは自動で直します。
  • 入力先がなくても消えない。 入力欄にフォーカスがないときは、結果を画面下のカードに表示し、コピーできます。
  • いま何をしているか、いつでも分かる。 画面下のフローティングバーが録音・認識・整形の各段階を表示し、開始・終了・キャンセルにはそれぞれ別の効果音があります。

フローティングバーの各状態:録音中、音声で修正、音声翻訳、文字起こし中、LLM で整形中

音声はパソコンの外に出ない

認識は標準でローカルで行い、エンジンは二つから選べます:

  • SenseVoice(標準):どの CPU でも速く、中国語に強く、言っていない言葉を「幻覚」することがほとんどありません。中国語・英語・日本語・韓国語・広東語に対応。
  • Whisper:Vulkan でグラフィックカード上で動き(NVIDIA・AMD・Intel いずれも可、CUDA 不要)、Apple シリコンの Mac では Metal を使います。使える GPU がなければ自動で CPU に切り替わります。

クラウドで認識したい場合は、OpenAI 互換の音声認識 API(OpenAI、Groq、SiliconFlow、自前のサーバーなど)を指定することもできます。その場合も、Aoide はまずローカルで無音を切り取り、話していない録音はアップロードしません。

整形・修正・翻訳に使う LLM も、OpenAI 互換の API ならローカルでもリモートでも使えます。LLM なしでも使えて、その場合は認識結果がそのまま出力されます。

5 日間、62 回のコミット

Aoide はバイブコーディングで作りました。10 月 20 日の最初のコミットから 10 月 24 日の v0.5.7 リリースまで、5 日間・62 回のコミット・19 回のリリース。そしてすべてのコミットを、AI コーディングアシスタントの Claude(Claude Code で)と一緒に書きました。

おおよその流れはこうです:

  1. 1 日目:最初に動いた版(認識 + 整形 + そのまま入力)。その夜に「言葉を覚える」機能と自動アップデート。
  2. 2 日目:macOS 版、日本語キーボード向けの標準ホットキー、日本語の画面と説明。
  3. 3 日目:プロジェクトのホームページ。macOS の Chrome・Firefox でウェブページに直接入力できるように。クラウドの音声認識 API に対応。夜には音声翻訳。
  4. 4・5 日目:辞書の上限、macOS の権限リクエストの改善、そして山ほどの画面の細部。

出来上がったのは Tauri 2 のアプリで、バックエンドは約 1 万行の Rust、設定画面は素の HTML・CSS・JavaScript です。OS とやり取りする部分(キーボードフック、キー入力の送信、フォーカスの検出、他のアプリのミュート、フローティングバーのウィンドウ、効果音)は Windows 用と macOS 用を同じインターフェースで一つずつ書き、残りは共通です。認識を動かす sherpa-onnx は音声合成モジュールを外してソースからビルドしているので、アプリに GPL のコードは含まれず、プロジェクト全体を MIT ライセンスで公開できます。

この 5 日間で私がしたのは、主に何が欲しいかをはっきりさせること、毎日自分で使うこと、使いにくいところを見つけて直してもらうことで、コードの大半は AI が書きました。一人で、空き時間に、数日でクロスプラットフォームのデスクトップアプリを作るのは、以前ならまず無理だったことです。

使い始めるには

Windows(Windows 10/11 x64)

  1. GitHub Releases から Aoide_x.y.z_x64-setup.exe をダウンロードして実行します。管理者権限は要りません。
  2. 初回起動で設定画面が開くので、ダウンロード を押して標準の音声モデル(239 MB)を取得します。
  3. どこかの入力欄で 右Alt を押して話し始めます。

macOS(macOS 11 以降、Apple シリコン・Intel どちらも可)

  1. チップに合った .dmg をダウンロードし、Aoide を「アプリケーション」にドラッグします。
  2. Aoide は Apple の公証を受けていないため、初回は起動がブロックされます。システム設定 → プライバシーとセキュリティ で このまま開く をクリックしてください。
  3. 設定画面の案内に従ってマイクとアクセシビリティの権限を許可し、モデルをダウンロードしたら、右Option を押して話し始めます。

整形・修正・翻訳を使うには、設定 で LLM の API アドレス、キー、モデル名を入力します。標準でオンの「思考を無効化」は推論モデルに思考の過程を飛ばさせ、応答が目に見えて速くなります。

設定画面

おわりに

Aoide は完全なオープンソース(MIT)で、画面は中国語・英語・日本語に対応し、毎日アップデートを確認してワンクリックで更新できます。

使っていて困ったことや欲しい機能があれば、GitHub で issue を立てるか、下のコメント欄にどうぞ。