オライリーの Designing Voice User Interfaces を読んでいる(5章)Part1

今回は第5章に入る。第2章ではVoice User Interfaceについての基本的なデザイン手法について説明がされたが、この章ではもう少し発展的な内容に踏み込んでいく。

筆者はまずiOSに搭載されているSiriとAmazon Echoなどに搭載されているAlexaの大きな違いについて述べている。

違いというのはすなわち「Voice First」なインターフェースか否かということだ。

Kathryn Whitenton曰く、SiriにおけるVoice User Interfaceはあくまでもインターフェースの1つでしかないために挙動に偏りがあるらしい。

どういうことかというと、Alexaでは全てのSkillを声で使う前提でいるのに対し、Siriではそんなことはないため、ユーザーさんの発話をブラウザの検索クエリとして受け取りがちになってしまい、検索以外の意図での発話の失敗率が高まるとのこと。

それはそもそもiOSアプリでは受け取りたいユーザーさんの発話の定義を開発者側でコントロールすることができない(はず、少なくとも去年まではプリセットのIntentから受け取りたいものを設定するくらいしかなかった)のが原因ではという気がするが、音声アシスタントそのものを開発している人間の目線からの話なのかもしれない。

上の例は少し違和感を感じるが、「Voice First」なインターフェースかどうかが違いを生むのは僕自身もかなりそう思っている。

例えば最近ちょくちょく出てきてる液晶搭載のスマートスピーカーなんて既存のタブレットと同じじゃんみたいな意見をたまに聞くが、僕としては全くそんなことはなくて、置き型電話と携帯電話くらいの差はあると思っている。主に誰がどういうモチベーションで買うかという点で。

話が少し逸れたが、この章では上に出たSiriのようにならないよう、発話の意図を汲み取ることに失敗しないようなテクニックについていくつか紹介されている。

ここでいう失敗は、その「意図」に対応した挙動はできるのだが、そもそも「意図」を拾うことに失敗している、Alexa Skillで例えるとIntentの定義はあるもののサンプル発話が貧弱でIntentを拾いきれていない場合である。

発話の意図を拾うことに失敗する原因は多くが発話のボキャブラリーを考慮していない場合だと思う。例えば以下の例がわかりやすい。

アシスタント「明日14時に予約を確定します。よろしいですか?」
ユーザーさん「それでよろしく」
アシスタント「すみません、よくわかりませんでした」

すなわち、アシスタントは「はい」か「いいえ」という返事しか想定しておらず、「はい」の別のバリエーションである「それでよろしく」には対応していなかったということだ。

これはもう思いつくパターンの発話を全部書き出すしかない。サンプル発話の定義に正規表現が使えるものもあったりするのでそれを使うのもひとつの手だ。

また、発話の意図を拾うのに失敗するもう1つの例として、ユーザーさんからの発話に欲しい情報が十分にない場合がある。その場合のフォローも大事だ。

例えば、カフェでコーヒーを注文するシーンについて考える。人間同士の会話だと少し稀ではあるが以下のような例が挙げられている。

店員「ご注文は何になさいますか?」
客「大きいので」
店員「かしこまりました」

多分この例では店員と客はそれなりに顔馴染みなのだろう。いつもコーヒーを注文しているというコンテキストがあるからコーヒーの大きいサイズを注文していることが理解できている。

が、アシスタントに飲み物の「種類」と「サイズ」が含まれた発話しか理解しないようにさせていると上手く発話を拾えないのでサンプル発話に組み込んでおく必要がある。

そして、上のような情報の不十分な発話を処理する場合、人間同士のようにコンテキストを把握して推定することもできなくはないが、以下のようにやったほうがより確実だと述べられている。

アシスタント「ご注文は何になさいますか?」
客「大きいので」
アシスタント「コーヒーになさいますか?紅茶になさいますか?」

ようするに不完全な情報を補完できるような質問を投げかけるのだ。

インタラクションは増えてしまうのでこの方法を使うかコンテキストの把握を頑張るかはケースバイケースだと思う。

逆に発話に情報が多すぎる場合も考える必要がある。例えば以下の例だ。

アシスタント「症状はなんですか?1つ教えてください」
患者「風邪と熱があります」

アシスタント側は1つの症状に対してなんらかのアドバイスをするつもりが2つ渡されてしまった。

この場合には以下の対処法が挙げられる。

- 最初の情報だけを受け取る

この場合「風邪」に対するアドバイスを返す。

- 聞き直す

「すみません、症状をまずは1つだけ教えてもらえませんか」

- どちらか選ばせる

「風邪と熱、どちらについてのアドバイスを受けたいですか?」

これは全体のDialog Flowによってどのようにするかはケースバイケース。個人的にはポールグライスの「質」の格率を考えると2番目かなぁという気はする。自分ができることを正しく伝えるという意味で。

次回は第5章Part2

この記事が気に入ったらサポートをしてみませんか?