この記事を書くにあたり、GCPUGの勉強会「Google Homeを使いたおす! DialogflowとAoG Meetup」にて、BLOG参加枠を設けていただき大変感謝しております。先着順の補欠繰り上がりで急遽参加したのですが、メッチャおもしろかったです!!
早速、イベントレポートなどをBlogに書く意気込みがある人のBLOG参加枠の義務を喜んで果たしたいと思います。
Google Homeを使いたおす! DialogflowとAoG Meetupの概要
今回参加したイベント概要は、イベントページを参照してください。一言で書くと、GCPを使いこなす猛者が本気でGoogleHomeを遊び倒してみた結果をプレゼンするという形式です。会場は、もちろん「六本木ヒルズ 森タワー Google Japan」。
それぞれSessionで、Googleスライド(パワーポイント)と実際に作ったGoogleHomeアプリでデモを実施しました。GCPUGに加入している皆さんは、イベントサイトにスライドが共有されています。私も一生懸命メモをしていましたが、もっと楽しめば良かったです。ここでは、私が書き留めたメモを中心に、面白かったこと/勉強になったこと/GoogleHomeアプリを作る際の勘所を書いていきたいと思います。
Session1:Dialogflowで作るアシスタントアプリ
オープニングセッションとして、AoG(ActionOnGoogle)とDialogFlowの導入でした。
アプリケーションは、作業を簡単に素早く終わらせるためのものという定義もと、GoogleHomeアプリは、GUI(Graphical User Interface)と区別するとVUI(Voice User Interface)という表現をすることができます。GUIとVUIのメリットを比較すると、大きく分けると次のようになります。
- メリット
- 手や視覚を必要としない
- デメリット
- 出力結果が直列でしか取得できない
- 出力結果を確認するまでの時間が長くなる
この特徴を生かしてアプリを作っていく必要があります。Webページの場合は1ステップ増えることで、ユーザーが20%離脱するというデータもありますので、わかりやすくシンプルなデザインブランディングをする必要があります。
現在は、「Android Auto」や「Android TV」で、VUIアプリを実装するような開発が内部で進んでいるとかいないとかおっしゃってました。未来が広がりますね(笑)
ちょっとだけ裏情報を受け取りながら、ActionOnGoogleとDialogFlowの概要を教えていただきました。何となく見よう見まねで使っていましたが、ちゃんと書くと次のような特徴があります。
- Actions on Google
- 外部からGoogle アシスタントを拡張する仕組み
- ※Googleアシスタントは音声認識、音声合成のみを担当
- DialogFlow
- ユーザーの入力(音声orテキスト)とレスポンス(音声orテキスト)の対応をGUIで設定することができる
- 形態素解析をエンジン内で対応
- 必要であれば Fulfillment として外部のサーバーと連動できる
- 現時点では、5秒までしか音声をINPUTできない
- ユーザーの音声入力の認識ブレを吸収できるように、シノニムの設定(例)マック、マクド、マクドナルド)や入力値の変数を設定することが可能(数字、地名、固定値 など)
- DialogFlowはSNSとの連動が豊富
DialogFlowでは、ユーザーの音声入力の認識ブレを吸収でき、以下にシンプルな入力とレスポンスにするかを考えるのがアプリの勘所ですね。また、VUIの場合は、アプリを終了させる音声コマンドをたくさん準備しておくことが大切だと仰ってました。
Session2:Dialogflow + 赤外線で家電管理
youtubeに動画がアップされました。
この記事を書いた人です。この記事を書いている際にプロフィールページの写真と名前を見たら身元が割れました(笑)発表者の方々は技術への愛情が半端ないですね。このお方の発表の趣旨は、「IRKit」以外は、家にあるもので家電を操作するというものです。IRKitとは、次のものです。
- Wi-Fiと接続できるので、遠隔赤外線の送受信ができる
- ユーザー用のAPIが準備されている
Qiitaの記事で書いてあるものをデモしてくれるはずだったんですが、な、な、なんとIRKitのパスワードを紛失して急遽別の手法でデモを実施し、見事会場を笑いのどつぼに陥れるという荒業を繰り出して頂きました。でも、デモを見てみたかったです☆
Session3:RasPi + Assistant SDK + AoGで3Dプリンター管理~Dialogflowで非同期同期やれるかな
このお方の発表の趣旨は、自分でGoogleHomeを作ってしまおう!というもの。アンケートの結果、会場出席者の2/3はGoogleHomeを持っている人で、1/3がGoogleHomeを持っていない人でした。その1/3の人たちのために、GoogleHomeを4000円くらいで自作する方法をプレゼンしてくれました。
AIYProjectsというものがあるらしく、簡易的なGoogleHomeが作れるKitがあります。(し、知らなかった、、、。)

