2018年8月24日 10:13

Googleアシスタントクイズを作ってみた

GoogleのAIアシスタント、「Googleアシスタント」を使ったクイズを作ってみました。Googleのスマートスピーカー「Google Home」で利用する前提で、Googleアシスタントが3択クイズを出して、ユーザがそれに音声で回答するというものです。

実は先日の子ども参観日向けにクイズを制作するため、Googleスピーカーアプリ「SHACHIKUN」の開発者、新技術活用推進班の金谷に勉強会を開いてもらったのですが、エンジニアではない広報室でもノンプログラミングで開発できるその手軽さに驚きました。

kanatani_gpb.png<勉強会の先生、金谷>

ものすごく簡単に説明すると、Googleアシスタントのサードパーティ連携機能Actions on Googleで、[Trivia]のテンプレートからプロジェクトを作成して、紐づけしたGoogleのスプレッドシートにクイズを書き込めばできあがりです。Triviaのテンプレートの使い方は公式サイトで詳しく解説されているので、今回は簡単な手順と所感をご紹介します。

プロジェクトの新規作成

Googleアカウントにログインした状態で、Actions on Googleに移動します。Actions on Googleでは、Googleアカウントさえもっていればインストールなどは不要でGoogle HomeやAndroid向けのGoogleアシスタントの機能開発が行えます。

https://console.actions.google.com/

[Add/import project]で新しいプロジェクトを追加し、プロジェクト名を入力して言語(Japanease)、国(Japan)を選択し、[CLEATE PROJECT]をクリックします。

2018-08-21_143118.png

[Welcome to your Projects,xxxx]という画面が表示されるので、下にスクロールして[More options]の「Template」をクリックし、「Trivia」を選択。

2018-08-21_143903.png

プロジェクトが作成できました。

2018-08-21_144042.png

プロジェクトの設定

左の[Invocarion]メニューで、アプリ名と声を設定し、右上の[SAVE]で保存します。

2018-08-21_154423.png

左の[Actions]メニューから「Content」で紐づけするスプレッドシートのURLを入力します。サンプルのスプレッドシートをコピーして、

2018-08-21_154842.png

コピーしたスプレッドシートのURLをコピー、

copytrivia.png

[NEXT]でコピーしたスプレッドシートのURLを設定します。

このスプレッドシートの内容が、クイズになります。Questionに問題を書いて、「Correct Answer」に正答を、「Incorrect Answer」に他の選択肢を入力するだけ。「Follow Up」には回答後の解説を入力します。

[Simulator]メニューで、テストをします。今回は、スピーカー用のアプリケーションなので、[Surface]はSpeakerを選択します。

2018-08-23_164025.png設定等を更新したら、[CHANGE VERSION]でバージョンを保存して、繰り返しテストします。

2018-08-24_093606.png

シミュレーターがスピーカーモードでもテキストでのテストは可能です。周囲にたくさんの人がいるフロアでは、なんとなく気恥ずかしくてテキストでテストしてしまいがちですが、音声で利用する場合は音声でテストすることが絶対に必要です。理由は、次の「課題と所感」で。

作成したクイズは、一般公開しなくても開発したGoogleアカウントと同一のアカウントで設定したGoogle Homeで利用できます。

課題と所感

実は、このクイズは子ども参観日に向けて1ヶ月近く前から準備していました。会社説明のあと、Google Homeから出題されるKDLクイズに答えてもらうつもりだったのです。しかし当日、クイズの名前だった「子ども参観日」は正しく認識されず起動されない自体に。。

テストではうまく動いていたので、テストしている間にAIアシスタントが学習してしまったのではないかと考えています。

2018-08-24_091113.png

焦りましたねー。子どもたちも想定外の行動を起こしてくれますが、まさかクイズまで想定外とは・・。ここまでくるとインシデント対応です。ポカーンとする子どもたちを横目にクイズはすっ飛ばして先に進み、事なき(?)を得ました。やむなく電源を抜かれたGoogle Homeはセミナールームの隅っこで見学。。

2018-08-24_091117.png

Action on Googleを用いたクイズの制作には数々の課題にぶち当たりました。

例えば、社長の名前は?というクイズの正答として「永吉社長(代表名は永吉一郎)」としても、「えいよし」という読みで認識してしまうため、選択肢として「えいよし」と伝えてしまったり、ひらがなで「ながよし社長」と登録していても、音声入力されたデータは「永吉社長」と漢字変換されて認識されてしまい、正解と認識されなかったり。しかたなく「一郎」として正答を登録すると、音声入力では「イチロー」と入力されてしまい一致しない。やむなく、代表名は「イチロー」で登録しました。

判別しにくい単語もありました。社名のクイズで「神戸デジタルラボ」「神戸ベジタブルラボ」「神戸デンタルラボ」と選択肢を用意しても、滑舌次第で「ベジタブルラボ」と「デジタルラボ」を音声で判別できず、正答でも「違います」といわれることも。

KDLが運営する沖縄料理居酒屋「空」の店の名前を回答させるクイズでは、「皿」と「空」の音声を判別できず、「皿」でも「空」でもGoogle Homeからは『正解です!』と褒められる自体に。

音声マイニングの壁

なぜこのようなことが起こるのでしょうか?

それは、音声データを分析するデータとして扱うには、テキストデータに変換する必要があるためです。音の元である空気の振動を電気信号に変換し、波形として記録したものをテキスト(文字)に直すわけですが、その波形から漢字なのかひらがななのかを判別することはできません。そこで、文脈で判断することも研究されていますが、今回のようにクイズ形式に単語で答えるような場面では解決は困難です。

このあたりは、Amazon Alexaでも、LINE Clovaでも共通の課題だそうです(金谷談)。漢字、カタカナ、ひらがな、などいくつもの表記体を持つ日本語は、音声データのマイニングが非常に難しいようです。文脈ではなく単語で答えるクイズなのでなおさらなのかもしれませんね。現時点では、このような場合は辞書を登録していくことになります。実際に専門分野に特化した辞書を持つAIエンジンもあります。

音声認識の課題にぶつかった一方で、すべてログが残るという点は大きな魅力だと感じました。音声データがテキストに変換されて蓄積されれば、分析対象としてテキストマイニングが可能です。子ども参観日で認識せずに焦っているときも、Google Homeで音声が認識されて「だめだねー」「ひらがなに変換されてないんじゃないかな」というつぶやきが入力されていました。これらも紛れもない「生の声」です。貴重なデータになるに違いありません。

KDLでは、音声による新しいUIの実現とデータの活用も推進しています。日本では課題が多いのかもと思いながらも、問い合わせはかなり増えて参りました。実際、ハンドフリーによる操作の便利さに感動することもあります。

どんなことに適しているのか?もっと便利に、音声データをもっとフル活用できるように、研究を続けて参ります!

ページの先頭に戻る