発話をテストして対話モデルを改善する
対話モデルを作成したら、発話プロファイラーを使って発話をテストします。発話を入力し、インテントやスロットがどのように解決されるかを確認できます。ある発話が正しいインテントを呼び出さない場合、スキルのコードを書く前にサンプル発話を更新して再テストできます。
前提条件
発話プロファイラーは、対話モデルを定義してビルドした後に使用できます。
発話プロファイラーはエンドポイントを呼び出さないため、スキルモデルのテスト用にサービスを作成する必要はありません。
発話をテストする
- 開発者コンソールのビルドページにある任意のセクションから、右上隅のモデルの評価ボタンをクリックします。
- 発話プロファイラータブを選択します。
- テストする発話を入力して、送信をクリックします。
発話プロファイラーの結果を確認する
発話を送信すると、選択したインテントとその他のインテント候補がプロファイラーの下部に表示されます。選択したインテントにダイアログモデルがある場合、発話プロファイラーにはダイアログモデルの関連プロンプトが表示され、ダイアログを続行できます。選択したインテントにダイアログモデルがない場合、「セッション」は終了し、プロンプトは表示されません。
- 選択したインテント
- この発話に対してスキルに送信されるインテントが表示されます。選択されたインテントがない場合、「
N/A」と表示されます。このインテントが想定どおりではない場合、モデルのサンプル発話を更新します。 - 他のインテント候補
- Alexaがテスト発話の候補に選択したが、実際には使用しなかった他のインテントが表示されます。想定したインテントがここに表示された場合、サンプル発話を更新してあいまいさを解消する必要があります。
結果に表示される各インテントには、以下の情報が含まれます。
- インテント
- 選択されたか、候補に挙がったインテントです。対話モデルで定義したとおりに表示されます。Alexaが発話をどのインテントとも一致させられなかった場合、「なし」と表示されます。インテント名の横にあるチェックボックスは、マルチターンダイアログがインテント全体を確認したか、拒否したかのいずれかを表します。これが該当するのは、選択したインテントにダイアログモデルがあり、インテント全体の確認が必要と設定されている場合です。
- スロット
- インテントの各スロットを一覧表示し、発話から識別した該当するスロット値を表示します。スロット名の横にあるチェックボックスは、マルチターンダイアログがスロットを確認したか、拒否したかのいずれかを表します。これが該当するのは、スロットにダイアログモデルがあり、スロットの確認が必要と設定されている場合です。
- スロットが複数の値を収集するように設定されている場合、値はカンマで区切られます。複数の値を収集するスロットの詳細については、Collect Multiple Values in a Slot(英語のみ)を参照してください。
- 次のダイアログ
- ユーザーからの次の応答に対するダイアログのアクションが表示されます。インテントにダイアログモデルがある場合にのみ適用されます。ダイアログのアクションとは、ダイアログモデルで定義したプロンプトを使用して、Alexaが完了しようとするダイアログステップのことです。考えられるアクション:
ElicitSlot– 発話がスロットの要求プロンプトをトリガーした場合。スロットに対する有効な値で応答できます。ConfirmSlot– 発話がスロットの確認プロンプトをトリガーした場合。「はい」か「いいえ」で応答できます。ConfirmIntent– 発話がインテントの確認プロンプトプロンプトをトリガーした場合。「はい」か「いいえ」で応答できます。

テスト発話の形式
テスト発話を入力する場合、書き言葉と話し言葉のいずれでも入力できます。また、数値は漢数字(「五」)で表記します。その他の例については、カスタムスロットタイプの値のルールを参照してください。
マルチターンのダイアログをテストする
スキルにダイアログモデルがある場合、発話プロファイラーを使ってマルチターンの会話フローをテストできます。ダイアログモデルのあるインテントを呼び出す発話を入力すると、スキルは、ダイアログを自動でAlexaにデリゲートし、Alexaがダイアログの次の手順を決定します。プロファイラーにAlexaがユーザーから詳細情報を取得するためのプロンプトが表示されるので、それに対する応答を入力します。会話のやり取りは、ダイアログが完了になるまで続けることができます。
前述のとおり、次のダイアログ列はユーザーが行う次のダイアログのアクションを表します。たとえば、スキルに3つの必須スロット(fromCity、toCity、travelDate)を持つPlanMyTripインテントがあるとします。次のダイアログをテストできます:
ユーザー: アレクサ、トリッププランに私が金曜日に出発すると伝えて
Alexaのプロンプト: 出発地はどこですか? (ダイアログのアクション: ElicitSlot)</em>
ユーザー: 神戸
Alexaのプロンプト: 旅行先はどちらですか? (ダイアログのアクション: ElicitSlot)</em>
ユーザー: 札幌
Alexaのプロンプト: では、2019年1月18日に神戸を出発して札幌に向かう旅程を作成します。よろしいですか? (ダイアログのアクション: ConfirmIntent)</em>
ユーザー: はい。
ダイアログが完了したので、発話テストは終了です。選択したインテントにはPlanMyTripと値が入力された3つのスロットが表示されます。</em>
ダイアログをテストする際の制限事項
マルチターンのダイアログをテストする際のフローは、単純なダイアログのシナリオと同じです。つまり、コードでダイアログを処理するのではなく、ダイアログのターンを毎回デリゲートします。発話プロファイラーはエンドポイントを呼び出さないため、スキルコードで実行時に判断を行ったり、他のDialogディレクティブ(Dialog.ElicitSlot、Dialog.ConfirmSlot、Dialog.ConfirmIntent)を使ったりする、より複雑なダイアログはテストできません。
また、スロット検証は発話プロファイラーでサポートされません。プロンプトは、スロットの要求、スロットの確認、インテントの確認のためにのみ表示されます。
関連トピック
- スキルの対話モデルの作成
- インテント、発話、スロットの作成
- カスタムスロットタイプの作成と編集
- 必要な情報を収集、確認するためにダイアログを定義する
- スロット値の検証
- Alexaデザインガイド
- Alexa開発者コンソールについて
- Alexa開発者コンソールを使用してスキルを作成する
最終更新日: 2025 年 10 月 20 日