パソナについて
記事検索

Google Homeでできること | 自分で雑談機能を開発するに至るまで

突然ですが、昨年末にGoogle Homeを購入しました。今何かと話題のGoogle Home。「Google Homeと雑談がしたい。」ただその願いを胸に、今回はGoogle Homeができることを一つずつ見ていきましょう。

Google Homeでできること | 自分で雑談機能を開発するに至るまで

突然ですが、昨年末にGoogle Homeを購入しました。今何かと話題のGoogle Home。「Google Homeと雑談がしたい。」ただその願いを胸に、今回はGoogle Homeができることを一つずつ見ていきましょう。

知識・情報

2018/04/09 UP

こんにちは。

前回、チャットボット開発に関する記事を執筆しました。

今回はその流れで、AIスピーカーをチャットボット化してみようと思います。

スマートスピーカーやAIスピーカーと言われる製品の1つである、Google Home。

同様の製品がTVCMでも頻繁に流れ、今話題のジャンルのひとつです。

「この波に乗りたい…でもいまいち何ができるかは分からない。」

そんな方も多いかと思います。

はじめは自分もその一人でした。

しかし大事なのは、「何ができるか」よりも「何がしたいか」。

そう、やりたかった事が1つだけありました。

「Google Homeと雑談がしたい。」

そもそもこの願いは叶うのか?

その為には何をしないといけないのか?

Google Homeができることを踏まえて、一つずつ見ていきましょう。

Google Home でできること

Google Home でできること

「OK Google、近くの美味しいラーメン屋さん教えて。」

Androidスマホをお持ちの方なら、一度は発してみた事があるのではないでしょうか?

「OK Google」に続けて質問を投げると、Google検索の結果が帰ってきます。

iPhone版では「Hey, Siri」ですが、それも同じ機能ですね。

Google Home も同様に、「OK Google」に続けて何かを問いかけることで、下記のようなことを、Google Homeが答えてくれます。

Google が調べ物をしてくれる

これはAndroid端末でもしてくれることですが、端末を手に持てないシーンにおいても、話しかけることでGoogle Homeが答えてくれるのは便利です。

外出先ではなく、家庭や職場での利用となるため、

  • 今日や週末の天気を尋ねる
  • これから出かける先までの交通情報を尋ねる
  • これから作りたい料理のレシピを検索する
  • スポーツの結果速報を尋ねる

などといったことが主な使いみちかと思います。

音楽やラジオを再生してくれる

Google Homeは、定額制の音楽配信サービス「Google Play Music」や「Spotify」、ニュースサービスの「Radiko」などとの連携が可能となっており、これらのサービスのコントロールを、Google Homeから行えます。

何が便利かといえば、アーティスト名や曲名ではなく、その時の気分を伝えればそれに合ったものを再生してくれるところでしょうか。

スケジューラやタイマーとして使う

「7時に起こして」や「25日に電気の支払日です、とリマインダーして」など、日々のタスクとあわせたスケジューラ管理が可能です。

またGoogleカレンダーと連携させていれば、その日の予定もGoogle Homeを通じて確認することが可能です。

家電をコントロールする

YoutubeやNetflixといったサービスとも連携できるGoogle Homeは、見たい番組を伝えるとそれを再生してくれます。

またPhilips社のHueのようなLEDデバイスなら、「少し暗くして」と伝えると、照明の明るさを調整できます。

こういう事ができてくると、未来がかなり現実になったな、と思えますね。

という事で、何も開発しなくても、様々なサービスと連携させることで、自身の生活をよりスマートにしてくれるのが、Google Homeです。

Google Homeに話しかけてみる

では実際に話しかけてみましょう。

※音声が出ますのでご注意ください

…ちょっと頭に入ってきませんね。

話しかければ調べものをしてくれるのは便利なのですが、地図やUIなどで視覚的に理解力を向上させられるスマホと違い、Google HomeのようなAIスピーカーは、聴力に対して一定のリズムでしか話せないため、情報の理解力が落ちます。

音楽の再生やデバイスの制御などには抜群の利便性を誇るスマートスピーカーですが、情報の取得の点においては、まだまだ課題レベル、改善の余地は多いにあると言ってよいでしょう。

Google Home と雑談するには

Google Home と雑談するには

という事で、今回の本題です。

やりたい事はただ1つ。

「Google Homeと雑談がしたい。」

そのためには何をしないといけないのか?まずは対話の仕組みから見てみましょう。

よくあるチャットボットのしくみ

対話の仕組みを知るには、LINEなどのチャットボットを例にしてみると、理解が早いと思います。

よくあるチャットボットのしくみ

チャットツールで話しかけられると、その裏側で動いている自然対話処理サービスは、発話内容が記載されたファイル(一般的にはJSONファイル)を受信します。

このファイルの中からユーザーがなんと言ったのか?が記された部分を抜き出し、そのように発言した場合はこう返す、というルールに乗っ取り返答分を適用します。

これを、再度、チャットツールの仕様に沿った形でファイル化され(一般的にはJSONファイル)、チャットツールに送信。

この内容が、返答内容として表示されます。

Google Homeのしくみ

