Mac のどのアプリでも、ショートカットを押して話すだけで、整った日本語の文章がいまの入力欄に入る音声入力アプリ「LocalVoice」を作り、GitHub で無料公開しました。文字起こしも文章の整形も、すべて Mac の中で処理します。
便利だけれど、外に送ってよいか迷う
文章を書く仕事は、話したほうが速く進むことがあります。ただ、音声入力のサービスの多くは、音声や文字をインターネットの向こうで処理します。社名や取引先、まだ決まっていない話を声に出すときには、外部に送ってよいか迷うこともあります。月額の料金や、使える文字数の上限も気になります。
そこで、音声も文字も Mac の外に出さず、話した言葉を整えて入力するところまでを、手元で完結させることにしました。
話してから、文章が入るまで
Option + Space を押して話し、もう一度押すと、数秒で入力欄に文章が入ります。録音は30秒ごとに区切り、話している間に裏で文字起こしを進めます。区切りの境目で言葉を落とさないよう、2秒ずつ重ねています。
文字起こしには Whisper(whisper.cpp)を、句読点などの整形には小さな AI(Qwen2.5 1.5B)を使います。どちらも処理のときだけ起動し、終わるとメモリを返します。
話した言葉(文字起こし)
えーっと、来週の打ち合わせなんですけど、火曜日、いや水曜日の14時からでどうでしょうか。あの、資料は前日までに送ります。
入力される文章
来週の打ち合わせなんですけど、水曜日の14時からでどうでしょうか。資料は前日までに送ります。
小さな AI に、言い換えをさせない
作るときに工夫したのは、整形を頼んだ小さな AI が、頼んでいない言い換えをすることへの対策です。実際に試すと、「すべてこの後Claudeでやる予定です」が「これからClaudeで処理することにしています」のように変わることがありました。意味は近くても、自分の言葉ではなくなってしまいます。
そこで、AI には「つなぎ言葉の削除・言い直しの反映・句読点」の3つだけを頼み、結果を元の文と比べて検査するようにしました。元に無い言葉が増えた、言葉が消えたなどの場合は AI の結果を捨て、辞書とルールで整えた文章を入力します。数字・日付・URL・メールアドレスが変わっていないかも確かめます。
製品名や社名は、辞書で直す
Whisper は、英語の製品名をカタカナで出しがちです。そこで、辞書に正しい表記と聞き間違えやすい書き方を登録し、文字起こしのあとで直すようにしました。macOS の読み上げ音声で、製品名を含む28本を測ったところ、文字の誤りの割合は、辞書なしの27.0%から、辞書ありで0.7%になりました。
ただし、これは読み上げ音声での計測です。人の声、とくにくだけた話し言葉では誤りが増えます。社名や取引先など公開したくない言葉は、リポジトリの外にある自分だけのファイルに書けます。
使ってみたい方へ
Apple Silicon(M1 以降)の Mac・macOS 14 以降で動きます。Claude Code や Codex に「このリポジトリをセットアップして」と頼むと、部品の導入からモデルの取得、ビルド、テストまで進みます。最後に、マイクとアクセシビリティの許可だけを自分で行います。
MIT ライセンスで、現状のまま公開しています。サポートや継続的な保守はお約束できませんが、よければ試してみてください。