魅力的なスキルを開発する

VUIをデザインする

ユーザーとAlexaの対話を理解する

スキルのVUIをデザインする前に、ユーザーがAlexaとどう対話するかを理解する必要があります。ユーザーはウェイクワードを使ってAlexa搭載デバイスをスリープ状態から復帰させ、質問やリクエストをします。画面付きのAlexa搭載デバイスでは、スキルが対応していれば、画面をタッチしてAlexaと対話することもできます。

ユーザーとAlexaとの対話例をいくつか紹介します:
user interaction diagram

VUIをデザインする目的

人は何千年もの年月をかけ、言葉や意思疎通の規範を習得し、進化させ、定義してきました。一方、機械が人との会話の仕方を学んできた時間はほんのわずかでしかありません。 音声インターフェースならではの課題もあります。たとえば、会話中のコンテキストの切り替えやあいまいさ、インテントの特定、ユーザーの現在の状態や気分に気付けない、などです。ユーザーに優れたエクスペリエンスを提供するには、スキルを開発する際にこうした課題を考慮したプランを立てる必要があります。 次のビデオでは、VUIを慎重にデザインしないことで起こりうるさまざまな問題をいくつか紹介します。

この例では、ユーザーが1回で必要な情報をすべて提供していますが、Alexaはそれらの情報を一度に解析できません。Alexaがユーザーの発話を理解できないわけではありません。スキルのVUIが、人間の自然な会話から情報をうまく推論できるようにデザインされていないことが問題なのです。

この例では、コンテキストから必要な情報を取得できていることを、Alexaが認識できていません。 ここでも、VUIデザインが状況のコンテキストから情報を推論できていません。それどころか、特定の質問の回答を何度も求めています。これでは、ユーザーは不満に思うでしょう。

この2つの例から、VUIは人間同士のような自然な会話にできるだけ近い形でデザインすることが重要だとわかります。VUIをうまくデザインすることで、スキルの使いやすさもユーザーの満足度も飛躍的に高まるのです。

うまくデザインされたVUIの特徴

自然なコミュニケーション手段を使う

ユーザーに機械と会話するために新たな言語を学習したり、ルールを覚えたりするよう強制してはいけません。機械がユーザーの思考パターンに合わせるのであり、その逆ではありません。

情報を簡単に見つけられる

スキルのVUIでは、音声コマンドを使って、情報の階層から重要な情報に簡単にたどり着けるようにします。

視覚やタッチに頼らないエクスペリエンスを開発する

音声インターフェースは、ユーザーが目や手を離せなくてもタスクを実行できるようにします。

一緒に楽しめるエクスペリエンスを作り出す

自然な会話によってユーザーがコラボレーションしたり、助け合ったり、一緒に遊んだりできるような音声エクスペリエンスを提供します。たとえば、Alexa搭載デバイスを使って、家族で一緒にゲームをプレイできるようなエクスペリエンスです。

デザインで考慮すべきこと

スキルのVUIデザインで重要なのは、自然な会話にすること、スキル全体を通してユーザーにとって魅力的であること、そしてAlexaのペルソナを変えないことです。魅力あるVUIをデザインするために考慮すべき点を以下にまとめました:

1. Alexaのペルソナを変えない

Alexaは、親しみやすくて明るく、面倒見のよい性格です。タスクの妨げになっているものがあれば正直に言いますが、楽しく皆に好かれます。世間話もしますが、決して押し付けがましくならず、不適切な発言もしません。

スキルの話し方やトーンをAlexaのペルソナに近づけるようにしてください。VUIを自然で会話的にするというのも1つの方法です。 「ありがとうございます」や「すみません」など、応答にバリエーションを付けるのもよいでしょう。質問でユーザーの関心を惹きつけるのも、優れたVUIデザインのテクニックです。

Echo device

Alexaには、正しい答えを教えてくれる面倒見のよさが必要です。次の例を見てみましょう:

良い例

Alexa:不正解でした。もう一度挑戦してください。権利章典が署名された年はいつ?

ユーザー: 1986年

Alexa: 残念。はずれです。正解は1791年でした。

Smiley
悪い例

Alexa:不正解でした。もう一度挑戦してください。権利章典が署名された年はいつ?

ユーザー: 1986年

Alexa: 間違いです。次に進みましょう。

frowny face

冗長な質問することでユーザーの関心をそらさないようにします。例えば、「はい」か「いいえ」で答えてもらう質問をしているのに、あえてそれを聞くような質問は冗長です。 次の例を見てみましょう。

良い例

Alexa: ショッピングを続けますか?

Smiley
悪い例

Alexa: ショッピングを続けるかどうか教えてください。 「はい」と「いいえ」のどちらですか?

frowny face

2. 目で読むのではなく耳で聞くことを前提にする

