mozikeru.com

和歌山在住。2児の父。IoTエンジニア。各種ご相談承ります。

リビングの奥さんにGoogleHomeで「Googleによる人類の支配が完了」した事を通知する

4/1に、なにかエイプリルフールらしいこともしておこうと思い、自宅のGoogleHomeからGoogleによる人類の支配が完了した事を奥さんに通知してみました。

居間にあるGoogleHomeから以下の文言をアナウンスします。
「Googleからのお知らせです。たった今、Googleによる人類の支配が完了しました。速やかに指示に従って下さい。繰り返します。Googleによる人類の支配が完了しました。速やかに指示に従って下さい。」
※アナウンスの内容は当然フィクションです

この文言を4/1の20:20に、自宅のリビングに設置してあるGoogleHomeがしゃべるようにタイマーで設定します。

f:id:mozikeru:20180403083512j:plain

 

技術的な概要はよくある感じのものですが、一応以下に手順と参考URLを。
①raspberry piにnode.jsをインストール
②google-home-notifierをraspberry piにインストール
 (Raspberry PiからGoogle Homeを喋らせる - Qiita)
③GoogleHomeのローカルIPアドレスに向けた発話スクリプトを作成
 (Google HomeのIPアドレスを確認する方法 - Qiita)
④発話スクリプトをcrontabで時限実行
 (cron の設定ガイド)

実際の発話スクリプトは以下です。

[下記をapp.jsとして/usr/local/googlehome/に保存]
const googlehome = require('google-home-notifier');
const language = 'ja';
googlehome.device("Google-Home", language);
googlehome.ip("192.168.X.X"); // GoogleHomeのローカルIPアドレス
googlehome.notify('グーグルからのおしらせです。たったいま、グーグルによるじんる>いの支配が完了しました。すみやかにしじにしたがってください。くりかえします。グー
グルによるじんるいの支配がかんりょうしました。すみやかにしじにしたがってください
。', function(res) {
console.log(res);
});

不自然にひらがなと漢字が混ざっているのは、アルファベット(例えばGoogle)だとちゃんと発音できなかったり、逆に全部ひらがなだと"は"を"わ"と発音してしまったりしたためです。
(このあたりのチューニングは実際に発話させないとわからない部分なので、リビングに設置したGoogleHomeだと奥さんが居ないタイミングに全部デバッグする必要があり、わりと苦労ポイントです)

コレを20:20に実行するようにcrontabを設定します。

20 20 * * * /usr/local/nvm/versions/node/v8.9.0/bin/node /usr/local/googlehome/app.js

 上記までを設定したRaspberryPIを同一LAN内のWiFiに接続してこっそりと起動しておきます。

f:id:mozikeru:20180403085009j:plain


ここまで仕掛けたら後は当日の時刻になるのを待つだけ。

私が娘とお風呂に入ったタイミングで20:20になりました。


奥さんは、アナウンスを聞いてお風呂に駆けつけ、
「GoogleHomeが変なこと言い出した!Googleが人類を支配したとかなんとか!!」
と言ってました。

それなりに慌ててくれたので満足です。
(早々にネタばらししてしまったのですが、もう少し引っ張ればよかった。)