メインコンテンツまでスキップ

Home Assistant ローカル音声操作:選定・導入・実測データ

ご利用にあたって

音声コマンドは中国語と英語に対応します。Home Assistant 公式の Xiaomi Home 連携は非商用利用に限られるため、プリインストールしていません。商用案件では使用しないでください。

このソリューションでできること​

家の照明、カーテン、エアコン、Zigbee センサーを Home Assistant に接続し、ひと言で操作します。「リビングの照明をつけて」と話すと、Home Assistant がローカルで実行し、点灯したことを音声で返します。音声認識と音声合成はローカルの reComputer J40 で行うため、話した音声はクラウドの音声サービスにアップロードされません。リビングや寝室での利用のほか、スマートホーム SIer が顧客宅に納品する用途にも向いています。

  • 音声はクラウドに出ない

    コマンドの認識と応答音声の生成は reComputer J40 で行い、実行は Home Assistant がローカルで行います。

  • 発話後 0.12 秒で文字に

    中国語・英語 5 件のコマンドの中央値(「性能と実測データ」参照)。

  • Home Assistant に標準接続

    音声サービスは Wyoming Protocol 連携で Home Assistant の音声アシスタントに接続し、Home Assistant 自体は変更しません。

  • Zigbee 機器をそのまま接続

    Connect ZBT-2 を挿せば、各ブランドのゲートウェイなしで Zigbee センサーやスイッチを接続できます。

実機の画面​

Home Assistant 音声アシスタントでのやり取りです。中国語で「リビングの照明をつけて」と話すと、ローカルの音声サービスが認識し、Home Assistant が実行して点灯を返答し、右側のリビング照明カードがオンになります。

Home Assistant 音声アシスタント:リビングの照明をつけて、点灯しました
Home Assistant ダッシュボード:リビングの照明・カーテン・温湿度・エアコン、寝室の照明と加湿器

スクリーンショットの照明、カーテン、エアコン、センサーはデモ用の模擬機器です。音声入力は同じ reComputer J40 で合成した音声で、人の録音ではありません。

必要なハードウェア​

現場に必要なのは、Home Assistant ホスト、音声ホスト、Zigbee コーディネーター、音声端末の 4 点です。

機器役割備考
ARM64 Linux ホスト(64 ビット OS、8 GB メモリ)Home Assistant を実行1 世帯に 1 台
reComputer J4012 reComputer J40 シリーズ(J4012、Orin NX 16GB)ローカルの音声認識と音声合成初回起動時に音声モデルをダウンロード。30 GB 以上の空きディスクを確保
Home Assistant Connect ZBT-2Zigbee 機器の接続Home Assistant ホストの USB ポートに挿す
Home Assistant Voice Preview Edition部屋に置く音声端末:コマンドを聞き、応答を再生部屋ごとに 1 台
SONOFF SNZB Zigbee センサー(オプション)温湿度などの状態を取得ZBT-2 経由で接続

Home Assistant ホスト、reComputer J40、音声端末は同じ LAN に接続します。Apple の「ホーム」アプリを使う場合、iPhone は Home Assistant ホストと同じ LAN に置きます。

現場への導入​

1. 機器の配置​

音声ホストは Home Assistant と分けて置ける

reComputer J40 は音声サービスだけを実行するため、ラックや情報分電盤に置き、LAN 経由で Home Assistant と通信できます。音声端末は話しかける部屋に置きます。

2. ソフトウェアの導入:3 ステップ​

機器ごとの手順はリファレンス設計ページにあります。ここでは流れだけを示します。


  1. Home Assistant ホスト:中国語・英語・日本語のコマンド文例と部屋・機器のテンプレートを含めて Home Assistant をデプロイします。
  2. 音声ホスト:reComputer J40 に音声サービスをデプロイします。初回起動でモデルをダウンロードし、以降は認識と合成を本機で実行します。
  3. 接続と確認:Home Assistant で Wyoming Protocol 連携を追加して reComputer J40 の 2 つのポートを指定し、音声アシスタントの音声認識と音声合成に設定します。音声端末に「リビングの照明をつけて」と話し、点灯することを確認します。

インターフェース​

音声サービスは Wyoming Protocol で Home Assistant に提供され、その他の自動化はすべて Home Assistant 内で行います。

  • Home Assistant:Wyoming Protocol 連携を追加すると、音声アシスタントに seeed-local-voice の音声認識と音声合成が表示されます。
  • Apple「ホーム」/ Siri:Home Assistant の HomeKit ブリッジで機器を iPhone に同期します。
  • 自社システム:Home Assistant 標準の API で機器の状態を読み書きします。
ポート機器内容
HTTP 8123Home Assistant ホストHome Assistant の Web 画面と API
TCP 10300reComputer J40音声認識サービス(Wyoming)
TCP 10200reComputer J40音声合成サービス(Wyoming)

性能と実測データ​

全体:発話から実行まで​

Home Assistant は 8 GB メモリの ARM64 Linux ホスト、音声サービスは reComputer J40 シリーズ(Orin NX 16GB)で動作。入力は合成音声で、Home Assistant の音声アシスタントに送りました。

指標結果
中国語・英語の照明コマンド5/5 件実行成功、すべて Home Assistant がローカルで処理(実測)
発話終了から文字認識まで中央値 0.12 秒、範囲 0.11–0.95 秒(実測)

再現:sensecraft-solutions/solutions/home_assistant_whole_home(デプロイパッケージ)

音声サービス単体​

同じ reComputer J40 シリーズで音声サービスを直接呼び出し、16 kHz モノラルの合成音声を入力しました。

テキスト応答音声の最初のパケット認識結果発話終了後の文字起こし時間
打开客厅灯(リビングの照明をつけて)0.122 秒(実測)打开客厅灯。0.383 秒(実測)
关闭卧室的灯(寝室の照明を消して)0.049 秒(実測)关闭卧室的灯。0.421 秒(実測)
Turn on the living room light0.115 秒(実測)Turn on the living room light.0.579 秒(実測)

Wyoming 経由では 2 件のサンプルが 0.13 秒で文字起こしされました(実測)。

再現:sensecraft-solutions/solutions/home_assistant_whole_home/assets/docker/docker-compose.jetson-voice.yml

モデルとランタイム​

機器音声認識音声合成ランタイム
reComputer J40 シリーズQwen3-ASRMatcha-TTSTensorRT-Edge-LLM / TensorRT

結果に影響する設定:

  • アシスタントの言語:中国語または英語。それぞれ同梱のコマンド文例を使います。
  • 機器と部屋の名前:コマンドは Home Assistant 内の名前と照合するため、「リビングの照明」はエンティティ名と一致させます。

既知の制限​

  • エンティティの別名と命名の不一致:意図判定は正確な命名に依存します。発話された表現と Home Assistant 上のエンティティ別名に乖離がある場合、文字起こしが正しくても操作が実行されないことがあります。
  • 複合・連続コマンド:本モデルは単一意図の家電操作に最適化されています。「エアコンをつけてカーテンを半分閉めて」のような複合指示は、1 つずつの文に分けて発話する必要があります。
  • 複数端末の同時発話:J4012 ホスト 1 台あたり 1〜3 台の音声端末の同時利用を推奨します。複数部屋から同時に長尺音声が入力された場合、応答開始までの時間がわずかに延びることがあります。

データと素材の出典​

  • スクリーンショットは Home Assistant 2026.9.3(Apache License 2.0、home-assistant.io)のもので、機器は模擬機器です。
  • 音声入力は同じ reComputer J40 の音声合成で生成し、人の録音や第三者の音声は使っていません。
Loading Comments...