2017年12月6日水曜日

iPhoneでもApp Inventor!(その3)

 iPhoneでもApp InventorThunkable)の第3弾です。今回は、Thunkable for iOSに備えられたAssistantというブロックを使った簡単な例です。これは、音声(またはテキスト)で、iPhoneと会話するものです。AssistantはGoogleのDialogflowの仕組みを使って音声応答するものです。

 そのアプリの使用例を示します。音声で、「学科忘年会」とか「卒論提出日」とか、iPhoneに向かって問うと、「2017年12月26日です」とか「2018年1月25日です」という答えが表示されます。

個人用 SiriのようなiPhoneアプリ


 日付に限らず、「外部資金課の〇〇さんに謝らなくては」、とか「教務課の△△さんに伝えなくては」という場合の電話番号取得などにも使えます。

 このような音声検索には、AppleのSiriGoogleの音声検索(OK Google)等があります。でも、例えば、本物のSiriに「卒論提出日」と問いかけても、まともに答えは返ってきません。本学科のローカルな情報ですから当然ですね。そこで、上記のような言わば、「私の個人的Siri」のようなものがあってもいいですね。

Siriに「卒論提出日」を聞いてもだめです

さて、このiOSのアプリは、以下のような僅かなブロック(処理)の組み合わせて作れます。Assistantという名のブロックを使っています。

ThunkableのAssistantブロックの利用


 そして、音声の問い合わせと日付の対応は、以下のようにGoogleのDaialogflowで定義します。それを、Assistantに接続しています。

Dialogflowによる会話のためのデータの定義


 このDialogflowは、クラウド上で設定されており、以下の特徴があります。
  • iPhoneアプリケーションを変更することなく、このDialogflowのデータを追加、修正でき、段階的に、実際に役に立つものに仕上げることができる。
  • 類似語「忘年会」、「学科忘年会」 ... などもsynonymsとして、思い付いたらどんどん追加できる。
  • 下記のように、ユーザが音声で問い合わせた場合の状況を示し、Dialogflowの学習状況を改善することができる。例えば、「卒研発表」と音声で問い合わせたつもりが、かなりの場合、「卒検発表」と誤認識された様子が分かる。学習改善に繋がる。
  • と思っていたら、いつの間にか例えば「卒論の提出」でも正しく日付が提示されるようになりました。「の」を含んだものは上記Dialogflowには自分では設定していませんでした!

「卒研発表」のつもりが「卒検発表」と誤認識された状況も分かり、学習を改善できる