Google Homeは、この処理の前後に「音声→テキスト化」「テキスト→音声化」の処理を挟んでいるだけだと思えば簡単です。

Google Homeのしくみ

VoiceToTextやTalkToTextと呼ばれる技術を使って、音声をテキスト化し、自然対話処理サービスに投げる事ができれば、チャットボットと同様のしくみを使って、自由にGoogle Homeと対話ができるようになります。

これまで紹介してきたGoogle Homeの機能は、Google Home内部でこの処理の途中に外部サービスとの連携をしており、処理結果を返答文として発話しているに過ぎません。

この内部機能を、「Google Assistant」と呼びます。

という事で、この自然対話処理サービスとGoogle Home内のGoogle Assistantが連携できれば、今回の目的である「自由な雑談」も可能ということです。

そのために必要な機能とサービスが、「Action on Google」と「Dialogflow」になります。

Action on Google

Action on Googleは、Google Assistant用のアプリケーションを開発できるサービスです。

今回で言うところの、Google Assistantと自然対話処理サービスとの連携役を担ってくれます。

昨年のはじめくらいはGoogle Assistantがまともに日本語対応されていなかったため、あまり日本語処理をするシーンでは使われていなかったのですが、現在はかなり日本語対応が進んだことで、Action on Googleを利用したGoogle Home用のアプリ開発もできるようになりました。

Dialogflow

Dialogflowは、米国で開発された多言語対応された自然対話処理プラットフォームです。

2016年にGoogleが買収したことでGoogleのクラウドサービスの1つとして、自然対話部分を担うようになりました。

Action on Googleを介したGoogle Assistantとの連携は、Google Cloud Platform上で共通のプロジェクトを使用することで簡単に行うことができます。

ユーザーがなんと言ったら、なんと返すか?を自分の好きに設定すれば、Google Homeとの対話がその通りに行うことができます。

という事で、早速試してみましょう。

Dialogflowで雑談ルールを作ってみる

Dialogflowで雑談ルールを作ってみる

雑談の難しいところは、「相手がどのような感情でそれを発言しているか?」を読み解かないと、適切な返事ができないところにあります。

機械学習で言うところの「アノテーション」の作業が重要ということです。

という事で、3分クッキング的ではありますが、一般の雑談に見られる「発言の感情分類」を下記のように行ってみました。

発言の感情分類

全部で33分類。

これくらいあれば、なんとか雑談ぽくできるのではないでしょうか。

Dialogflowでは、ボットの事を「エージェント」と呼びます。

今回ように作成したエージェントに、上記の33ルールを返答パターンも含めて設定をしていきます。

ルール設定後は、Action on Googleを使ってDialogflowとGoogle Homeを連携させればOKです。

ここまでノンプログラミングでできてしまうのが本当に素晴らしいです。

Google Homeでエージェントを呼び出す

Google HomeからDialogflowのエージェントを呼び出すには、「OK Google, ◯◯を呼んで」や「OK Google, ○○につないで」と、エージェント名を呼んであげます。

今回はコラム用という事で、エージェント名を「コラム」にしました。

早速コラムを呼び出してみましょう。

※音声が出ますのでご注意ください

この後は、そのまま話しかければ、Dialogflowで設定したルールに沿って対話ができます。

※音声が出ますのでご注意ください

対話の間があることは仕方ないとして、まぁそれなりにスムーズな会話ではないでしょうか。

ただちょっと気がかりなのは、「自分が設定した返答しか返ってこないこと」です。

複数パターン登録することでランダムな返答はできますが、それでも固定の文章であることには変わりません。

では、返答文も機械学習の結果から生成されるサービスを使って、この課題を解消してみましょう。

docomoの雑談対話APIを利用してみる

docomoの雑談対話APIを利用してみる

docomoの「しゃべってコンシェル」というサービスはご存知ですか?

かなり以前からある機能で、TVCMでも流れていたため、docomoユーザー以外でもご存じの方は多いのではないかと思います。

ユーザーの音声による質問に対して、回答や操作が行えるサービスですが、この中の「雑談対話」のような事ができるAPIが、雑談対話APIになります。※機能としては異なるようです。

docomo developer supportに登録し、利用申請を行うことで利用することができます。

これとDialogflowを連携させることで、こちらが設定した内容とは別の、自動生成された対話を行うことができるようになります。

実際に連携してみました。

※音声が出ますのでご注意ください

…いかがでしょうか?

先程よりもちょっとだけ、雑談している感がでてきたのではないでしょうか…?

何にせよ、Google Homeに感情をもたせたりなどというレベルまでは行かないにしろ、ちょっとだけGoogle Homeと仲良くなれた気はしています!OK Google!

さいごに

さいごに

今回は雑談したい!という欲求に任せての開発となりましたが、Action on Googleを通してできることは、まだまだたくさんあります。

様々なインターネットサービスやIoT製品と組み合わせるられるということを、実はまだまだ知らない方も多いのが現状です。

機械学習というとPythonができないといけない、というイメージもありますが、ノンプログラミングでもここまでできますし、JavaScriptやPHPと言ったWeb開発のスキルでもできる事は十分あります。

ぜひ興味のある方は、できるところから試してみてくださいね。