Home Assistant の音声読み上げを、自然なローカルの声で
スマートホームのアナウンスが心地よいかどうかは声しだいです。洗濯が終わった、来客がある、学校に行く時間だ。自宅のネットワークで動く自然な声なら、内容は外に出ず、インターネットが止まっても使えます。
SuperClonica は Home Assistant の組み込み連携ではありませんが、ローカルサーバーは shell_command とメディアプレーヤーで数行でつながります。このガイドでは、設定方法と自然に聞こえるアナウンスの書き方を紹介します。
アナウンスできること
すべて自宅のネットワークで動きます。インターネットが必要なのは最初のモデルのダウンロードだけです。
- 家電やドアホンの通知をスマートスピーカーで。
- 天気と最初の予定を伝える朝のブリーフィング。
- 決まった時刻の家族へのリマインダー。
- 落ち着いたはっきりした声での警報や安全のお知らせ。
声を無料で選ぶ
どの声のページでも、よくあるアナウンスを30〜100文字で入力し、言語を選んで生成ボタンを押します。数秒で家の中の聞こえ方が分かります。アカウントは不要です。
Home Assistant とつなぐ
決まったメッセージは一度だけ読み上げてファイルを使い回し、文章が変わったときだけ新しく作りましょう。
- ネットワーク内のマシンでサーバーを起動:docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu。
- configuration.yaml に shell_command を追加し、curl で JSON(text、voice、lang)を送って、WAV を設定フォルダーの www に保存します。例:/config/www/tts/announce.wav。
- www のファイルは /local/ で配信されるので、アナウンスは http://あなたのHOME-ASSISTANT:8123/local/tts/announce.wav にあります。
- オートメーションで shell_command を実行し、そのアドレスと media_content_type music で media_player.play_media を呼びます。
自然に聞こえるアナウンス
アナウンスは1〜2文の短さに。時刻や数字は「7時半」のように読ませたい形で書きましょう。数字はそのまま数として読まれます。lang には文章の言語を指定し、部屋やメッセージの種類ごとに声を変えれば、家族はすぐに何の知らせか分かります。短い文なら、ふつうのCPUで1秒を大きく下回ります。
プライバシー
サーバーも音声も自宅のネットワークにとどまります。www フォルダーのファイルはログインなしで開けるため、Home Assistant にインターネットから接続できる場合は、個人的な内容をそこに読み上げないでください。音声サーバーにほかのマシンから接続できるなら SUPERCLONICA_API_KEY を設定しましょう。