この記事では前回作成したプログラムをHerokuにデプロイして実際に、GoogleHomeに問いかけたら返答が来るところまでを解説します。GoogleHomeに仮想通貨のレートを喋らせるためのプログラムはこちらにあります。
おさらい:主なスマートスピーカー
以下は、2018年10月現在の主要なスマートスピーカーの一覧です。各社が提供しているスマートスピーカーには、Google Home、Amazon Echo、LINE Clova、Microsoft Invoke、Apple HomePodなどがあります。
補足)その他のスマートスピーカー
上記にはないが、スマートスピーカーだと打ち出して販売されている製品がいくつか見受けられると思います。
これらを表に載せなかったのは、他社のAIアシスタントを搭載しているからです。例えばSonyのスマートスピーカーであればGoogleAssistantを搭載しているといった具合です。今回の記事ではAIアシスタントが独自のものだけをリストアップしました。
おさらい:GoogleHomeとは
Google Homeは、2016年に北米で発売されたGoogle製のスマートスピーカーです。Google Assistantを搭載しており、さまざまな操作を音声で行えます。音楽再生や天気予報の確認、交通状況の確認などが可能です。また、スマート家電との連携も可能であり、家庭内の操作をより便利にします。
前回の続きはここから
GitHubからHerokuへのデプロイ
- 自作PythonがCoincheckのAPIを叩いてレートをjson形式で取得する
- サーバからDialogFlowにGoogleAssistantで読み込めるjson形式で返却する
なぜこれが必要なのかは、次のWebhook以降で分かります。ともかくここでは、前回の記事で作成したCoincheckのAPIを叩いてレートを取得し、json形式に整えて返却するPythonをWeb上で特定のリクエストを投げることで動くWebAPIとして登録する必要があるという事です。その為のサービスとしてある程度無料で使えるHerokuを利用しました。
やり方は参考にしているリポジトリをインスパイアしてGitHubへのアップロード時にreadme.mdを真似してください。そうするとDeployボタンが表示されるので、これを押すだけでDeployできます。
あとは、デプロイ時の名前を好きな名前にすると勝手にデプロイが始まるのでほっときます。
Webhook
- DialogFlowとサーバ(heroku)をWebhookを使って接続する
Webhookとは?
Webhookはあるアプリケーションから別のアプリケーションに対してリアルタイムな情報提供を実現するための仕組みです。ものすごくわかりやすいサイトがあったのでこちらを見た方が理解できるかもしれません。→Webhookって何?を子どもでもわかるように描いてみた
普通にスマートスピーカーでAと聞いたらBと返すという様な固定の返答をしたい場合は右側(オレンジ枠)を介する必要がありません。DialogFlowだけで完結できます。そうではなく、今回のようにリアルタイムな情報を別のサービスから問い合わせたいという希望が出た時に、このWebhookが必要となります。
WebhookでDialogFlowとHerokuをつなぐ
DialogFlowのFulfillmentタブからWebhookをEnableにしてデプロイしたherokuのドメインをコピーしてURLの欄に貼り付けます。
としてSAVEする。さらに、各IntentsにFulfillmentが増えてるのでこのIntentでは使う場合チェックをしてSAVEをし直す。
実際に動かすためにGoogleAssistantと連動
あとは実際に動作チェックを行います。Integrationsの中にあるGoogleAssistantを選択して色々やって、実際に動かしたのがこちらになります。(私の声が汚いのはお許し下さい)
まとめ
実際に動かすまでの道のりは、情報がないと何をやったらいいかわからなくて時間がかかりましたが整理されるとすごく簡単でした。備忘録として書いておきます。誰かの参考になれば・・・
コメント