WhisperとローカルLLMを用いた音声制御AIエージェント

Dev.to / 2026/4/16

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical Usage

要点

  • この記事では、音声(.wav/.mp3)とテキストの両方を入力として受け取り、ローカルのWhisperモデルで音声をテキストに変換したうえで、意図(intent)から行動(action)へのパイプラインで要求を処理できる音声制御AIエージェントを紹介します。
  • 意図検出はハイブリッド戦略で実装されており、ルールベースのロジックを優先しつつ、ノイズの多い/不明瞭な発話や短い発話に対してはフォールバックとしてLLMを使用します。
  • エージェントは、ファイル作成、Pythonコード生成、テキスト要約、チャット応答など複数種類のアクションを実行でき、1つの入力内で複合コマンドにも対応します。
  • LLMコンポーネントにはOllamaとLlama3を用い、永続メモリにはJSONを使うことでローカル・ファーストの動作を維持し、ファイル操作は専用の出力ディレクトリに制約するなど安全な取り扱いを行います。
  • このプロジェクトは、モデルの使用にとどまらず、パイプライン設計、検証、音声認識のエッジケースへの実務的な対応に重点を置くことで、システムの信頼性を重視しています。

概要

私は最近、音声とテキストの両方を入力として受け取り、ユーザーの意図を理解し、構造化されたパイプラインによって意味のあるアクションを実行する「音声制御AIエージェント」を構築しました。

このプロジェクトの目的は、有償のAPIに依存せずにローカルで動作する、完全なAIシステムを設計しつつ、シンプルさと信頼性を維持することでした。

アーキテクチャ

システムは次のパイプラインに従います:

入力 → 音声認識(Speech-to-Text) → 意図検出(Intent Detection) → アクション実行(Action Execution) → 出力

主要機能

  • 音声(.wav、.mp3)とテキストの両方の入力に対応
  • Whisper(ローカルモデル)による音声認識(Speech-to-Text)
  • ハイブリッド方式による意図検出(ルールベース + LLMのフォールバック)
  • 対応するアクション:
    • ファイル作成
    • Pythonコードの生成
    • テキストの要約
    • チャット応答
  • 複合コマンド(1つの入力で複数のアクション)
  • JSONによる永続メモリ
  • 専用の出力ディレクトリ内での安全なファイル取り扱い

技術スタック

  • Python
  • Streamlit
  • Whisper
  • Ollama(Llama3)

課題

主要な課題の1つは、ノイズのある、または判別しにくい音声入力を扱うことでした。これは、ルールベースのロジックとLLMベースの意図検出を組み合わせることで対処しました。

もう1つの課題は、短い入力に対して正しく意図を分類することでした。そのためには、モデルの応答よりもルールを優先する必要がありました。

学び

このプロジェクトを通じて、現実世界のAIシステムはモデルを使うだけではなく、パイプライン設計、検証、システムの信頼性まで含めて構築されることを理解できました。

リンク

https://github.com/thamizhamudhu/voice-ai-agent/blob/main/README.md