Home Assistant Voice Preview is an unusable mess.

Shawn Wang

Home Assistant Voice Previewは使い物にならない代物だ

原文は Shawn Wang により に公開されました。 このブログを購読する

最近、Home Assistant Voiceを手に入れた。プログラム可能なAlexaとして試すのがすごく楽しみだった。

最初の問題——HA Voiceは単体で動かない。別にHome Assistantのインスタンスが必要になる。

画像

まあいい。多少は技術に詳しいし、何とかなるだろう。HAのインストール手順を見に行った。

Home Assistantの問題

最初にやることはHome Assistant Greenを売りつけようとしてくること。まあ、商売だからいいけど、興味はない。稼げるうちに稼げよ、って感じだ。

画像

ところで購入ボタンが今動いてないぞ、直した方がいいんじゃないか。

画像

Raspberry Piが届くのを待つ気にもならないので、スクロールを続けた。Macなら4台くらい転がってる。これが使えないか? お、Mac用のガイドがあるじゃないか!

画像

MacでHome Assistant

Macのページ。

最初に言われるのは「適切なイメージ」をダウンロードしろということ。なんでDockerイメージじゃないんだ? あるいはマウントできる何かとか。なのに必要なのはVMとかいう謎のもの? ふざけんな、後で調べることにした。(後になってVirtualBoxがVMハイパーバイザーの一種だと知ったが、当時は知らなかった。VirtualBoxのダウンロード手順くらい書いておいてくれても……)

画像

オープンソースなんだろ? ソースから直接動かせないのか? Home Assistant Coreという別のエディションがあるみたいだ。いいね。

画像

ん? 新しいMacにはもうapt-getなんてないんだが。

画像

まあいい、brewを使おう。インストールはうまくいった。よし。

次のステップ:アカウントを作成する。

画像

はぁ? これLinux用のガイドだろ? 誰かMac用にカスタマイズしたのかよ?

ていうか、全部Linux前提の書き方じゃないか。

画像

こんなのクソくらえだ。

次にこれを試した:uvをインストール済みの場合:

# be in some folder you like
uv venv
uv pip install homeassistant==2025.1.2 --prerelease=allow
uv run hass
最初にビルドしようとしたときにハマった。どうやら「sudo softwareupdate --install "Command Line Tools for Xcode-16.2"」を実行する必要があるらしい。そうしないとこのエラーが出る
Unable to find configuration. Creating default one in /Users/shawnwang/.homeassistant
2025-01-19 16:33:27.267 WARNING (MainThread) [aiohttp_fast_zlib] zlib_ng and isal are not available, falling back to zlib, performance will be degraded.
2025-01-19 16:33:36.677 ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package pyspeex-noise==1.0.2: × Failed to download and build `pyspeex-noise==1.0.2`
  ╰─▶ Build backend failed to build wheel through `build_wheel` (exit status: 1)
      [stdout]
      running bdist_wheel
      running build
      running build_py
      building 'speex_noise_cpp' extension
      clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -g -O3 -Wall -arch arm64 -mmacosx-version-min=11.0 ...
      [stderr]
      /Users/shawnwang/.cache/uv/sdists-v6/pypi/pyspeex-noise/1.0.2/OiKAa5C3V4L1j77Pq6j5d/src/speex/preprocess.cc:921:14: warning: code will never be executed [-Wunreachable-code]
      Compiling with an SDK that doesn't seem to exist: /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk
      Please check your Xcode installation
      clang++: warning: no such sysroot directory: '/Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk'
      ld: library 'c++' not found
      clang++: error: linker command failed with exit code 1
      error: command '/usr/bin/clang++' failed with exit code 1
