kun432's blog

Alexaなどスマートスピーカーの話題中心に、Voiceflowの日本語情報を発信してます。たまにAWSやkubernetesなど。

〜スマートスピーカーやVoiceflowの記事は右メニューのカテゴリからどうぞ。〜

Voiceflowでやってみるシチュエーショナルデザイン ③わかりやすくする Part1

f:id:kun432:20200719214237p:plain

Voiceflowでやってみるシチュエーショナルデザインの第3回です。今回は「わかりやすくする」がテーマです。「わかりやすくする」というのはどういうことでしょうか?サブテーマの方も「階層型のメニューではなく、すべてのオプションをトップに配置すること」とあります。ちょっとよくわかりませんね。実際に試しながら見ていきましょう。

Alexa道場のシチュエーショナルデザインの回はこちら。

シチュエーショナルデザインの日本語ドキュメントは以下にあります。

ちなみに、今回はこちらではなくて、まず英文の「シチュエーショナルデザイン」のホワイトペーパーの方をベースに説明します。ホワイトペーパーは以下でダウンロード可能です。

そのあとで日本語のドキュメントにあるプリンシパルに沿ってVoiceflowでどう実装するか?を説明します。ちょっと長くなりそうなので、2回に分けます。

この記事は「Voiceflowでやってみるシチュエーショナルデザイン」シリーズの第3回 Part1の記事です。他の記事は以下にあります。よろしければあわせて読んでみてください。

第1回 第2回 第3回 Part2 第4回

「階層型のメニューではなく、すべてのオプションをトップに配置すること」とは?

まず、GUIとVUIの違いを理解するために、題材としてショッピングアプリを考えてみましょう。

GUIの場合

Amazon.co.jpのiPhoneアプリで「ギフトカードの番号を入力したい」とします。アプリを開いてみましょう。

f:id:kun432:20200718024847p:plain

最も頻度が高いと思われる「商品検索」は上のテキストボックスから行います。その他、今のおすすめ商品やよく使われるメニューが並んでいますね。で左上にハンバーガーメニューがありますので、ここをクリックします。

f:id:kun432:20200718024921p:plain

「アカウントサービス」をクリックします。

f:id:kun432:20200718024315p:plain

「アマゾンギフト券を登録する」をクリックします。

f:id:kun432:20200718024503p:plain

はい、ここですね。

f:id:kun432:20200718025037p:plain

GUIだとこんな感じで、順にメニューをたどっていくのは一般的によく見ますよね。ではこれをVUIでそのままやるとどうなるでしょうか?

GUIでやることをVUIで同じようにやってみる

アレクサ、「ショッピング」をひらいて

ショッピングへようこそ。メニューから選択してください。

(メニューって何があるのかな・・・)何ができるの?

商品名で検索する場合は「◯◯で検索」と言ってください。それ以外にも、カテゴリー検索、注文履歴、再び購入、欲しい物リスト、アカウントサービス、・・・などがあります。どれにしますか?

(長くて覚えられない・・・もう一度聞いてみよう・・・)もう一度言って

商品名で検索する場合は「◯◯で検索」と言ってください。それ以外にも、カテゴリー検索、注文履歴、再び購入、欲しい物リスト、アカウントサービス、・・・などがあります。どれにしますか?

(たしかギフトカード番号の登録はアカウントサービスだったっけ?・・・)とりあえず、アカウントサービスで

アカウントサービスでは、注文履歴、定期お得便、支払方法の変更、・・・、ギフトカード番号の登録、・・・、などが行なえます。どれにしますか?

(またこれも長いなぁ・・・でも、ギフトカード番号の登録はできるみたい・・・)ギフトカード番号の登録

ギフトカード番号の登録、ですね。番号を言ってください。

えっと、1234567890で

ギフトカード番号は、1234567890,ですね。よろしいですか?

はい

ごめんなさい、エラーが発生しました。時間をおいてもう一度最初からやりなおしてください。

もういいよ!!!!

これはちょっとたいへんですね・・・

VUIならでのやり方

ではこのやり方ならどうでしょうか?

アレクサ、「ショッピング」をひらいて

ショッピングへようこそ。何をしますか?

(何ができるかわからないけど試してみるか・・・)ギフトカード番号を登録したいんだけど

ギフトカード番号の登録ですね。番号を言ってください。

(あ、できるんだ!)えっと1234567890

ギフトカード番号1234567890を登録しました。お客様の残高に5000円が追加されました。それではショッピングをお楽しみください

わーい

これなら楽にできそうですね!

VUIとGUIの違いを理解する

一般的にGUIは情報量を多く表示することができますので一覧性に優れています。ただそれでもあまりにも多すぎるとわからなくなります。そこで使用頻度などに応じて、よく使うものはトップに、それほど使われないものは階層化されたメニューを用意してカテゴライズされた各メニューからやりたいことを絞り込んでいくという形を取ることが多いです。その上、選んだメニュー内に見つからなかったとしても、戻って別のメニューを探すというのもそれほど負荷が高いわけではありません(数タップで戻れるわけですし、一覧を見ればいいだけなので)

