ifttt
node-red
Node-REDDay 14

Node-RED(IBM Cloud) + Google home + IFTTT だけで音声会話が可能?

はじめに

2017年 Node-RED Advent Calendarの14日目の記事です。

タイトルからして不穏な感じで申し訳ありません。初投稿かつNode-RED初心者なのですが、検証中のところで時間切れとなり、途中結果のご報告となります。


実施したいこと

Google home に話しかける
→ IFTTT(Google Assistant + Webhooks)   
 → IBM Cloud(Node-red) 
  → google-home-notifier(PC) 
   → Google Homeがしゃべる

可能ならば、その後でWatsonのAPI等を用いて、機能を拡張して行きたい。

実施できたこと

Node-REDでデータを受け取るところまで。(後述)

現時点での知見として、そもそもGoogle HomeとIFTTTを連携させる部分が難しい。
特定のワード(”Twitter”や”Line”等)はそれなりに音声認識して連携できるが、それ以外の単語はほぼ不可能だった。

また、Twitter等のワードに続けて話をしても、タイミングの問題なのか、

「OK, Google Twitterでテストを実行して」 

という会話(IFTTT連携ワード:Twitterで)も、Google Home上でうまく認識できないことが多い。
さらに、IFTTT(Webhooks)→ Node-REDについても、文字の欠落が発生する場合がある。

1. IFTTTでの手順(簡略版)

Google Assistant 部分は省略

Webhooksについては
Using Google Home, IFTTT and Watson IoT Platform

を参考にして、Webhooks(Make a web request)の、
Content Type (optional) はapplication/x-www-form-urlencoded を選択
Body (optional) は、{{TextField}} と入力後、Applet作成

2. Node-RED(IBM Cloud)の手順

2−1 IBM Cloud(無償)のアカウント作成  すでに利用中の場合は2-2へ
https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/

2-2 ダッシュボード画面の左上隅のボタンから、メニューを開いてIoTを選択し、IoT サービスの作成 を行う

2-3 左側メニューから、ボイラーテンプレートを選択後、Node-RED Starter をクリック

2-4 Cloud Foundry アプリの作成 画面にて必要な情報を入力し、アプリ作成
注記1) 上記2-1 のサイトで、無償利用の場合は地域に「米国南部」を選択する必要があると記載されています(2017/12/13時点)
注記2) アプリ名は、URLの一部として使用されるため、英大文字等の利用は注意
また、アプリ名は全ユーザで共有されるようで、メジャーなワードは使用不可

2-5 Node-REDの編集
作成したアプリが実行中(緑色)になったら アプリURLをクリック (実行中になるまで5分程度必要)

プラウザ上でSecure your Node-RED editorが起動するので
アカウントを入力、 node-red-dashboard を選択して Finish

Node-RED on IBM Bluemix が表示される
Go to your Node-RED flow editer ボタン押下

3 検証手順(途中)

Google Homeに、「OK,Google Twitter テスト」 と話しかけると、Node-RED上では以下のように表示される

スクリーンショット 2017-12-13 20.23.07.png


さいごに

PCとGoogle Homeの連携は事前に確認していたので、もう少しのような気もしますが、まだハマりどころがありそうです。
中途半端な内容で大変恐縮ですが、ここまで読んでいただき、ありがとうございました。