1.はじめに
以前、以下のクラフトビール好きのLINEBot「麦子さん」を作りました。
【ビール女子麦子さん】 IBM WatsonとLINEでbotを作ってみた
https://qiita.com/paco_itengineer/items/5981c22edc60494383e6
つくってみたー!!中身はWatson Assistant(Watson Conversation)です。会話のスキル作るの楽しい!!
— はぁこ🌸ビール女子麦子開発中 (@paco_itengineer) April 20, 2019
これからビールの知識を増やして立派なビール女子に育てます😃 pic.twitter.com/nZfuqH4IfC
でも、ビールを飲んで酔いが回ってくると、スマホでLINEに文字で入力することが面倒くさくなってきて、「音声入力できればいいのに!」と思うようになりました。そこで、今回は、以前作ったWatson Assistantの会話の仕組みをもとにGoogleHomeMiniでしゃべらせる仕組みを作ることにしました。
ちなみに、GoogleHomeMiniはゴールデンウィーク(今年は10連休!)のセールで、半額の3,250円でゲットしました🌟
2.つくるもの
ビールに好きのWatsonチャットボット「麦子さん」を、GoogleHomeMiniにつないで音声で対話できるようにする!
・IBMCloud の WatsonAssistant
・node-RED
・Actions on GoogleのActions SDK
(最初Dialogflowを使ったのですがうまくいかず、Actions SDKにしました)
3.参考にした資料
以下の2つの記事を参考にさせていただきました。最初は①に従って進めていたのですが、DialogflowからWatsonにつなぐ部分で行き詰ってしまい、②のやり方に変更しました。
①Google Home MiniとWatson Assistantを連携する
https://qiita.com/e21084/items/38e2407e3b6fff0e40f3
②GoogleHomeとWatsonでChatbotを作ってみた
https://qiita.com/ymunemasa/items/0bdcbc8cc39a1ab79ea0
4.作り方
基本的には②に従って設定すればOKなのですが、はまった部分がいくつかありましたので記しておきます。
(1)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
②gactions.exeをユーザーホーム下に置く
ダウンロードしたgactions.exeをユーザーホーム下に置きます。
C:\Users\XXXX(ユーザ名)\gactions.exe
③初期化する
コマンドプロンプトからgactions init
を実行します。
※gactions CLIについての補足
私は当初、適当な場所に置いて実行して「あれ?うごかない!」となっていました。そこで、手っ取り早く動かすためにユーザーホーム下に置いてしまいましたが、**「環境変数でパスを通しておく」**というのが正しいやり方な気がします。よくよく見ると、公式ドキュメントにも書いてありましたね。
(2)GoogleHomeMiniへのつなぎ方
②の資料の**「3.Watson Conversationの会話フローを作成する」の部分は、すでにLINE用の麦子さんBOTとして構築済みだったので、「2.Watson Conversationサービスに接続する」**まで終わったところで、GoogleHomeにしゃべらせようとしたのですが、やり方がわからなくてはまりました。
この時点では、PC上のAction on googleのシミュレータでは実行できるのですが、どのようにGoogleHomeにつなぐのかわからないという状態でした。
やり方は簡単でした。**「Action on googleを開発したアカウントを、GoogleHomeアプリでGoogleHomeと連携する」**でした。当たり前といえば、当たり前なのですが、私はGoogleHome用のGoogleアカウントと普段使い用のGoogleアカウントを別にしていたのでここではまりました。
5.できあがり!
こんな感じで出来上がりました。実際にはGoogleHomeMiniで発話できているのですが、動画で残すのがむずかしいので、スマホのGoogleAssistantで実行した結果をはっておきます。
音声入力だと、誤認識をしたり、漢字への変換誤りがあったりして、思うように反応しないこともあります。「麦子さん」はよく「まきこさん」と認識されてしまうので、もうすこし発音しやすいキャラ名にすればよかったなーと思っています。
麦子さんのGoogle Assistant版です!音声入力だと「麦子さん」が「まきこさん」と認識されてしまうという問題が。わたしの滑舌が悪いせいかな?!もっと呼びやすい名前にすればよかったのかなー pic.twitter.com/swzVnCUqVX
— はぁこ🌸ビール女子麦子開発中 (@paco_itengineer) April 29, 2019
※動画編集で早送りしているので、アシスタントの声は少し高く早口になっています。