はじめに

この記事は スマートスピーカー Advent Calendar 2017 10日目の記事です。

Google Homeを購入してからこの2ヶ月でやってきたことをまとめたいと思います。
が、ほとんどQiitaへ投稿した記事の紹介になってしまいました。

大体見たことあるという方はこちら以降をどうぞ。

なお記事の後半でコスト計算していますが、本記事で紹介した内容は最低6,000円あれば大体実現できます。
※各所で本日までのGoogle Home半額セール前提。まだ購入されてない方はお急ぎを
ツクモは25日までセール実施のようです

薬の服用ログ

Google Home、IFTTT、Googleスプレッドシートを使って独自音声コマンドでログをとる(ついでにNode.jsやngrokやらも使ってLINEやGoogle Homeに通知する)
image
Google Homeを買って最初に作ったのがこれです。

私は毎日ヘルニアの痛み止めとサプリを飲んでるのですが、痛み止めを飲み忘れるととても大変なことになります。
なので飲み忘れを予防すべく、服薬の記録と、定時までにログがないときにGoogle HomeとLINEへ通知するシステムを作りました。

このシステムは今でも毎日お世話になっており、飲み忘れは激減しました。
LINEには怒られまくりですが…
なお外出先ではスマホのGoogle Assistantから記録を行います。

[Googleスプレッドシート(Google Homeから自動記録)]
image.png

[LINE通知]
image.png

照明を操作

Google Home、IFTTT、Firebase、Node.js、irMagicianを使ってシーリングライトを音声操作する
image
次に作ったのはラズパイを使用して赤外線リモコン家電を操作するやつです。
我が家ではリビングでリモコン操作している家電として照明、テレビ、エアコンがあり、それらを全部Google Homeから操作してやろうという魂胆です。

しかしそんな目論見は脆くも崩れ去りました。
irMagicianというUSB接続できる赤外線学習リモコンを購入し照明は操作できました。
が、テレビはリモコンが実は赤外線方式じゃなくて操作不可、エアコンはirMagicianのメモリオーバーという結果に。

赤外線操作に関してはirMagicianよりも後述するRM mini3の方がおすすめです。
ちなみにirMagicianには温度センサ付きのものがあり、私はそれを購入していたので現在は温度計として活躍しております。

PS4を操作

Google Homeに話しかけてPS4を操作してみる
image
テレビの赤外線操作がダメということで、テレビのメインの使い道であるPS4を操作してみることにしました。
「ps4-waker」というNode.jsモジュールを使っています。

操作と言っても起動、スタンバイやホーム画面の操作、アプリ起動とかです。
○ボタンとかR1とかコントローラーのボタン信号までは送れないのでBotとかは作れません。

HDMI連動させているのでPS4の起動に合わせてテレビも起動してくれますが、PS4に連動してテレビを消すことができないのがネックでした。
それも次の記事で解決しています。

テレビを操作

Google Homeに話しかけてテレビの電源を操作してみる
image
ラズパイとテレビをHDMI接続することでHDMI CECという規格でテレビを制御してみました。
「cec-client」を使用し、テレビのオンオフと音量上げ下げまで操作できました。

ちなみにチャンネル操作とかもHDMI CECでできるとは思うのですが、秋葉で安く売ってた汎用テレビリモコンの赤外線を学習して解決してしまいました。

エアコンを操作

Google Homeに話しかけてエアコンを操作してみる
image
「RM mini3」という激安Wi-Fi搭載赤外線学習リモコンを使用してエアコンを操作できるようにしました。
irMagicianでメモリオーバーしたエアコンも、RM mini3でなんとか操作できました。
価格もirMagicianの半分という…

ただしこの製品技適マークがないので、日本国内で使用する場合は「eRemote mini」という日本代理店が販売してる方を使いましょう。

Windowsを操作

Google Homeに話しかけてWindowsを操作してみる
image
Windowsを操作できるようにしました。
起動やスリープだけでなく、コマンド実行できることは大体できます。
Excel起動してとか、バックアップ実行してとか。

個人的には革新的だと思ったのですが、私自身実際は起動やスリープぐらいしか使っていません。
それでも家帰って着替えながら「OK Google PCつけて」で起動してくれるのは便利です。
Google Homeの真髄はこのながら操作にあると思います。

てかCortanaでいいじゃんって話だったりします?
でもWindows起動は流石にCortanaじゃ無理ですよね…?

Actions on Googleから家電を操作