書き言葉に比べて、話し言葉は堅苦しさがなく砕けています。このため、Alexaがユーザーにたずねるプロンプトを書く際には会話調にすることが重要です。
また自分で言ったときには問題なくても、読み上げ機能(TTS)を使うと不自然に聞こえる場合があります。
テスト用デバイスでプロンプトを聞いてみて、どう聞こえるかに合わせて修正することが重要です。
VUIが堅苦しくならないようにする次の例を見てみましょう。

Echo device

Keep your VUI informal. The following is an example.

良い例

Alexa: プレイリストを探しています。

Smiley
悪い例

Alexa: プレイリストを取得しています。

frowny face

2つ以上の選択肢がある場合は、それらの選択肢をユーザーに提示し、どちらがよいかをたずねます。次の例を見てみましょう。

良い例

Alexa: 物語を話すか、詩を朗読するか、歌を歌うことができます。どれがいいですか?

Smiley
悪い例

Alexa: 物語を話してほしいですか、詩を朗読してほしいですか、それとも歌を歌ってほしいですか?

frowny face

3. コンテキストとの関連性を保つ

コンテキストとの関連性が高い順に選択肢を並べて、ユーザーが理解しやすいようにします。いったん別の話題に関する選択肢を示した後、また元の話題に関する選択肢を示すことはしないでください。そうすることで、ユーザーは最も関連性の高いオプションはどれなのかを簡単に判断し、理解したうえで適切な答えを選択できます。次の例を見てみましょう。

Echo device
良い例

Alexa: その番組は明日午後9時に再放送されます。新しいエピソードの放送日時、ほかの番組の放送日時、その他のリクエストを受け付けます。どれがいいですか?

Smiley
悪い例

Alexa: その番組は明日午後9時に再放送されます。ほかの番組の放送日時、この番組の新しいエピソードの放送日時、その他のリクエストを受け付けます。どうしたいですか?

frowny face

4. 一息で話せる長さにする

タスク完了に必要なステップをできるだけ少なくして会話を簡潔にまとめます。メッセージをシンプルにしてなるべく要点だけを伝えます。次の例を見てみましょう。

Echo device
良い例

Alexa: ゲームを始めますか?

Smiley
悪い例

Alexa: それではそろそろ新しいゲームを始める準備はできましたか?

frowny face

5. ユーザーを惹きつける工夫をしてリテンション率を高める

Alexaスキルはユーザーの心をつかみ、ユーザーと共に成長していけるものであるべきです。そのために、初めてスキルを使うユーザーにも100回目のユーザーにも満足できるエクスペリエンスを提供する必要があります。
既にスキルに慣れているユーザーには、提供する情報が少なくなるようデザインします。リピーターにも以前聞いたことのない新しいダイアログを提供して、マンネリ化しないようにします。

Echo device
良い例

初回起動時:
Alexa: イマジナリーラジオへの登録、ありがとうございます。阪神タイガースなどのチーム名、神戸などの場所か、セントラルリーグといったリーグを指定することで、試合のライブ配信を聞くことができます。音楽専門局やジャンルをリクエストすることもできます。何を聞きたいですか?

2回目以降の使用:
Alexa: イマジナリーラジオへお帰りなさい。キッズジャムステーションをまた聞きますか?

Smiley
悪い例

初回起動時:
Alexa: ASKラジオへの登録、ありがとうございます。何を聞きたいですか?

2回目以降の使用:
Alexa: お帰りなさい。何を聞きたいですか?

frowny face

発話のコンポーネントとインテント

スキルのVUIを作成するには、ユーザー発話のコンポーネントについて知ることが必要です。以下の図でコンポーネントをクリックすると、それぞれの詳細が表示されます。

utterances and intents diagram

ウェイクワード
ウェイクワードにより、Alexaはユーザーのコマンドの聞き取りを開始します。

起動フレーズ
起動フレーズは、アクションを次のプロセスに移行させるための言葉です。これにより、Alexaはその次に続く言葉がスキルの呼び出しだと理解します。起動フレーズには、「教えて」、「聞いて」、「起動して」、「開始して」、「使って」などがあります。

呼び出し名
ユーザーがスキルとの対話を始めるために、言う必要のある名前です。たとえば、十二星座占いスキルを使う場合、「アレクサ、十二星座占いに私の運勢を聞いて」のように言います。

発話
簡単に言うと、発話はユーザーの言うリクエストのことです。音声リクエストにより、スキルを呼び出したり、スキルに情報を伝えたり、Alexaのアクションを確認したりすることができます。ユーザーがリクエストする方法をできるだけたくさん考えてみましょう。

