メインコンテンツへスキップ
← ブログに戻る
開発ログ2026年3月3日by K.hirano

Claude Code 音声入力、日本語で動かすまでの3ステップと1つの壁

Claude Code の /voice が日本語非対応だったため whisper.cpp で自前の音声入力を作った記録。文字起こしは成功したが、Wayland の壁で Claude Code への直接統合は断念。失敗から学べることをまとめた。

#claude-code#whisper-cpp#voice-input#wayland#linux#whisper

Claude Code の /voice は日本語非対応(2026年3月現在)。whisper.cpp で代替を作ると文字起こしまでは動く。ただし Wayland の制約で Claude Code への直接入力統合は難しい。結論:公式対応を待つのが現実的。

Claude Code の /voice を起動した瞬間に気づきました。英語しか認識しない。

正確に言うと、動くは動くのですが、日本語を喋っても返ってくるのは英文か、謎の記号だけです。GitHub Issue を見ると「日本語非対応は既知の問題」とあっさり書いてある。

やるしかないと思いました。whisper.cpp で自前の音声入力を作れば、少なくとも文字起こしだけは解決できます。

まず原因を調べた

Claude Code のバイナリを少し覗いてみると(strings コマンドで覗ける程度ですが)、音声認識周りはシステム標準のSTTに依存していることが見えてきます。

日本語非対応はバグではなく、仕様に近い状態。GitHub の Issue にもそう書いてあります。

外から直すことはできない。自前で用意するしかない。

Step 1: whisper.cpp をビルドする

whisper.cpp は Meta の Whisper モデルをC++で再実装したもので、GPUなしでも動きます。CPUで動かしても日本語の文字起こしとして十分に実用的です。

bash
git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp && cmake -B build -DWHISPER_SERVER=ON && cmake --build build -j$(nproc)

モデル選びは精度と速度のトレードオフです。

モデルサイズCPU速度(10秒発話)日本語精度推奨
small244MB約8秒速さ優先
medium769MB約15〜20秒バランス
large1.5GB約45秒〜GPU推奨

medium が現実的なバランスです。

bash
bash models/download-ggml-model.sh medium

whisper-server を systemd のユーザーサービスとして登録しておくと、ログイン後に自動起動してくれます。ポートは 8080 が埋まっていることが多いので 2022 にしました(2026年3月、whisper.cpp commit 9f112a3 で確認)。

Step 2: 録音と文字起こしのスクリプトを書く

arecord で録音して、whisper-server の /inference エンドポイントに投げるだけです。

terminal
Enter → 録音開始 → Enter → 録音停止 → 文字起こし → クリップボードにコピー

ここで2つ詰まりました。

1. hw:1,0 でモノラル録音が拒否される

arecord -D hw:1,0 -c 1 を叩くと Channels count non available と怒られます。plughw:1,0 に変えると解決します。hw: はハードウェアに直接アクセスするのでデバイスネイティブのフォーマット以外を拒否します。plughw: は ALSA のプラグインレイヤーが変換してくれるので、モノラル/ステレオの差異を気にしなくて済みます。

2. whisper-server のレスポンスが JSON で返ってくる

-F "response-format=text" を指定してもJSONが返ってくる場合があります。{"text": "マイクテスト..."} という形式です。jq -r '.text' で本文だけ取り出すように対応しました。

Wayland 環境のクリップボードには wl-clipboard を使います。wl-copy でコピーして、貼り付けは Ctrl+Shift+V です。

Step 3: 動作確認

「マイクです」

これが最初に文字起こしに成功したひと言です。スクリプトを動かして、マイクに向かって話して、✅ クリップボードにコピーしました! が出た瞬間に貼り付けてみた結果がこれです。

medium モデルを CPU で動かしているので、10秒程度の発話に対して 15〜20秒ほど待ちます。GPUがあればもっと速くなりますが、テキスト入力の補助として使う分には許容範囲です。日本語の認識精度は十分です。句読点もそれなりに入ります。

1つの壁:Claude Code への直接統合ができない

文字起こしが動いたところで、次の欲が出ました。「Ctrl+Shift+V で貼り付けなくても、話し終えたら自動で Claude Code に入力されないか」というやつです。

Wayland 環境ではほぼ無理です。

X11 には xdotool type "テキスト" でアクティブウィンドウに入力を送れるツールがあります。Wayland にはそれがありません。Wayland のセキュリティモデルは、バックグラウンドのプロセスが他のウィンドウのキーイベントを読んだり送ったりすることを原則禁止しています。これはセキュリティ上の意図的な設計です。

wtype(Wayland 版 xdotool)をインストールすれば技術的には可能ですが、「Claude Code のウィンドウがフォーカスされている状態で発火させる」という別の問題が残ります。tmux 環境であれば tmux send-keys という回避策もあります。ただ「別ペインが必要」という手間は変わらず、読者への再現性という点でも複雑すぎる。