2025-01-19 16:34:07.135 ERROR (MainThread) [homeassistant.setup] Setup failed for 'cloud': Requirements for assist_pipeline not found: ['pyspeex-noise==1.0.2'].
2025-01-19 16:34:19.493 ERROR (MainThread) [homeassistant.setup] Error during setup of component conversation
Traceback (most recent call last):
  File "/Users/shawnwang/Desktop/Work/homeassistant/.venv/lib/python3.12/site-packages/homeassistant/setup.py", line 416, in _async_setup_component
    result = await task
  File "/Users/shawnwang/Desktop/Work/homeassistant/.venv/lib/python3.12/site-packages/homeassistant/components/conversation/__init__.py", line 246, in async_setup
    from homeassistant.components.assist_pipeline import (  # pylint: disable=import-outside-toplevel
  File "/Users/shawnwang/Desktop/Work/homeassistant/.venv/lib/python3.12/site-packages/homeassistant/components/assist_pipeline/pipeline.py", line 55, in <module>
    from .audio_enhancer import AudioEnhancer, EnhancedAudioChunk, MicroVadSpeexEnhancer
  File "/Users/shawnwang/Desktop/Work/homeassistant/.venv/lib/python3.12/site-packages/homeassistant/components/assist_pipeline/audio_enhancer.py", line 8, in <module>
    from pyspeex_noise import AudioProcessor
ModuleNotFoundError: No module named 'pyspeex_noise'
2025-01-19 16:34:19.497 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of 'assist_pipeline'. Setup failed for dependencies: ['conversation']
2025-01-19 16:34:19.497 ERROR (MainThread) [homeassistant.setup] Setup failed for 'assist_pipeline': Could not setup dependencies: conversation
2025-01-19 16:34:19.886 ERROR (MainThread) [homeassistant.setup] Setup failed for 'mobile_app': Requirements for assist_pipeline not found: ['pyspeex-noise==1.0.2'].
2025-01-19 16:34:19.886 ERROR (MainThread) [homeassistant.setup] Unable to set up dependencies of 'default_config'. Setup failed for dependencies: ['assist_pipeline', 'cloud', 'conversation', 'mobile_app']
2025-01-19 16:34:19.886 ERROR (MainThread) [homeassistant.setup] Setup failed for 'default_config': Could not setup dependencies: assist_pipeline, cloud, conversation, mobile_app
2025-01-19 16:34:19.887 WARNING (MainThread) [homeassistant.bootstrap] Support for the running Python version 3.12.7 is deprecated and will be removed in Home Assistant 2025.2; Please upgrade Python to 3.13

これでかなり先までは進めた。でもHAの依存関係のせいで、結局先に進めなかった:

画像

なのでそこで中断。ローカルインストールはいつもの行き止まりにハマったので、VM方式に戻ることにした(クソみたいなXcodeだけは意地でも入れたくない)。

Oracle VirtualBox

Oracleのサイトに行って気分が良くなるやつなんていない。VirtualBoxをインストールして、さっきダウンロードした.vdiファイルをダブルクリックしても……何も起きない

画像

もちろんHAのページにある手順は

画像

VirtualBoxの設定画面とは全く関係がない

画像

ググってやっと、vdiファイルを読み込むのはここだと分かった

画像

画像

ネットワーク設定も必要だ

画像

そして(画面収録とかの権限周りのダンスをこなした後)ようやく起動した:

画像

しかし、http://homeassistant.local:8123/にアクセスしても何も起きない。電源を切ろうとしても……案の定レインボーカーソルがくるくる回るだけだ。

画像

再起動。

ともかく、デフォルトのvdiにはよく知られたバグがある上に、読み込むはずの\EFI\BOOT\BOOTx64.efiファイル自体がそもそも入っていないことが分かった。ダウンロードできるものをここで見つけて、共有フォルダ経由でVMにインポートできることを知った。

画像

これで少しは進展があったが……

画像

それでも行き止まりだった。

もう少しググってこれらを見つけた:https://community.home-assistant.io/t/unable-to-boot-home-assistant-in-virtual-machine-starup-nsh-error/220267/27?page=2

画像

DockerでHome Assistant

たまたま見かけたコメントのおかげで、このクソのためにDockerコンテナがあるかもしれないと分かった。Linuxのドキュメントの中に埋もれてたので、やってみることにした……

画像

これでついに動いた!!

画像

モバイルアプリをHAサーバーに接続する

https://voice-pe.home-assistant.io/getting-started/によると、HA Voiceを見つけるにはモバイルアプリを使う必要があるらしい。

もちろんネットワークが勝手に繋がる前提で書いてあるが、当然ながらクソみたいに全然繋がらない

画像

もちろんここでNabu Cloudを売りつけてくる。

画像

ngrokでトンネルを張ってみたが、400 Bad Requestエラーが連発するだけだった。仕方なくNabu Cloudに登録したが、全然気分は良くない。むしろ全部投げ捨てて火でもつけたくなってきた。

画像

このリモートアクセスが有効になるのを待ってから、リンク(そう、あのUIのリンク)をコピーしてスマホに貼り付けろ

画像

成功すればこう表示されるはずだ

画像

そしていよいよ音声へ

https://voice-pe.home-assistant.io/getting-started/に戻る

幸い、ここは謳い文句通りに動いた。

画像

「認証」を求められたら、写真の通りにボタンを押せという意味だ

画像

そこでこれにぶち当たる https://github.com/esphome/home-assistant-voice-pe/issues/265

クソ。

でもそれは失敗だった。デバイスのWLAN IPを入力しなければならない。手動で別に指定していなければ、デバイスのポートは自動的に6052になる。

Vibhuに頼んでルーターのログを見てもらい、接続されたHA VoiceのIPを確認した。192.168.x.xのIPでポートは6053だった(コメントで言われてた6052じゃない)。それをESPHomeに打ち込んだら、2回目でうまくいった。

それからセットアップウィザードを進めた……が、もちろんこれで問題が終わるわけがなかった。

https://community.home-assistant.io/t/home-assistant-voice-pe-the-voice-assistant-is-unable-to-connect-to-home-assistant/821049

https://github.com/esphome/home-assistant-voice-pe/issues/288

この手順が一番直接関係ありそうだった https://community.home-assistant.io/t/home-assistant-voice-pe-tls-certificate-verification-failed/815768/3

そして1時間ほど試した末、諦めた。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。

コメント