WindowsでローカルAIと音声会話する方法|Whisper・Ollama・VOICEVOX
- 公開日
- 2026-09-29
- 更新日
- 2026-09-29
- 情報確認日
- 2026-09-29
- 編集・運営
- Local AI Compass
ローカルAIとの音声会話は、マイクの録音、音声認識、LLMへの会話送信、TTS、音声再生をつなぐ作業です。まず短い1往復を確実に通し、マイク常時待機や途中読み上げは後から検討します。公式の統合例と、Whisper・Ollama・VOICEVOXを別々に呼び出す構成を比べ、音が途切れる場所とPC外へ出る通信を工程ごとに確認します。
導入前に確認すること
- Windowsのバージョン、メモリ容量、GPU/VRAM、空き容量を確認する
- 最初は軽量モデル、短い質問、少ない同時作業から始める
- 公式サイトの対応OS、利用規約、モデルのライセンスを確認する
最初は短い1往復を通す
音声会話では、マイクに声が入ったか、文字起こしが合っているか、LLMが返答したか、TTSがWAVを作ったかを別々に確かめます。最初から常時マイク、割り込み、長い会話履歴を加えると、どの工程で止まったのか分かりにくくなります。
| 工程 | 入力 → 出力 | 最初に確かめること |
|---|---|---|
| 音声取得 | マイク → 短い音声ファイル | 選んだ入力デバイスと音量で声が録れているか |
| 音声認識(STT) | 音声 → テキスト | 言語、固有名詞、無音と誤認識を原音で確認する |
| 会話(LLM) | 認識テキスト → 返答テキスト | 接続先、model ID、返答完了、履歴の保存先 |
| 音声合成(TTS) | 返答テキスト → WAV | engine、speaker ID、日本語の読みと音声ライセンス |
| 再生 | WAV → speaker/headphones | 再生deviceとマイクへの音声回り込み |
まず自分の声だけを含む短い非機密音声でSTTを確認し、そのテキストをLLMへ渡し、完成した返答を一度だけ読み上げます。各段階の出力を見てから次へ進むと、誤認識、接続失敗、音声再生の問題を切り分けられます。
- Windowsでローカル音声認識を始める - Whisper、Windows AI Speech Recognition、音声ファイルの準備を確認する
- WindowsでローカルTTSを始める - 日本語voice、Windows標準音声、Kokoro、Piperの違いを見る
公式サンプルと別API構成を選ぶ
すでに動く構成を試すなら、whisper.cppの`whisper-talk-llama`がマイクからWhisper、LLaMA系model、TTSへ進む公式サンプルです。OllamaやVOICEVOXを自動で使う完成アプリではなく、SDL2を使うビルドとllama.cpp用modelの準備が必要です。READMEはWhisperの`base`または`small`をリアルタイム体験の候補とし、応答音声には編集可能な`speak` scriptを使います。WindowsではSpeechSynthesizerが既定例です。
Ollamaと日本語TTSを別々に選びたい場合は、WhisperのHTTP endpoint、Ollamaのchat API、VOICEVOX Engineをアプリから順に呼びます。この構成ではマイク録音、ターンの終了判定、APIエラー、会話履歴、読み上げ中断をつなぐコードが別途必要です。公式APIがあることだけで、3つを結ぶ完成アプリや同じ互換性が保証されるわけではありません。
| 経路 | 含まれるもの | 選ぶ前の注意 |
|---|---|---|
| whisper-talk-llama | whisper.cppのマイク会話例、Whisper、llama.cpp、TTS script | Ollama・VOICEVOX構成ではない。SDL2のbuild条件、対応model、session fileを確認する |
| 別APIをつなぐ | Whisper server、Ollama `/api/chat`、VOICEVOX Engine HTTP API | 録音・VAD・終了判定・履歴・エラー処理を自分のアプリが担当する |
| 録音済み音声から始める | 音声ファイル、Whisper、LLM、TTSを順番に手動確認 | 常時録音なしで全工程を試せる。まずこの1往復を完成させる |
- whisper.cpp talk-llama公式README - マイク会話、SDL2、model、session、Windowsの既定TTSを確認する
- ローカルAIをAPIで使う方法 - runtimeのendpointをアプリから呼び出す考え方を見る
- llama.cppをWindowsで使う方法 - talk-llamaで使うllama.cpp側のmodel・backend確認へ進む
APIを工程ごとに試す
別API構成は各engineを単独で確認してから接続します。Whisper側は短い日本語音声の文字起こし、Ollama側はローカルmodelへのchat、VOICEVOX側は固定文のWAV生成を先に成功させてください。
| 確認対象 | ローカルで見る入口 | 合格の目安 |
|---|---|---|
| Whisper server | `whisper-server`の`POST /inference`へ音声ファイルを送る | 返却テキストが原音の短い発話と合い、使用model・languageを記録できる |
| Ollama | `http://127.0.0.1:11434/api/chat`へmodelとmessagesを送る | 最初は`stream: false`にし、完了した`message.content`を得る |
| VOICEVOX Engine | `http://127.0.0.1:50021/docs`と`/speakers`を確認し、`/audio_query`から`/synthesis`を実行 | 選んだspeaker IDのWAVを作り、実際の出力deviceで再生できる |
Whisper serverは音声認識endpoint、OllamaはLLM chat endpoint、VOICEVOXは音声合成engineです。modelやportを固定値として思い込まず、現在起動しているserverの設定と応答を確認します。VOICEVOXの音声はサンプリングレートや読み方が再生環境に合わないことがあるため、短文で出力まで試します。
- whisper.cpp公式README - whisper-serverのWindows build、HTTP inference、stream exampleを見る
- Ollama chat API公式資料 - ローカルchat endpointとmessages/streamの仕様を確認する
- VOICEVOX Engine公式README - HTTP synthesisとspeaker IDの現行説明を見る
ターン制御と読み上げを分ける
「音声を連続で取り込める」ことと「会話が自然に交代する」ことは別です。whisper.cppの`whisper-stream`はREADMEがnaive exampleと説明するマイク処理例で、音声の区切り方やLLM・TTSの連結を完成させるものではありません。初回は押して話す方式か録音ファイルで発話の終わりを明示します。
| 機能 | 最初の設定 | 後で追加する時の確認 |
|---|---|---|
| 発話の開始・終了 | push-to-talk、または1ファイル1発話 | VAD閾値と無音時間を調整し、語尾が切れる/待ちすぎる両方を試す |
| LLM返答 | streamingを切り、最後まで返答してから次へ渡す | streamを使う場合はchunkを結合し、重複・語途中の読み上げを防ぐ |
| 会話履歴 | messagesをアプリ側で管理し、短いsessionから始める | whisper-talk-llamaの`--session`はfileへ状態を保存するため場所と削除を確認する |
| 割り込みとecho | 返答の再生中はマイク入力を止める | barge-inやecho cancellationを追加する前にfeedbackと二重認識を試す |
Ollama APIのstreaming responseをそのまま小分けでTTSへ送ると、文の途中を読んだり同じ語を重ねたりする実装になり得ます。最初は完成した返答を1回合成します。VOICEVOXの`streaming_synthesis`は音声を少しずつ返すAPIですが、LLMの文字chunkを自動で文章境界に整える機能とは分けて扱います。
- Whisperで音声認識・字幕を作る - 録音形式、認識結果、誤認識の確認へ戻る
- 日本語ローカルTTSの選び方 - 生成音声、voice、ライセンスを選ぶ
ローカル処理と保存先を確認する
「ローカル」と書かれた部品が一つあっても、音声会話全体の通信が止まるとは限りません。アプリ設定、modelの種類、APIのbase URL、download、同期、履歴・ログを一工程ずつ確認します。Ollama chatへ`localhost`で接続する構成と、Ollama cloud modelや別のAPIへ接続する構成は同じ通信経路ではありません。
| データ | 確認する場所 |
|---|---|
| マイクと音声ファイル | 入力device、録音中の表示、一時WAVの場所、削除方法 |
| 文字起こしとchat履歴 | Whisper serverの接続先、Ollama model/API URL、session・log・履歴の保存先 |
| modelsとvoice | 初回取得元、cache、更新通信、個別model・voiceの利用条件 |
| 返答音声 | VOICEVOX Engineの待受け範囲、保存WAV、再生履歴、共有先 |
同意のない録音、会議相手の音声、機密情報を常時取り込まないでください。長期保存や自動実行は後回しにし、まず利用者が開始・停止できる入力方法と、音声・文字・履歴を消せる場所を決めます。VOICEVOXのvoiceごとの利用条件はTTS記事と公式資料で確認します。
- ローカルAIの安全性とプライバシー - 音声・文字・model通信の境界を確認する
- ローカルAIのプライバシー確認 - 同期、ログ、外部APIを含む通信を点検する
- WindowsでローカルTTSを始める - voiceごとのlicenseとクレジット表記を確認する
止まった工程から切り分ける
| 症状 | 最初に見る工程 | 切り分け方 |
|---|---|---|
| 認識テキストが空・違う | マイク / STT | Windowsのマイク許可、入力device、音量、language、短い録音を順に確認する |
| LLMの返答が返らない | chat endpoint | Ollamaが稼働中か、model ID、base URL、error responseを確認する |
| 返答はあるがWAVができない | TTS API | VOICEVOX Engineの起動、`/speakers`のID、audio queryとsynthesisの応答を見る |
| 同じ返答を繰り返す・マイクが誤認識 | 再生 / 入力の重なり | 返答再生中の録音を止め、speakerとmicの距離、headphonesを試す |
| 1往復に時間がかかる | 工程別の待ち時間 | STT・LLM・TTSを個別に計測し、modelやaudio lengthを一つずつ変える |
最初に「入力が取れない」「認識が違う」「chatが失敗」「WAVが作れない」「再生に失敗」のどこで止まったか記録します。一度に複数modelやbackendを変えず、同じ短い音声と同じpromptで工程ごとに比較してください。
- ローカルAIが重い・動かない時 - runtimeとWindowsの症状を段階別に確認する
- ローカルAIの速度を測る方法 - 「実行できる」と「会話に使える待ち時間」を分けて測る
よくある質問
Ollamaだけでマイクの音声会話ができますか?
Ollamaの`/api/chat`はmessagesを使うchat endpointです。マイクの録音と音声認識、返答の読み上げは別のSTT/TTS処理を用意してアプリで接続します。
Windowsでローカル音声会話を一度試すには?
whisper.cppのtalk-llama公式例は、SDL2でマイクを取り込み、Whisperとllama.cppのmodelで会話する構成です。READMEのWindows SpeechSynthesizerはTTS例であり、OllamaやVOICEVOXの完成アプリ、事前build済み配布を意味しません。
日本語の返答をVOICEVOXで読めますか?
VOICEVOX EngineはHTTP APIでaudio_queryからsynthesisを実行できます。LLMの返答を送るアプリ側の接続が必要です。speaker ID、音声の再生、利用条件はvoiceごとに公式資料で確認してください。
音声会話を完全オフラインで使えますか?
モデルとengineを準備し、STT・LLM・TTSの接続先をPC上に置けば、その推論経路を端末内に構成できます。初回download、cloud model、外部API、ログ、同期、更新通信は別に確認してください。
マイクを常時オンにして会話できますか?
VADやstreaming inputを使う設計は可能ですが、無音判定、語尾の欠落、誤起動、再生音の回り込みを調整する必要があります。まずpush-to-talkか録音済み音声で1往復を完成させ、常時入力は開始・停止と保存先を明示できる場合に試します。
次に読むおすすめルート
初めてローカルAIを触る人
まず全体像をつかみ、LM StudioとOllamaの違い、モデルサイズの考え方を順番に確認します。
- クラウドAIとローカルAIの使い分け
- ローカルLLMとは
- ローカルAIを入れる前に確認すること
- WindowsでローカルAIを始める完全ガイド
- Windows ARMでローカルAIを使う前の確認
- WindowsでOllamaをインストールする
- Windowsでローカル音声認識を始める
- WindowsでローカルTTSを始める
- WindowsでローカルOCRを始める
- Windowsで話者分離を始める
- WindowsでローカルAI翻訳を始める
- LM Studioとは
- GGUFとは
- GGUF版とは
- GGUFファイル名の読み方
- LM StudioでGGUFを入れる方法
- LM Studioで画像を読み込む方法
- LM Studioのモデル保存場所と移動
- 小型LLM・量子化の現実
- GGUF量子化安全とRAG/NPU研究
- Quant.npuとNPU向け静的量子化
- LENSで見るNPUレイテンシ予測
- Copilot+ PCのNPU期待値
- Hugging Face安全チェック
- PDF/RAG/引用確認の現実
- LM Studioで最初に選ぶモデル
- GGUFモデル選び診断
- Hugging FaceでGGUFモデルを探す方法
- Q4/Q5/Q8の違いと選び方
- 日本語GGUFモデルの選び方
- Q4/Q5/Q8研究ガイド
- Hermes Desktopとは
- Hermes DesktopとLM Studio接続
- Hermes DesktopとOllama接続
- Hermes Desktop接続トラブル
- Hermes AgentとDesktopの違い
- ローカルLLMツール比較
- ローカルAI更新メモ
- 診断ページ
あなたはどのタイプ?
- 初めてローカルAIを触る人 - まず全体像をつかみ、LM StudioとOllamaの違い、モデルサイズの考え方を順番に確認します。
- LM Studio・Ollamaの症状別トラブルを解決したい人 - 起動、モデルロード、Prompt Processing、generation、API接続、GPU確認をツール別に分けて読みます。
- GPUなし・低スペックPCの人 - 軽量モデル、メモリ別の目安、重いときの確認ポイントを先に見ます。
- PDFや資料を読ませたい人 - 先に基本を押さえ、モデル単体の確認後にAnythingLLMへ進みます。
- ローカルAIエージェントを試したい人 - Bionic、Ollama、AnythingLLM、Hermesを役割別に分け、local/cloud、tool、保存、PC負荷を順番に確認します。
- 開発・API連携したい人 - LM StudioとOllamaの違いを確認し、API、長文処理、RAGまで段階的に進みます。
関連チェック先
- whisper.cpp talk-llama example - マイク入力、Whisper、llama.cppの会話、Windows SpeechSynthesizerを使う音声会話例とビルド条件を確認できます。
- whisper.cpp repository and server example - Windows build、microphone stream、whisper-serverのHTTP inference endpointと音声入力条件を確認できます。
- Ollama chat API - ローカルOllama serverのchat endpoint、messages、streaming responseを確認できます。
- VOICEVOX Engine - HTTP engineのaudio_query、synthesis、streaming_synthesisとspeaker IDの確認方法を見られます。