デザインの構成要素を作成する



デザインの構成要素を作成する

シナリオ執筆の次のステップは、ターンの概要を説明したシナリオをストーリーボードに変換することです。これにより、一般的なすべての道筋を検討し、それ以外の状況やエラーへの対応を追加できます。

ストーリーボードを作成する

ストーリーボードとは、時間に沿って1つの方向に進む会話の流れを表したものです。これは、会話のターンのシミュレーションに適しています。最初のストーリーボードはハッピーパス(ユーザーがスキルをたどるうえで一番望ましい道筋)にします。

ターンを左から右へと配置し、ユーザーが時間と共にスキルをどう進んでいくかを示します。

バリエーションを追加する

ハッピーパスを作成したら、その下にいくつかのバリエーションを追加します。たとえば、スキルを開始する時に言うようこそメッセージを複数用意するなどです。この場合、ハッピーパスの最初のようこそメッセージの下に新しいターンを追加します。

このストーリーボードでは、最初のカードの下にそのバリエーションが表示されています。

特定のターンでいくつかのバリエーションを作成したら、ユーザーが想定外のことを言ったときに対応するストーリーボードを作成します。ストーリーボードを作成することで、デザインの中でどんなバリエーションを作成すべきかを把握しやすくなります。あらゆるケースを想定してデザインすることで、スキルを使用するユーザーのエクスペリエンスが向上します。

再テストする

音声デザインの問題点を見つけるには、ストーリーボード内のセリフを読み上げるのが効果的です。シナリオと同様に、友人に手伝ってもらい、ストーリーボードを流れに沿って読み上げてテストしてください。テストするたびにほかのバリエーションを試し、思い浮かんだ変更点をメモしていきます。シナリオと同様に、スキルにおける自然な部分だけでなく、不自然な、あるいは機械的な部分も簡単に把握できます。

対話モデルを定義する

対話とデザインの流れを決めたら、これをスキル開発に結び付けていきます。スキル開発をしたことがあれば、既にご存知のはずです。ユーザーの発話はインテントにマッピングされて、スキルが行う固有のアクションを表します。たとえば、休暇の計画ができるスキルの場合、インテントは旅行の計画や旅行の予約などとなります。

すべてのユーザーが同じようにインテントを呼び出すとは限りません。スキルに対してユーザーがどのようなアクションを要求するのかを幅広く想定しておく必要があります。たとえばユーザーは、「旅行を計画して」ではなく「次の金曜日にハワイに行きたい」と言ってアクションを呼び出すかもしれません。使いやすいスキルにするためには、完璧な発話だけでなく、情報が一部欠けている発話やあいまいで断片的な発話まで、いろいろなパターンを網羅します。そしてAlexaが対応できる範囲をさらに広げるために、細かな表現の違いや誤った発音の表現も含めるようにしてください。たとえば、贈り物の場合、「プレゼント」だけでなく「ギフト」や「お土産」など、ほぼ同じ意味であってもさまざまな表現を含めるようにしてください。次の例は、発話が各要素にどう分解されるかを示しています。

インテント、発話、スロットがどのように定義されているかを理解するため、発話とインテントを各要素に分解しています。

先ほどの「次の金曜日にハワイに行きたい」の例では、ユーザーはワンショット発話と呼ばれるある種の過剰応答をしています。この発話には、スキルがインテントを起動するために必要な情報が、ほぼすべて含まれています。ワンショット発話は、スキルの途中だけでなく、スキルの起動時にも行われることがあります。たとえば、「アレクサ、トリッププランを開いてハワイへのフライトを予約して」といった具合です。 こうした過剰応答への対応は、ダイアログ管理を使用して処理する必要があります。

ユーザーからのコマンドが不完全で、部分的な情報しか含まれていないこともあります。そのような場合は、プロンプトを出してさらに情報を求める必要があります。次に例を示します。

ユーザー: 「茅ヶ崎海岸にウィンドサーフィンしに行きたい」


Alexa: 「出発予定日はいつですか?」



ユーザーのニーズに応えるために必要な情報がすべて得られるまで、Alexaに質問させる必要があります。やり取りの中で、ユーザーは一度言ったことを訂正して正しい内容を話すこともあります。こうした場合に会話の中で必要な情報を取得できるようにしておきます。次に例を示します。

Alexa: 「承知しました。次の金曜日に沖縄でウィンドサーフィン、出発地は神戸ですね。この内容で予約しますか?」



ユーザー: 「いや、行き先は茅ヶ崎海岸だよ」


Alexa: 「承知いたしました。次の金曜日に茅ヶ崎海岸でウィンドサーフィン、出発地は神戸ですね。予約しますか?」



ビルトインインテントを使用する

すべてのAlexaスキルはキャンセル(Cancel)、停止(Stop)、ヘルプ(Help)機能を備える必要があります。これら3つのインテントや、リピート(Repeat)、再生(Play)、次(Next)などの一般的なインテントには、標準ビルトインインテントを使用してください。Alexaサービスにはビルトインインテントがあらかじめ設定されているので、Alexaはそれに対応する発話を認識できます。たとえば、ヘルプインテントを使用すれば、ユーザーがヘルプを求めるときの発話を自分で定義する必要がなくなります。あらかじめ定義された以外の言い回しにも対応する必要がある場合は、ビルトインインテントを拡張することもできます。これにより、ビルトイン機能をカスタマイズして、そのスキル固有のニーズに対応させることができます。

スロットを決定する

スロットによって発話内に可変部分を指定することで、より詳細なカスタマイズが可能になります。スロットは何らかのタスクを実行するスキルや情報を扱うスキルでよく使用されます。一般的なスロットタイプとしては、日付や場所があります。スロットはビルトインカタログから選択することも、自分で作成することもできます。

たとえば、発話が 「次の金曜日、シュノーケリングをしに沖縄に行きたい」

である場合、次のようにスロットを指定できます。 「[date]、[activity]をしに[place]に行きたい」

この場合、スロットは活動、日付、場所を表します。多くのスロットはビルトインライブラリを使用して入力可能であるため、すべてを手動で追加する必要はありません。これにより、Alexa全体でエクスペリエンスに一貫性を持たせることができます。

先頭に戻る