現実的な運用は、クリップボードにコピー → Ctrl+Shift+V で貼り付け、です。

結論:Claude Code の日本語対応を待つのが正解

今の状態で使えるかというと、使えます。話す → 待つ → 貼り付ける、という3手間はありますが、日本語で長い文を入力するよりは楽な場面もあります。

ただ「これを導入してください」と人に勧められるかというと、難しい。plughw の話、JSON パースの話、WAYLAND_DISPLAY の話——これを一人でデバッグするコストは、節約できる時間に見合わないかもしれません。

Claude Code の /voice が日本語対応されれば、この記事に書いたことは全部不要になります。GitHub の Issue は上がっているので、時間の問題だとは思っています。

それを待ちながら、手元では whisper.cpp が動いているので使えるときは使う、という状態で落ち着きました。

「できることとできないことをはっきりさせてから使う」——DIYはそういうものです。

ようは浪漫だ。Linuxユーザーは踏み込む前に、一度この記事を見て進むかどうか判断してほしい。

よくある質問

Q. Windows や macOS でも同じ方法は使えますか? whisper.cpp 自体は Windows/macOS でも動きます。ただし録音コマンド(arecord)は Linux 固有です。macOS なら sox、Windows なら PowerShell での録音に置き換えが必要です。Wayland の問題はそもそも発生しないため、自動入力の統合は macOS/Windows の方が簡単です。

Q. GPU なしでどれくらいの精度ですか? medium モデルで日本語の精度は実用レベルです。今回の動作確認では「マイクテスト、マイクテスト、マイクテスト、マイクテスト」がほぼ完全に認識されました。専門用語や固有名詞は落ちることがありますが、Claude Code へのプロンプト入力として使う分には問題ない精度です。

Q. Claude Code の公式 /voice が日本語対応したら、このセットアップは不要になりますか? はい、不要になります。whisper-server の起動管理やスクリプトのメンテナンスを考えると、公式対応の方が圧倒的に楽です。この記事の手順は「公式対応を待てない場合の一時的な回避策」として位置づけています。

関連記事

この記事を書いた人

HW系エンジニアとして20年以上、10,000件を超える顧客訪問と2,000件を超える単独ソリューション実績。AIツールを使った個人開発やIoT農園など、Raspberry Piを使ったオートメーション化なども実践中です!エンジニア専門結婚相談所も運営中、ClaudeCodeで解決できない心の課題も解決いたします!

PowerShellでVCP 0x60を書き換え、KVMホットキー切替はWindowsも外部ツール不要
2026年7月13日
開発ログ

PowerShellでVCP 0x60を書き換え、KVMホットキー切替はWindowsも外部ツール不要

メーカー案内がないKVMモニターの入力切替を、GNOME・ddcutil・PowerShell標準APIで実装する手順と検証範囲を整理します。

#KVM#ddc/ci#powershell#gnome#wayland
Fable 5 が弾かれた本当の理由、MCPでもスキルでもなくフック
2026年7月4日
開発ログ

Fable 5 が弾かれた本当の理由、MCPでもスキルでもなくフック

Claude Code で Fable 5 が毎ターン Opus 4.8 へフォールバックする現象を実機で二分探索。犯人は CLAUDE.md でも MCP でもなく、UserPromptSubmit フックの強制命令調の注入文言でした。

#claude-code#fable-5#hooks#dev-log
Linux向け無料EDRは実質Wazuh一択だった — 自宅RasPi 5で4.5ヶ月運用した本音と実測
2026年6月4日
チュートリアル

Linux向け無料EDRは実質Wazuh一択だった — 自宅RasPi 5で4.5ヶ月運用した本音と実測

個人のLinuxで無料EDR的監視はWazuhが現実的。RasPi 5で4台を4.5ヶ月運用した実測と、商用EDRとの違いを整理します。

#linux#Wazuh#edr#Raspberry Pi 5#ホームラボ
パスワードも SSH 鍵も、自宅に置いておく——Vaultwarden + Bitwarden SSH Agent で作る個人セキュリティ基盤
2026年3月23日
開発ログ

パスワードも SSH 鍵も、自宅に置いておく——Vaultwarden + Bitwarden SSH Agent で作る個人セキュリティ基盤

クラウドパスワードマネージャーへの不安と ~/.ssh/ ファイル管理の煩雑さを、Vaultwarden(RasPi 5 Docker)と Bitwarden SSH Agent の組み合わせで解決した実録。GNOME Keyring の競合解消・毎回確認ダイアログによるプロンプトインジェクション対策・snap バージョン非依存のソケット設定まで解説。

#vaultwarden#Bitwarden#ssh#password-manager#self-hosted

関連AIツール

META-MARK × AI

ローカルAIを動かすGPU、ちゃんと選べていますか?

VRAM・性能・コスパをMetaScoreで数値化。AIアプリ別の推奨ハードウェア要件も確認できます。