スロット値
スロットとは、ユーザーの音声リクエストに含まれる入力値のことです。これらの値により、Alexaはユーザーのインテントを理解できます。 この例では、ユーザーは出発日として「来週の金曜日」という入力情報を提供しています。この値はインテントのスロットであり、Alexaがスキルコードの処理のためにLambda関数に渡します。
さまざまなタイプのスロットを定義できます。上記の例のtravel dateスロットはAmazonの標準AMAZON.DATEタイプを使用して日付(「今日」や「次の金曜日」)を示す単語を日付形式に変換します。from Cityとto Cityはどちらも標準AMAZON.CITYスロットを使用します。
旅行でどのようなアクティビティを予定しているかユーザーにたずねるようこのスキルを拡張した場合、カスタムスロットタイプLISTOFACTIVITIESを追加して、「ハイキング」、「ショッピング」、「スキー」などのアクティビティのリストを参照することができます。

インテント
インテントとは、ユーザーの音声によるリクエストを満たすアクションのことです。インテントでは、スロットという引数を任意で使用することもできます。

インテントのスロットを特定する方法

発話をいくつか作成したら、変数情報を表す単語またはフレーズに注目してください。これらがインテントのスロットになります。

 

発話 マッピング先
金曜日に旅行に行きます TRAVEL_DATE
京都に行きたい」 TO_CITY
次の金曜日神戸から京都に行きたい」 FROM_CITY, TO_CITY, and TRAVEL_DATE
神戸から京都ドライブしています」 MODE_OF_TRAVEL, FROM_CITY, and TO_CITY
京都ハイキングするためにドライブ中です」
MODE_OF_TRAVEL, TO_CITY, and ACTIVITIES



スキルが複雑で何度も会話のやり取りが繰り返される(マルチターンの会話)場合、任意でスキルのダイアログモデルを作成することもできます。ダイアログモデルとは、各インテントを実行するのに必要なすべての情報を収集する、スキルとユーザー間のマルチターンの会話に関する手順を指定した構造体のことです。情報を集めるための質問用のコードの記述を簡素化できます。

対話モデル

スキルのコンポーネントについての知識があれば、対話モデルも理解しやすくなります。対話モデルとは、スキルに指定した発話、インテント、スロットを組み合わせたものです。 対話モデルを作成するには、リクエスト(インテント)とフレーズ(サンプル発話)を定義します。定義に基づいて、Lambdaのスキルコードはスキルがどのように各インテントを処理するかを判断します。まず机上でインテントと発話を定義し、それらを繰り返し使ってユーザーがスキルと対話するできるだけ多くの方法に対応できるよう考えます。 その後、 Alexa開発者コンソールで、インテント、発話、スロットを作成します。コンソールでは、対話モデルのJSONコードが作成されます。JSONの対話モデルは、任意のJSONツールを使って自分で作成してから、コピーして開発者コンソールに貼り付けることもできます。

Echo device

音声デザイン

人間同士の会話を再現できるよう、スキルをデザインすることがもっとも重要です。コードを書く前に、ユーザーがスキルとどのように対話するのかを入念に考える必要があります。このステップを省略してしまうと、ユーザーとの対話がうまく行かない使いにくいスキルが完成してしまいます。
また、フローチャートを使って会話の分岐を考えたくなりますが、それもやめてください。 フローチャートは会話的とは言えません。フローチャートは複雑で読み上げることができません。また、カスタマーサポートの自動応答メニューのような使いづらいエクスペリエンスとなってしまいます。カスタマーサポートに電話して自動応答メニューを選択するのが好きな人はいないので、使わないようにしましょう。代わりに、シチュエーショナルデザインを使います。

シチュエーショナルデザイン

シチュエーショナルデザインとは、音声ユーザーインターフェースをデザインするための音声ファーストな方法です。会話に集中させる単純なダイアログからデザインしてみましょう。ユーザーとスキルの各対話をターンと呼びます。ターンには、コンテキストを表す状況があります。スキルを初めて起動するユーザーの場合、まだわかっていないデータのセットが存在します。たとえば、Cake Timeをユーザーが最初に起動したとき、スキルはまだそのユーザーの誕生日を知りません。この状況では、スキルは「お誕生日を教えてください」と聞きます。 ユーザーが誕生日を答えると、スキルは次回使えるようにその情報を保存します。次にスキルと対話するとき、スキルはその日がユーザーの誕生日かどうかをチェックします。誕生日であればお祝いの言葉を伝え、誕生日でなければ次の誕生日までのカウントダウンを伝えます。
シチュエーショナルデザインでは、会話の際に過去に遡って情報を入手します。ユーザーとAlexaとの各対話はターンとして処理されます。下の例の状況では、ユーザーの誕生日はまだわかっておらず、スキルはユーザーに誕生日をたずねる必要があります。

situational design diagram

各ターンはユーザー発話、状況、Alexaの応答を含むカードを使って表すこともできます。

situational design diagram

これらのカードを組み合わせて、ユーザーとスキルとの対話を時系列に表すストーリーボードを構成してもよいでしょう。フローチャートと違い、ストーリーボードは会話的です。

次のモジュールでは、Alexa開発者コンソールでCake Timeスキルの対話モデルを作成する方法を学びます。