【ビール女子麦子さん②】 IBMWatsonとGoogleHomeでしゃべる麦子さんを作ってみた

#１．はじめに
以前、以下のクラフトビール好きのLINEBot「麦子さん」を作りました。

**【ビール女子麦子さん】 IBM WatsonとLINEでbotを作ってみた**
https://qiita.com/paco_itengineer/items/5981c22edc60494383e6
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">つくってみたー！！中身はWatson Assistant(Watson Conversation)です。会話のスキル作るの楽しい！！<br>これからビールの知識を増やして立派なビール女子に育てます😃 <a href="https://t.co/nZfuqH4IfC">pic.twitter.com/nZfuqH4IfC</a></p>&mdash; はぁこ🌸ビール女子麦子開発中 (@paco_itengineer) <a href="https://twitter.com/paco_itengineer/status/1119612368240005120?ref_src=twsrc%5Etfw">April 20, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

でも、ビールを飲んで酔いが回ってくると、スマホでLINEに文字で入力することが面倒くさくなってきて、**「音声入力できればいいのに！」**と思うようになりました。そこで、今回は、以前作った**Watson Assistantの会話の仕組みをもとにGoogleHomeMiniでしゃべらせる仕組み**を作ることにしました。

ちなみに、GoogleHomeMiniはゴールデンウィーク（今年は１０連休！）のセールで、**半額の3,250円でゲット**しました🌟

#２．つくるもの
ビールに好きのWatsonチャットボット「麦子さん」を、GoogleHomeMiniにつないで音声で対話できるようにする！

・IBMCloud の WatsonAssistant
・node-RED
・Actions on GoogleのActions SDK
(最初Dialogflowを使ったのですがうまくいかず、Actions SDKにしました）

![イメージ画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/ab4c68a2-ac44-fad1-f014-7c661892641c.png)

#３．参考にした資料
以下の２つの記事を参考にさせていただきました。最初は①に従って進めていたのですが、DialogflowからWatsonにつなぐ部分で行き詰ってしまい、②のやり方に変更しました。

①Google Home MiniとWatson Assistantを連携する
https://qiita.com/e21084/items/38e2407e3b6fff0e40f3

②GoogleHomeとWatsonでChatbotを作ってみた
https://qiita.com/ymunemasa/items/0bdcbc8cc39a1ab79ea0

#４．作り方
基本的には②に従って設定すればOKなのですが、はまった部分がいくつかありましたので記しておきます。

##（１）gactions CLIの使い方
私は②の記事の**「1.固定メッセージを返すbotを作る」**の**「Action Packageを作成する。」**の部分ではまってしまったので手順を記しておきます。

参考までに、公式ドキュメントでは以下のページの「Create an Action package」の部分に記載されています。
**Create a Project and Action Package**
https://developers.google.com/actions/sdk/create-a-project


###①gactions CLIのダウンロード
まず、gactions CLIをダウンロードします。
https://developers.google.com/actions/tools/gactions-cli
![Gaction01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/299024/4d318ca6-7074-a132-38fd-c0e4b29db268.png)

###②gactions.exeをユーザーホーム下に置く
ダウンロードしたgactions.exeを**ユーザーホーム下**に置きます。
`C:\Users\XXXX(ユーザ名）\gactions.exe`

###③初期化する
コマンドプロンプトから`gactions init`　を実行します。

###※gactions CLIについての補足
私は当初、適当な場所に置いて実行して「あれ？うごかない！」となっていました。そこで、手っ取り早く動かすためにユーザーホーム下に置いてしまいましたが、**「環境変数でパスを通しておく」**というのが正しいやり方な気がします。よくよく見ると、公式ドキュメントにも書いてありましたね。

##（２）GoogleHomeMiniへのつなぎ方
②の資料の**「3.Watson Conversationの会話フローを作成する」**の部分は、すでにLINE用の麦子さんBOTとして構築済みだったので、**「2.Watson Conversationサービスに接続する」**まで終わったところで、GoogleHomeにしゃべらせようとしたのですが、やり方がわからなくてはまりました。

この時点では、PC上のAction on googleのシミュレータでは実行できるのですが、どのようにGoogleHomeにつなぐのかわからないという状態でした。

やり方は簡単でした。**「Action on googleを開発したアカウントを、GoogleHomeアプリでGoogleHomeと連携する」**でした。当たり前といえば、当たり前なのですが、私はGoogleHome用のGoogleアカウントと普段使い用のGoogleアカウントを別にしていたのでここではまりました。

#５．できあがり！
こんな感じで出来上がりました。実際にはGoogleHomeMiniで発話できているのですが、動画で残すのがむずかしいので、スマホのGoogleAssistantで実行した結果をはっておきます。

音声入力だと、誤認識をしたり、漢字への変換誤りがあったりして、思うように反応しないこともあります。「麦子さん」はよく「まきこさん」と認識されてしまうので、もうすこし発音しやすいキャラ名にすればよかったなーと思っています。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">麦子さんのGoogle Assistant版です！音声入力だと「麦子さん」が「まきこさん」と認識されてしまうという問題が。わたしの滑舌が悪いせいかな？！もっと呼びやすい名前にすればよかったのかなー <a href="https://t.co/swzVnCUqVX">pic.twitter.com/swzVnCUqVX</a></p>&mdash; はぁこ🌸ビール女子麦子開発中 (@paco_itengineer) <a href="https://twitter.com/paco_itengineer/status/1123007464851402755?ref_src=twsrc%5Etfw">April 29, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

※動画編集で早送りしているので、アシスタントの声は少し高く早口になっています。