UTNOA のツールづくり

話すだけで整った文章が入る、Mac の中だけで動く音声入力「LocalVoice」を作りました

執筆:UTNOA | 2026-09-26

ショートカットを押して話すだけで、つなぎ言葉を消して整えた日本語が入力欄に入る Mac 用アプリ「LocalVoice」。音声を外部に送らない仕組みと、小さな AI に言い換えをさせない工夫、実測の精度を紹介します。

Mac のどのアプリでも、ショートカットを押して話すだけで、整った日本語の文章がいまの入力欄に入る音声入力アプリ「LocalVoice」を作り、GitHub で無料公開しました。文字起こしも文章の整形も、すべて Mac の中で処理します。

便利だけれど、外に送ってよいか迷う

文章を書く仕事は、話したほうが速く進むことがあります。ただ、音声入力のサービスの多くは、音声や文字をインターネットの向こうで処理します。社名や取引先、まだ決まっていない話を声に出すときには、外部に送ってよいか迷うこともあります。月額の料金や、使える文字数の上限も気になります。

そこで、音声も文字も Mac の外に出さず、話した言葉を整えて入力するところまでを、手元で完結させることにしました。

話してから、文章が入るまで

Option + Space を押して話し、もう一度押すと、数秒で入力欄に文章が入ります。録音は30秒ごとに区切り、話している間に裏で文字起こしを進めます。区切りの境目で言葉を落とさないよう、2秒ずつ重ねています。

文字起こしには Whisper(whisper.cpp)を、句読点などの整形には小さな AI(Qwen2.5 1.5B)を使います。どちらも処理のときだけ起動し、終わるとメモリを返します。

✓「えーっと」「あの」を消し、「火曜日、いや水曜日」は後の言い方だけを残します。それ以外の言葉は言い換えません。例です。実際の結果は、話し方や録音の状態によって変わります。

小さな 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 ライセンスで、現状のまま公開しています。サポートや継続的な保守はお約束できませんが、よければ試してみてください。

LocalVoice について、
くわしく見る。

できること、使い始め方、よくあるご質問をまとめています。