2018年発売のEcho Dot第3世代をルート化し、Alexaの代わりにHome Assistantの音声端末として使う手順が公開されました。音声認識などを自宅側で処理できますが、対応機種は限られ、分解して基板に配線する必要があります。

Echo DotのAlexaをHome Assistantへ置き換える

改造では、端末のブートローダーを解除してシステムを書き換え、Home Assistantに接続するソフトウェア「hassmic」を導入します。Home Assistantは、家庭内機器の操作や自動化を管理するオープンソースのソフトウェアです。

対象のEcho Dot第3世代(2018年モデル)には、USB端子がありません。基板上のテストパッドにはんだ付けしてUSB接続用の配線を追加し、Linuxを直接動かすPCからセットアップします。

対応機種は、2018年モデルのEcho Dot第3世代、Echo Dot第2世代、Echo第2世代、複数世代のEcho Show、Echo Inputです。2019~2020年のEcho Dot第3世代と時計付きモデルは対象外です。外観が似ていても、型番によって対応状況が異なります。

音声の認識と応答はHome Assistant側で処理

改造後も、Echoのマイク処理とウェイクワード検出は端末側に残ります。端末から音声をHome Assistantへ送り、音声認識、指示の解釈、返答の音声合成を経て、端末で応答を再生します。

Home Assistantの音声サテライトは、マイクから音声を受け取り、処理結果を再生します。音声認識と音声合成はサテライトではなく、Assistパイプライン内の各機能が担当します。

パイプラインでは、音声をテキストに変換し、会話エージェントが指示を解釈して応答を作成した後、その応答を音声に変換します。各段階には別々の連携機能を設定でき、音声認識や音声合成をローカルで動かすかクラウドの機能を使うかは、構成によって選べます。

WhisperとSpeech-to-Phraseの速度と対応範囲

改造を試したAndy氏の環境では、音声認識にWhisperを使うと処理が遅く、簡単な照明操作にも時間がかかりました。Home Assistantを動かしていたのはCeleron搭載の小型PCで、仮想マシンにはCPUコア1基とメモリー3GBが割り当てられていました。

Speech-to-Phraseに切り替えると、よく使うスマートホーム操作をより速く処理できました。この方式は、対応する指示の範囲を絞った音声認識です。決まった家庭内操作には向きますが、自由な文章を幅広く認識する用途には制約があります。

Home Assistant GreenやRaspberry Pi 4では、Speech-to-Phraseの文字起こしは1秒未満が目安です。WhisperはRaspberry Pi 4で約8秒、Intel NUCでは1秒未満が目安とされており、必要な計算資源や応答時間が異なります。

導入には機種確認とネットワーク設定が必要

プロジェクトのソフトウェアはAIの支援を受けて作られており、監査されていません。導入時にはブートローダーを解除してシステム領域を書き換えるため、作業を誤るとEchoが起動しなくなる可能性があります。

プロジェクトでは、Amazonのプログラムが家庭内ネットワークにだけ接続できるようファイアウォールを設定し、Amazonへの通信を遮断する構成を説明しています。Home Assistantとの接続には暗号化が使われますが、端末をHome Assistantに追加する前は、同じネットワーク上から接続できます。