IFTTTを使わずActions on Google(Dialogflow)でGoogle Homeから家電を音声操作してみる
image
今まではGoogle Homeでの音声トリガーにIFTTTを使っていましたが、若干ラグが長めなのが気になっていました。
Actions on GoogleでGoogle Assistantアプリ化してしまえばもう少し早くなるかなと思い挑戦してみました。

結果、応答速度の改善はあったものの、Assistantアプリ起動中にあらゆる音声を受け付けてしまい、我が家では子供の騒ぎ声でGoogle Homeがテンパってしまって使い物になりませんでした。
「電気つけて」や「テレビつけて」といった単発の命令ならIFTTTで十分です。

Google Homeと○✕ゲーム

Google Homeと○✕ゲームしてみる
image
Actioins on GoogleにてDialogflowとFirebaseを用いてGoogle Homeと○✕ゲームするサンプルを作ってみました。
AIをちゃんと実装すれば目隠し将棋アプリとかもいけますね。

ほんとは対人実装したかったんですが、現状の仕様だと厳しそうです。
Assistantアプリ起動中のPushとかできればいいのですが…

ESP32でLチカ

Google Homeに話しかけてESP32でLチカしてみる



Google Homeからの赤外線操作から一歩進んでWi-Fiモジュールで電子工作してカーテンの開け閉めを自動化したくなりました。

安価なWi-Fiモジュールを探していたら見つけたのがESP32です。
本体だけなら650円ほどです。

これまた驚くほど簡単にWi-Fi通信できてしまいました。
とりあえずはGoogle HomeからLチカまで。

なお現在のカーテン自動化進捗は↓のような感じです。
完成してればこれをアドベントカレンダーに書こうと思ってました。


Google Homeアプリをリリース

Google Homeアプリをリリースしてみた(実装編)
Google Homeアプリをリリースしてみた(申請編)
image
「クロマチックチューナー」というGoogle Homeアプリをリリースしました。
楽器のチューニング用アプリです。
皆様お持ちのGoogle Homeやスマホからご利用できます。

Google Homeアプリ(Google Assistantアプリ)のリリースってどんな感じなんだろって確認がメインでした。
アプリ自体はC4~B4の正弦波のmp3を4秒鳴らすというだけです。
本当はC3~B5ぐらいの幅にしようとしてたのですがサボりました。

私はギターのチューニングに使っていますが、楽器から手を離さずチューニングを行えるのは案外便利でした。

記事ではアプリのつくりや審査でリジェクト食らった内容等をまとめているので、Google Homeアプリ制作のご参考になれば幸いです。

記事化してない細々としたもの

ほかにもいくつか細々とした機能を実装しています。

LINE送信

現在育休中で基本家にいる妻が私にLINEするためにIFTTTのみで作成しました。

授乳ログ

薬服用ログと仕組みは同様で、子供の授乳やオムツ替えを記録する用です。

GUIから家電操作

Google Home関係なくなっちゃいますが、一応Google Homeで構築した仕組みを利用し一枚っぺらのHTMLからも操作できるようにしてます。
Firebase Hostingに置いてあり、もちろん外からも操作可能です。

温度計

「部屋の温度は?」と話しかけるとirMagicianの温度センサで取得した部屋の温度をgoogle-home-notifierで返してくれます。

チューナー

Google Homeアプリの「クロマチックチューナー」を作る前にラズパイのローカル環境で実装してたものです。
「A鳴らして」とかって言うとgoogle-home-notifierでmp3を鳴らします。

Google Homeに話しかけてハンドスピナー回してみた

クソツイってやつですね。
最近ハンドスピナー買ったもので…

「Google Homeを使いたおす! DialogflowとAoG Meetup」へ参加

Google Homeを使いたおす! DialogflowとAoG Meetup

image

Meetupってやつに初めて行ってきました。
ためになる素晴らしい発表を聞けてとても良い経験になりました。

スライドは↓にて見れます。
イベント資料一覧

以下ざっくりメモ。

  • VUI
    • 出力結果が直列でしか取得できないため、確認に時間がかかる
      • とにかくステップを短く!
  • Entityでは同音異語(例:リンゴのappleとiPhoneのappleとか)はどうしようもないので上手く避ける
  • flatfisherさんがEntityをCSVアップロードできる便利ツールを作ってた!
  • Cloud Pub/Subというのがグローバル接続に使えるらしい
  • AIY Voice Kitという自作できるGoogle Homeがあるらしい
    • 中身はAssistannt SDKを乗せてる
  • FulfillmentでJSONのスキーマ構成がバリデエラーで大変
    • Actions on Googleライブラリでやるといいかも
  • Actions on GoogleやDialogflowを使わずJSONのやりとりだけでもアプリ作れる
  • Handoff
    • Google HomeからスマホとかのAssistantへ誘導する機能
  • 最近のアプデでPush通知できるようになったっぽ
  • MAGELLAN BLOCKS
    • GUIで機械学習できるサービス
  • スマートスピーカー(音声アシスト)の先駆けはPepper
  • IFTTT量産問題
    • 解決策なし…
  • CUIでいう--helpみたいな使い方を教えるのを作っておくと便利
  • このスライドおすすめ
    • ほんとおすすめ。初めてDialogflow触るなら一読してから

