はじめましてkanjaです。静岡県の浜松に住んでおり名古屋のラボにはなかなか行けないのですが、たまに顔を出していろいろいじっています。
昨年末に個人的にGoogleHomeを購入し、自宅にGoogleHomeを導入しました。いろんなネット記事を参考に家のGoogleHomeを外からLINEで喋らせる仕組みを構築し、活用しています。
このたびラボにもGoogleHomeが導入されたので、同じ仕組みを構築してみました。
この辺の記事を参考に作成しました。(自分で書いたQiita記事なので、いわゆる自作自演ですw)
Raspberry PiからGoogle Homeを喋らせる – Qiita
LINEから家のGoogleHomeに好きな言葉を喋らせる – Qiita
構成は以下のようになっています。
LINEのBotを作れるサービスを利用して、Botアカウントがメッセージを受け取ったらwebhookを飛ばすように設定しています。
参考の記事ではwebhookをAzure Functionsに飛ばしていましたが、Azure Logic Appを使ってみました。
Azure Logic Appでは、LINEbotから来たJSONを解釈して、メッセージ部分をBeebotteというMQTTブローカーに飛ばします。RaspberryPiからはMQTTを使ってBeebotteを監視しておき、メッセージが更新されたらGoogleHomeに発話を指示させるようにしています。
動作させた様子がこちら。
「チンタオビージャオサンピエン」と言わせています。(中国語で「青島ビール3杯」という意味らしいです。中華料理屋で教わったとか…)
ラボのメンバーに使ってもらったところ、それはもういろんな言葉を喋らせてもらいました。中にはここには書けない危ない言葉も…
↓そんな中でのメンバーのやりとり(右が自分です)
「運用でカバー」というのはとても便利な言葉ですが、やはり誰が喋ったかどうか分からないのは不便なので、誰からのメッセージかを「○○さんからです。XXXXXXXXX」のように発話させるようにしました。LINEbotから送られてくるJSONデータに はユーザーのIDが含まれているので、これをもとにLINE上の表示名を取得しています。
あと、どんな言葉が喋られたかをログに取りたかったので、Googleスプレッドシートにログを記録するようにしました。
Azure Logic AppにはGoogleスプレッドシートに保存するためのコネクタがすでに用意されているので、それを使えば簡単です。
誰からのメッセージかを喋るようにしたのと、スプレッドシートにログを残すようにしたことにより、以前よりアブナイ発言は減りました。
こんなところで特にオチはないのですが、ラボでGoogleHomeを喋らせるようにしたら楽しかったという記録でした。