Google Home に喋らせる

自発的に Google Home に喋らせたい。

喋らせている人たちはローカルの Google Home に対してローカルネットワーク内のラズパイなどで API 叩いて喋らせるみたいな感じになっている。

ググるgoogle-home-notifier が主流に見えるが、ラズパイで動かすにはセットアップに一手間いる。Go 製の homecast があるのでバイナリを置くだけにしたい。

どういう仕組みか

  • Google Home を探して音声再生 API を叩く
  • 再生する音源は Google Translate で利用されている text-to-speech を利用している

Google Home を探す

HashiCorp の mdns という mDNS のクライアントを利用して探している。Google Home のホスト名には _googlecast._tcp というサービス名が含まれ、付加情報部には md=Google Home が含まれるのでこれでフィルタリングする。

Google Home が複数台ある場合などはホスト名を控えておいて個別に操作することになりそう。

喋らせる

Google Text to Speech に再生させたい文字列を渡して音声ファイルの URL を取得する。 go-cast を使い、Google Home で音声ファイルを再生する。

Google Cast SDK を見るに Chromecast と API の互換性があるようだ

https://translate.google.com/translate_tts を叩く Text to Speech の使い方は非公式なのでいつか使えなくなるかもしれない。その場合は音声ファイルを生成してどっかに置いておく必要がある。