これに対して、VUIの場合、

  • 多すぎるメニューは説明が長くなり、覚えていられない。
  • 深すぎるネストは、今自分がどの階層にいるのか、わからない。
  • やり取りが多くなると、時間がかかる上、やり直しになると、やる気を失う。

つまり、より「ダイレクトに目的にたどり着ける」ような作りにすることが求められるというわけです。これが「階層型のメニューではなく、すべてのオプションをトップに配置すること」ということなのですね。

実践してみよう

ということで前フリがながくなりましたが、実際に見てみましょう。第2回で紹介した「お菓子フレンド」を少し変えてみました。

f:id:kun432:20200718183308p:plain

最初にレシピを知りたいお菓子の名前を言うと、3つのメニューが選択できて、それぞれ動きが変わるというものになっています。選択できるのは以下の3つです。

  • 材料と手順の両方を知りたい
    • 材料を読み上げたあと、手順の動画が再生される
  • 材料だけを知りたい
    • 材料の説明だけをしてくれる
  • 手順だけを知りたい
    • 手順の動画再生だけをしてくれる

実際の動きはこんな感じです。サンプルなので「クッキー」にしか対応できていないこと、実際に動画は再生されないことをご了承ください。まず両方聞きたい場合。

f:id:kun432:20200718185739p:plain

材料だけの場合。

f:id:kun432:20200718185752p:plain

手順だけの場合。

f:id:kun432:20200718185806p:plain

はい、想定通りには動いてますね。3つのメニューのところを少し見てみましょう。

最初にdessert_intentでお菓子名を取得したあと、このChoice Blockで発話に応じたメニューの分岐を行っています。

f:id:kun432:20200718190021p:plain

  • 材料と手順の両方を知りたい
    • recipe_intent
  • 材料だけを知りたい
    • ingriedient_intent
  • 手順だけを知りたい
    • direction_intent

それぞれのインテントはこんな感じになっています。

f:id:kun432:20200718184532p:plain

f:id:kun432:20200718184546p:plain

f:id:kun432:20200718184614p:plain

ちゃんと分岐もできてはいますが、最初にお菓子名を言ってから毎回この分岐を行うというステップを踏まないといけないのは手間ですね。普通、レシピが知りたい場合は両方を知りたい場合が多いでしょうし、ユーザが慣れてきてどちらかだけでいいならもっと具体的に発話することになると思います。ということで、最初のChoice Blockですべてのインテントを受けれるようにしましょう。最初のChoice Blockの現在の設定はこうなっています。

f:id:kun432:20200718190731p:plain

dessert_intentが一番一般的な発話になっているので、この場合は材料と動画をそのまま再生することにします。ここに、材料だけを知りたい場合のingriedient_intentと、手順だけを知りたい場合のdirection_intentを追加します。Voiceflowでは一旦登録したインテントは別の場所では選択するだけで呼びだすことができますので、1からインテントを登録し直す必要はないです。

"Add path"をクリックします。

f:id:kun432:20200718191433p:plain

ingridient_only_intent がリストに出てきますのでこれを選択します。

f:id:kun432:20200718191520p:plain

最初のChoice Blockのインテントとして追加されました。Utterancesをクリックしてみてください。

f:id:kun432:20200718191602p:plain

サンプル発話も最初に登録してあるものがそのまま呼び出されていますよね。ただ、ここにはお菓子名を受け取るスロットが含まれていませんので変更しましょう。

f:id:kun432:20200718191644p:plain

こんな感じです。

f:id:kun432:20200718194958p:plain

同じようにして、direction_intentも最初のChoice Blockで受け取れるようにします。

f:id:kun432:20200718195231p:plain

これで、メニューに使っていた真ん中のChoice Blockは不要になりますので、フローを以下のように変更します。

f:id:kun432:20200718200154p:plain

最初のChoice Blockで受け取るインテントによってフローが分岐するようになりました。ではテストしてみます。

まずは普通に。

f:id:kun432:20200718211844p:plain

材料だけ。

f:id:kun432:20200718211907p:plain

手順だけ。

f:id:kun432:20200718211920p:plain

はい、余分なステップが減って、いろんな応答に一発で答えれるようになりましたねー。


シチュエーショナルデザインの第3回「3. わかりやすくする:階層型のメニューではなく、すべてのオプションをトップに配置すること」Part1でした。VUIでは音声のみの対話となり、メニューによる手続きが増えたり時間が長くなったりすると、ユーザにとってはそれを学習するための手間や頭の中で考えることが増えてしまいます。なるべくダイレクトにユーザの要望に答えれるようにしましょう。

次回はPart2です。日本語ドキュメントにある個々のプリンシパルを見ていきたいと思います。

続きはこちら