金曜日, 3月 02, 2018

スマートスピーカー登場でアプリの設計概念が変わる

耳にタコができるほど書いているのでもう良いと言われそうだがスマートスピーカーが各社から発売開始されたことでアプリのインターフェイスがGUIからVUIへと大きく変わろうとしている。スマートスピーカーは音楽を楽しむだけではなくスマートホームのハブとして役目を与えられている。そのためにAmazonとGoogleはどちらの方が多くのアプリ(スキルやアクション)を持っているかが話題の中心にあり発売も後発でHomeアプリでコントロール可能なものがわずかにあるだけのHomePodは大きく出遅れていると世間では言われているし大きな間違いではない。

今回はそんなスキルやアクションを起動するためのVUI(音声ユーザーインターフェイス)によってアプリの根本的な設計変更が必要なことについて書いてみたい。PC黎明期にはコンピュータへの命令はテキストコマンドの形で行うCUIだった。それ以前はパンチングカードでの入力だったが流石に知らない人の方が多いと思うのでここでは省くことにする。CUIベースのコンピュータの時代ユーザーは起動するための正しいコマンドを覚える必要があった。正しいコマンドを知らなければパスワードを忘れたのと同じように二進も三進も行かなかったのだ。これではコンピューティングの知識を持っていなければ操作は不能だったため使える人は限られていた。

XeroxのPARCをパクったかどうかはスルーしてMacintoshの登場によってGUIが新たなコンピューティングの方法を形作った。テキストを打つ必要がなければメニューやボタンを選択するだけでコンピュータの操作を行えるようになったのだ。単純化して今えばそれまでのアプリケーションはどのキーにどの命令を割り振るかがプログラミングで一番重要なポイントだった。GUIではメニューのどの位置に命令を割り振るか、ボタンを配置するかが重要となってくる。ユーザーインターフェイスで一番重要なのは見ただけで何が起こるかを想起させられるデザイン力だった。そしてGUIはiPhone の登場によってマルチタッチの形で一つの完成を見たと言えるだろう。

そしてスマートスピーカーの登場だ。AirPodsの登場によってヒアラブルと言う言葉が登場したがAirPodsは賢いヘッドセットに位置する製品。単独で音楽を聴けるわけでもスマートホームのコントローラーになるわけでもない(いずれはそうなると思うが)。その部分を担うのがスマートスピーカーだが現状のスキルやアクションはAIをベースにしたDBから命令や質問に対する回答を呼び出すコマンドに過ぎない。要するに音声認識エンジンが優秀になったおかげでキーボードを打たずに命令を実行できるようになっただけなのだ。だからユーザーはスキルとそれに対応する質問を覚える必要がある。一つの命令でカーテンを閉め、灯をともしエアコンをオンに出来たとしてもそれはスクリプトの実行と何ら変わらずAIによる処理とは到底呼べない。スマートスピーカーであってAIスピーカーではないと言うのは事実である。

世間ではディープラーニングの能力が雌雄を決すると信じているようだがどんなにクラウド上のデータが賢くなろうがVUIのインターフェイスがPC黎明期のCUIレベルであったら物好きのおもちゃで終わってしまうに違いない。どれが一番優れているかと比較されているAlexaやGoogleアシスタントは発話からコマンドワードを見つけ出し連続して発せられた名詞に関するアクションを起こしているに過ぎない。つまりCUIレベルだと言うことだ。違いがあるのはサーバーに蓄えられた情報量の差なのだがそれはキーボードによる検索と同じものを選び出しているだけに過ぎない。

CUIがGUIに変わったようにVUIも何気ないユーザーの会話の文脈から何をしようとしているかを正しく判断し、特定の命令語なしでそのために必要な処理を独自に行えるようにならなければいけない。例えばAさんが「ただいま」と言った場合に玄関のスマートロックを解除するだけではなく外部センサーから得られる情報を元に部屋の明かりを最適な明るさで灯し、室温を自動設定し、お気に入りのテレビ番組を時間に応じて選ぶくらいのことをやってくれなければいけない。つまりネットワークされたスマート機器のタイムフロートとユーザーのワードとの関連を学習してくれるのだ。現状はそれは一つのワードに複数の処理を登録する形で行われているが、いずれはワードに伴って特定の時間内に行われた行動情報をベースに「お風呂を沸かしますか?」とユーザーに問いかけるレベルにならなければいけない。VUIを成り立たせるにはAIをベースとした対話システムが必須だがGUI型プログラミングとの違いを並べてみたい。

GUIプログラミング
・配置:誤操作を防ぐためのメニューやボタンの配置
・配色:視認性を高めるための配色

VUIプログラミングに必要な基盤システム
・音声認識
・自然言語処理
・コンテキストから何をしたいかを類推する解析エンジン
・様々な単語から何を考えているかを類推するためのシソーラス

VUIプログラミング
・シナリオ:時間の流れをコントロールするためのシナリオ
・時間管理:操作の流れを止めない時間配分
・ログ:対話のフローを時間の流れで管理
・相槌:対話を促すためには応答だけではなく相槌も必要
・間:ユーザーの会話の流れを止めないために話に割り込まない

結論:まだ、本物のVUIは登場していない。

0 件のコメント: