会話のターンがあるシナリオを書く



会話のターンがあるシナリオを書く

スキルの目的とコンセプトを定義し、機能の枠組みを決めたら、次は会話のシナリオを書きましょう。映画や舞台の台本と同じように会話のシナリオを書きます。

シナリオの作成

シンプルなシナリオだけでは、ユーザーとスキルの実際のやり取りを十分に表現することはできません。ユーザーはほとんど話さなかったり、話し過ぎたり、想定外のことを話すかもしれません。シナリオを作成すると、ユーザーがスキルを使用するときに交わされるいくつもの対話の流れが視覚化されます。これにより、ロジックをストレステストして、修正が必要なエラーや考慮すべき変数を把握することができます。以下は、ぜひ試していただきたいシナリオ執筆テクニックです。

会話のターンの構成要素を理解する

Alexa向けのデザインをする際に最も簡単な方法は、まず、ターンの各要素を理解することです。ターンとは、会話の流れの進行順序を表します。下の図で示します。

ターンの4要素を紹介します。1.ユーザーの発話 2.進行状況(インテント)または状態 3.Alexaのユーザーへの返答 4.Alexaの再プロンプト(新規ターンを開始)

会話を始めるのは常にユーザー

ユーザーの発言は発話と呼ばれます。発話は、ユーザーがウェイクワードでデバイスを起動させる(またはデバイスのボタンやタッチスクリーンのボタンを押す)と開始します。続いてユーザーは、Alexaに質問かリクエストをします。

たとえば、ビルトインの天気予報サービスと対話する場合、ユーザーは次のように言います。

ユーザー: 「アレクサ、天気を教えて」


潮汐情報を調べるカスタムスキルでも発話パターンは似ていますが、ユーザーはスキルを識別する名前を含める必要があります(この例では「潮汐情報」)。

ユーザー: 「アレクサ、潮汐情報で神戸の満潮を調べて」


Alexaサービスはこの発話に対してインテントとスロットをマッピングします。たとえば、「満潮情報」や「満潮時刻」という発話は、「満潮」という値でgetTideInformationインテントと「tideLevel」スロットにマッピングされます。スキルを開発する際は、発話、インテント、スロットについて独自の対話モデルを定義します。スマートホームなどのプリビルドモデルには、事前に設定された対話モデルがありますので、それを変更して使用できます。インテントとスロットの作成に関する詳細は、インテント、発話、スロットの作成を参照してください。

インテントとスロット情報からスキルが状況を特定する

スキルは、ユーザーがこのスキルを初めて使うのか、以前に使ったことがあるのか、アクセスする必要のある情報がスキルに保存済みであるかどうかを確認します。

Alexaが応答を返す

Alexaはユーザーの質問に直接答えるか、何らかの方法でリクエストに応えます。次に例を示します。

ユーザー: 「アレクサ、天気を教えて」


Alexa: 「現在、神戸の天気は曇りです…」


別の例:

ユーザー: 「アレクサ、潮汐情報で神戸の満潮を調べて」


Alexa: 「2月17日水曜日の神戸では、最初の満潮は午前1時42分ごろで、潮位は約3メートル…」




Alexaがプロンプトを出す

関連した情報や機能がスキルにある場合、Alexaは追加の情報についてユーザーにプロンプトを出します。ない場合は、スキルのセッションをこの時点で終了します。次に例を示します。

ユーザー: 「アレクサ、天気を教えて」


Alexa: 「現在、神戸の天気は曇りです。夕方の降水確率は30%なので、傘をお持ちください」


(0.5秒間を置く)


Alexa: 「明日の天気予報は必要ですか?」


別の例:

ユーザー: 「アレクサ、潮汐情報で神戸の満潮を調べて」


Alexa: 「2月17日水曜日の神戸では、最初の満潮は午前1時42分ごろで、潮位は約3メートル…」


(0.5秒間を置く)


Alexa: 「水曜日の次の満潮時間か、別の日の満潮時間をご案内しますか?」


スマートホームの事例では、Alexaはプロンプトなしにアクションを実行し、最初の発話と応答後にターンを終了します。リクエストが完了し、ユーザーは追加の情報やアクションを必要としていないため、Alexaはプロンプトを出しません。次に例を示します。

ユーザー: 「アレクサ、リビングの照明をつけて」


(スキルがリビングの照明をつけます。)


終了までの最短ルートを書き出す

終了までの最短ルートとなるのは、ユーザーがすべての情報とスロットを一度に発話し、必要であればアカウントリンクが完了しており、一度のスキルの呼び出しでその他の要件が満たされる場合です。

ほかの道筋も用意する

ユーザーの発話には、リクエストを満たすために必要な情報が含まれていないこともよくあります。ユーザーが決定できるようにほかの道筋も用意してください。たとえば、「Xブランドについて教えて」や「カード残高を教えて」というリクエストには、一度の応答で対応できます。適宜この方法を活用して、ユーザーがスキルの主要フローに戻るのを促します。

バックグラウンドのシステムロジックを書き出す

バックグラウンドでのシステム判断を特定し、開発メモとして(対話ではなく)括弧書きしておきます。このメモは後でストーリーボードをまとめる際に役立ちます。

ようこそメッセージ、ヘルプメッセージ、エラーメッセージを書く

これらのメッセージは、どれもAlexaのエクスペリエンスに必須の要素です。スキルに合わせてカスタマイズし、ユーザーのニーズに対応できるようにしてください。

会話ターンの要素を使用した、ようこそメッセージ、ヘルプメッセージ、終了メッセージの3つの例です。

実際に試してみる

対話を十分に書き溜めたら、友人と読み合わせをして試してみます。1人がユーザー、もう1人がAlexaになります。試してみると、会話の流れが自然か不自然か、すぐにわかります。それがスキルの自然な利用方法かどうか、想定外のケースがあるかどうか、あれば組み込むべきかどうかもすぐに判断できます。

シナリオのサンプル

お食事ガイド - 最適(ハッピー)パス

ユーザー

アレクサ、お食事ガイドを開いて。

Alexa

こんにちは。 お食事ガイドへようこそ。あなたにぴったりのお食事とレストランをご紹介しますよ。探しやすくなるように、位置情報へのアクセスを許可してください。Alexaアプリをチェックするだけです。すみません、まだ聞いていませんでした。お名前を教えてください。

ユーザー

太郎です。

Alexa

太郎さん、 はじめまして。登録されたお好みの風味に合わせておすすめを提案します。辛い、ピリ辛、脂っこい、さっぱりなどと聞いてみてください。いかがでしょうか?

ユーザー

辛いけどさっぱりしたものが食べたいな。

Alexa

わかりました! 韓国料理かスペイン料理がおすすめです。今はどちらが食べたいですか?

ユーザー

韓国料理がいいな。

お食事ガイド - ヘルプ

スキルの使用中に、ユーザーからヘルプを求められる場合があります。

ユーザー

よくわからないんだけど。

Alexa

お近くのレストランか、お勧めのレシピを一緒に見つけましょう。好きな味や料理の種類、食べられないものを教えてください。ぴったりの食事が見つけられるように、がんばって調べます。

ユーザー

そうだな、タイ料理がいいかな。

Alexa

いいですね。 では、アレルギーや食事の制限についておたずねします。たとえば、ピーナッツアレルギーや、宗教上の制限、ヴィーガンなどについてです。ほかに、知っておくべきことはありますか?

シナリオをいくつか用意したら、次はストーリーボードを作成して、会話のつながりを確認します。

先頭に戻る