この方法を解説していただきました。制御工学はちょっと苦手分野なので、ついていけなかった部分が多いのですが、このSessionでは、次のことを勉強しました。
- Raspberry Piというものがある
- コードをガリガリ書くことになるが、「GoogleAssistantSDK」という音声対話アプリを作れるものがある。解説のyoutubeの字幕が日本語に対応しているので、詳しくはそちらをご覧ください。
- GoogleAssistantSDKは、PythonライブラリとgRPCに対応しているので、大体どんな言語でもいけます。2017/11現在日本語に対応していない。
- Raspberry Pi + GoogleAssistantSDKという組み合わせで、GoogleHomeにはない機能、ストリーミングの通信/音声でロボットを制御できる。(エヴァンゲリオンは作れなくとも、ペッパーやアイボぐらいならいける?)
- ActionOnGoogleの場合、クライアントライブラリを使用するとJSONをある程度楽に作ることができる。JSONのバリデーションエラーに苦しむことが少なくなる。
- CloudPub/Sub「メッセージキューのサーバー」を使用することで、メッセージのPushとPullを上手く使うことで、非同期処理を行うことができる。グローバルな環境からCloudPub/Subに情報をPushしておき、ローカルネットワークの端末からPullすることでGoogleAssistantで家の中のネットワーク家電を操作できる。
Session4:SUUMOとホットペッパーグルメにAoGを使ってローンチしてみた
以前、私の書いた記事で、ActionOnGoole+DialogFlow+αで試作アプリを作りましたが、既に商業用途でリリースしている猛者がいました。SUUMOとホットペッパーです。家のGoogleHomeでも試してみたのですが、次の呪文を唱えると、GoogleHome(GoogleAssistant)が会話を始めます。私の説明より、実際に使ってみましょう。
- GoogleHomeへ「スーモと話したい」と言ってみましょう
- GoogleHomeへ「ホットペッパーグルメと話す」と言ってみましょう
1ヵ月かそこらでここまで作るとは、流石ですね☆スーモの人とホットペッパーの人と別々にお話をしてくださいました。
スーモのほうは資料がありませんが、ホットペッパーのほうは、slideshareでグローバルに公開されていますね。
実際にローンチしたアプリを開発する際に気を付けた点は、次のことだったそうです。
- 具体的な例文で、会話文を書くと、アプリケーションを作りやすく、イメージし易い。
- 音声入力は、「4文字以上」にする。
- ngrok(localhostで動いているサーバーを、LANの外からアクセスできるようにできるツール)を使うと、開発が効率化する。
Session5:Dialogflow + MAGELLAN BLOCKSで商品のロケーション案内するよ
MAGELLAN BLOCKSとは、機械学習を主としたクラウドサービスで、スクラッチみたいにコードレスでAIを作成できるというもの。tensorflowより自由度は落ちそうですが、ちょっと試してみるには良さそうです。海外勢ですが、MAGELLAN BLOCKS + GoogleHomeの連携ができているようです。
すごいですね!
日本も負けてられませんね。このプレゼンテーターのDialogFlow + MAGELLAN BLOCKSで、ソフトバンクのPepperに商品案内をさせるということを考えて実験したことを説明してくれました。このスライドもslideshareでグローバルに公開されていますね。
youtubeも公開されました。
開発者のお話を聞くと、スクリーンと自走するペッパーの組み合わせは相性が良い。ただし、ロボットに話しかけられると、拒絶反応を起こす人がいたり、案内をしている途中でPepperを置いて行ったりする人もいたりして、今後改善の余地があるようです。それから、どんなシステムもそうですが、レスポンスを早くする心がけがとても大事になるようです。
Session6:行き先 確認エージェントを最小手で作る
最後のSessionです。このセッションでは、以前私もためしたIFTTTという機能を利用して簡単な便利アプリを作成した経緯と苦労した点をお話ししてくれました。
苦労した点は、以下です。
- IFTTTは簡単に作れるが、修正が面倒
- DialogFlowのようにシノニム機能がないので、音声入力のブレがDialogFlowより多くなる
- 意外とコマンドを忘れるので、「ヘルプ」というコマンドを作っておくことがおすすめ。DialogFlowの場合は、DefaultFallBackにヘルプを仕込む等
- IFTTTだと、https化している必要があるが、手っ取り早くHTTPS環境を作るには、ngrokを使うと簡単
感想とまとめ
GCPUGの勉強会「Google Homeを使いたおす! DialogflowとAoG Meetup」に参加した際の、セッションの概要と面白かったこと/勉強になったこと/GoogleHomeアプリを作る際の勘所を書きました。これは、報告義務がないのですが、あとで確認してくれるのでしょうかね。それはさておき、GCPUGの有志が本気で遊ぶとGoogleHome公開2ヵ月弱でここまでのことができるようになるんですね。正直、私の技術力じゃ追いつけない。GoogleHomeの登場でVUIのアプリや他の分野の技術が進歩していくところを見ながら広がる未来を想像するのは楽しいですね☆技術職を志したころの気持ちを思い出せてとても楽しかったです。GCPUG面白い、私も何かしたいな。
コメント