AI音声アシスタント勉強会へ参加

【満員御礼】【増枠!】【東京】AI音声アシスタント勉強会 【#7】

ロボスタさん主催の勉強会に行ってきました。
この勉強会ではGoogle Home、Amazon Echoや様々なスマートスピーカーのお話を聞けました。

以下ざっくりメモ。

  • Echo ButtonっていうAlexaと連携できるボタンがある。夢が広がる
  • AISonarっていう業務用スマートスピーカーがあるらしい
    • 審査通さずに自作アプリを使える
    • 不要な機能制限もできる
    • 個人用に欲しい…
  • アプリ名大事。覚えてないと起動できない
    • スマホアプリとかはアイコン起動だから名前とか覚えてなかったりする
  • Alexaのスキル継続率は2週間後で3%ほど
    • Amazonのキャンペーンでクソアプリが氾濫してるのも一因だけど上記のアプリ名もきっと一因
  • Google Homeのワード認識は日々変化してる
    • 例)「ロボ トリビア」がある日突然「robot リビア」と認識された
      • アプリ名に指定したワードでこれが発生するとアプリ起動できなくなる
        • どころか別のアプリが起動するかも
  • Google Homeアプリで暗黙的な呼び出しも出来るみたい
  • スマートスピーカーアプリ開発すると喉枯れるので加湿器推奨

コスト

Google Homeを使って主にホームオートメーション化を行ってきたわけですが、こういったIoTではコストが重要ですよね。
これまでに費やしたコストを計算してみたいと思います。

買ったもの 価格(¥) 購入元 備考
Google Home 10,000 ビックカメラ 2台で20,000円キャンペーンを友人と割り勘しました
Raspberry Pi3 4,500 あきばお~ 色んなとこで売ってますがあきばお~安い
irMagician-T 4,630 SWITCH SCIENCE 温度センサ付き、送料150円含めてます
RM mini3があれば不要でした…
RM mini3 2,000 Amazon この価格のはもう売り切れです
RM mini3(2台) 2,570 MiniInTheBox 中国通販で追加購入しました
グループ割ってのに便乗して1台1,285円
まだ手元には届いていませんが…
ESP32開発ボード 1,480 秋月電子 Wi-FiとBluetooth搭載マイコン
Google Home 7,560 ビックカメラ なんか半額になってるので寝室用にもう一台
合計 32,740 - -

結構かかってる…
妻には見せられない…
なおGoogle Homeは2年分の誕生日プレゼントとして購入許可を得ました。

ちなみに赤外線家電操作のみの最小構成だと、

買ったもの 価格(¥) 購入元 備考
Google Home
Mini
3,240 ビックカメラ 本日(2017/12/10)まで半額です!
ツクモは25日まで!
Raspberry Pi
Zero W
1,446 SWITCH SCIENCE 送料150円含む、現在国内での定価入手は困難ですが…
海外通販ならPimoroniとか
RM mini3 1,285 MiniInTheBox グループ割にうまく乗っかる
合計 5,971 - -

お、6,000円切った!Google Home Miniが定価でも10,000円切る!
この価格でこれだけのリターンはもう破格ですね。

おわりに

振り返ればGoogle HomeはほぼIFTTTに繋いでおしまいで、そっから先のラズパイやNode.jsでがちゃがちゃやってばかりですね。
問題も色々発生していましたが、案外解決策もあるもので、特にNode.jsはこんなのもあるんか!ってのが多々あり驚きの超技術でした。

そして途中にも書きましたが、Google Homeの真髄は「ながら操作」だと思います。
視覚や手といったビジーになりがちなリソースを消費せず、アイドル気味な声というリソースのみでタスクをこなせること、これが最大のメリットに感じました。

購入してしばらくは「ちゃんと認識してるかな?」とGoogle Homeの方を見ながら話しかけたりするかと思いますが、一瞥もせず指示を飛ばせるようになってくると利便性が一気に上がります。

Google Homeアプリの開発においてもこの「ながら操作」を意識することが重要ではないかと思います。