エージェントと自動化

スマートホームにローカルAIを載せる:音声・会話・映像を家の中で分担する構成

状態と自動化はHome Assistant、音声は音声サービス、映像はFrigateが担当します。

Home Assistantは機器の状態を集め、自動化を実行する本体です。ここにローカルな音声認識と合成(Wyoming1)、会話モデル(Ollama)、カメラ検知(Frigate)を足すと、家の外へ出るデータを減らせます。機器ごとの分担と実際の遅延値を順に扱います。

実行条件と要点
  • Home Assistantは状態と自動化を担い、音声認識・合成・会話・映像検知はそれぞれ別のプログラムが処理します。
  • Whisperの転写はRaspberry Pi 4で8秒前後、Intel NUCでは1秒未満です。
  • Ollamaの会話エージェントによる機器操作は実験的な機能で、公開したエンティティだけを操作します。

家の中で役割を分ければ、1台で全部やらなくて済みます

Home Assistantは照明・センサー・空調の状態を集め、自動化を実行する本体です。音声で話しかけると、Assistがウェイクワード→文字起こし→機器コマンドか質問かの判定→音声での応答、の順に処理を渡します。

この4段階を1つのプログラムが全部やる必要はありません。文字起こしと合成はWyomingプロトコルでつながった別サービスが担い、判断が必要な質問はOllamaなどの会話モデルに渡ります。カメラ映像はFrigateが別に受け取り、人や車両を検知します。

雨の窓辺の机にノートPCとケーブルでつながれた緑の箱が置かれた絵
家の機器とモデルを同じネットワークに置き、インターネットがなくても状態と音声が動く構成を先に決めます。

どの機器に何を置くか

4つの役割を1台に詰め込むと消費電力と発熱が増え、1つが遅くなると全体が遅くなります。24時間動かす仕事と重い計算は分けたほうが安定します。

下の表は各役割をどこに置くとよいかをまとめたものです。上の2行だけでも音声コマンドは動き、会話モデルとカメラは必要になったときに足します。

役割ごとに任せたい機器
役割任せる機器その理由
Home Assistant本体ミニPC(N100)・Raspberry Pi 4・Home Assistant Green状態と自動化は軽いものの24時間動かします
文字起こし(Whisper)Intel NUC・ミニPC・Mac同じ文をPi 4は8秒、NUCは1秒未満で処理します
文字起こし(Speech-to-Phrase)Green・Pi 4コマンドだけを理解する代わりに1秒未満で終わります
音声合成(Piper)Pi 4・ミニPC1秒で1.6秒分の音声を作ります
会話モデル(Ollama)Mac・ミニPC・GPUサーバーモデルファイルとコンテキストキャッシュ分のRAMかVRAMが必要です
カメラ検知(Frigate)ミニPC+検知アクセラレータ映像のデコードと検知をCPUだけで行うとすぐ限界が来ます

音声の往復で時間がどこに消えるか

話し終えてから答えが出るまでには4つの区間が積み上がります。ウェイクワード検知、文字起こし、判断と応答、合成です。Home Assistantの資料の数値で計算すると、機器によって差が大きく開きます。

Whisperですべてを文字起こしすると、Raspberry Pi 4では約8秒、Intel NUCでは1秒未満で終わります。ここにモデル応答の1秒と、2秒分の短い答えを作る合成1.2秒を足すと、Pi 4は10秒前後、NUCは3秒前後になります。

照明のオン・オフだけならSpeech-to-Phraseが向いています。GreenやPi 4でも1秒未満で転写が終わるので、残るのはネットワークとモデル応答の時間だけです。

会話モデルはOllamaでつなぎます

Home AssistantのOllama連携は、別の場所で動くOllamaサーバーを会話エージェントとして使います。サーバーのURL(例:http://192.168.0.20:11434)、モデル名、応答の指示を入れると、Assistがそのモデルに質問を渡します。

機器操作は実験的な機能です。Assist API2で公開したエンティティしか操作できないので、公開リストから錠やガレージドアのような誤動作が危険な機器を外し、照明とスイッチから始めます。

透明な箱の中のロボットの横にルーター、収納箱、書類が置かれている
何が外に出るかを決めるのは、公開リストとクラウド設定の2か所です。

家の外に出るもの、残るもの

文字起こし・合成・会話・映像検知をすべて家の中で動かせば、音声も映像も外に出ません。Home Assistant Cloudや外部の音声サービスを有効にすると、その区間だけが外に出ます。

会話モデルが外部サーバーにあると、質問文と機器の状態がそこへ送られます。ローカルモデルならその送信がなくなり、代わりにモデルを動かすメモリと電力が家に残ります。

最初につなぐ順番

1)Home Assistantを有線ネットワークに置き、自動化を先に安定させます。2)Assistパイプライン3を作り、スマホアプリで1文を試します。3)文字起こしと合成のアプリを入れると、Wyoming連携が自動で見つけます。4)Ollamaサーバーを起動し、連携でURLとモデルを入れます。5)公開エンティティを照明とスイッチから絞ります。

各段階で1つずつ変え、応答時間と聞き間違えた文を記録すると、どこを直すべきかが見えます。音声サテライトとカメラ検知は次の記事で詳しく扱います。

12編を順番に読む

このシリーズは役割分担から始まり、音声、カメラ、会話モデル、まとめとアナウンスへと続きます。12編すべてが家の中のモデルや検知プログラムを直接扱います。必要な回だけ読んでも構いませんが、初めてなら上から2本ずつ読むと理解が早いです。

各回はHome Assistant 2026.10.4とFrigate 0.18の文書に基づき、設定例には実際のキー名をそのまま使っています。アドレスとアカウントは家の環境に合わせて変えてください。

書類の束の横で検索システムを動かす小型PC
小さなミニPC1台で、Home Assistantと文字起こしを一緒に動かせます。

用語の注釈

  1. Wyoming — Home Assistantと音声サービスが音声とテキストをやり取りするプロトコルです。認証も暗号化もないため、信頼できるネットワークでだけ使います。

    本文に戻る
  2. API — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。

    本文に戻る
  3. パイプライン — 入力から出力まで続く処理段階のまとまりです。段階ごとに異なるモデルやツールを使うことがあります。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
Home Assistantは機器の状態を集め、自動化を実行する本体です。ここにローカルな音声認識と合成(Wyoming)、会話モデル(Ollama)、カメラ検知(Frigate)を足すと、家の外へ出るデータを減らせます。機器ごとの分担と実際の遅延値を順に扱います。