10月中旬の発売開始直後に我が家にやってきたGooglehomeですが、家族にも浸透してきました。外部からしゃべらせる実験が気になっていて、先週末時間切れだったので今週続きをやってみました。手順はほぼこの通りです。
GoogleHomeスピーカーに外部からプッシュして自発的に話してもらいます - Qiita
googlehomeと通信するのはRaspberryPIです。今回は、我が家で常時稼働させているRaspberryPI2を利用するのですが、CentOS7なので、apt-getで簡単にnodejsやnpmが入れられません。まずはarmv7版があるEpelレポジトリを使えるようにしました。epel.repoというファイルを作成します。
[root@rpi2 yum]# cat > /etc/yum.repos.d/epel.repo << EOF
> [epel]
> name=Epel rebuild for armhfp
> baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
> enabled=1
> gpgcheck=0
> EOF
これでyum installコマンドでnodejsが入ったのですが、途中でエラーが出て、このあたりを参考に対処しました。
Can't find dns_sd.h on RPi running Node 12.0 & NPM 2.5.1 · Issue #9298 · npm/npm · GitHub
また、libnss-mdns と libavahi-compat-libdnsd-devはパッケージが見つからずインストールしていません。(あとで気づきました)
npm installし、example.jsを実行、curlで自身にコマンドを発行します。
ようやく声を聴くことができました。 最初にチャイムが鳴って、googlehomeの通常の音声よりも合成音っぽい女声で話をしてくれます。
その後、ルーターに穴開けて、url後にurlエンコードせずに文字列を受け渡して外部から叩けることも確認。
Webhookから任意の日本語をしゃべらせるのはまだ未確認です。
Google HomeをIFTTTと組み合わせてTwitterやLineなどと連携しよう! | ゆきの野望
一応、serviceにして常時稼働するようにしてます。
https://yuki-no-yabo.com/combined-googlehome-with-other-services/