スキルのテスト



スキルのテスト

このドキュメントでは、作成中のスキルをテストする手順について説明します。

Alexaスキルをテストする方法

開発中に新しいスキルをテストする方法はいくつかあります。

  • カスタム対話モデルをテストするには、発話プロファイラーを使用します。サービスのコードを作成する前に、発話を入力し、インテントやスロットがどのように解決されるかを確認できます。
  • 開発者コンソールのテストページにあるシミュレーターを使用します。シミュレーターでは、デバイスを使用しなくてもほぼすべてのAlexa Skills Kit機能にアクセスできます。Alexaとの対話には、音声またはテキストを使用できます。
  • Alexa搭載デバイスを使用して音声でテストします。
  • コマンドラインからASK CLIを使ってスキルをテストします。invoke-skillsimulate-skillといったASK CLIコマンドを使ってスキルをテストできます。コマンドラインからスキルを管理する方法の詳細については、ASK CLIクイックスタートガイドを参照してください。
  • スキル管理APIのスキルのテスト機能を使用します。
  • Alexa搭載デバイスでテストします。

テストの方法にかかわらず、最小コンフィギュレーションのデータを指定して、スキルサービスをデプロイする必要があります。

スキルの最小コンフィギュレーション

スキルのテストを有効にするには、スキルに含まれる対話モデルに必要な最小コンフィギュレーション要件を満たす必要があります。これらの設定はすべて、ビルドページで設定できます。

カスタムモデルの最小コンフィギュレーション

正常にモデルを保存してビルドできたら、発話プロファイラーを使用してカスタム対話モデルをテストできます。このテスト用にエンドポイントを設定する必要はありません。

完全なエンドツーエンドのテストを行う場合は、以下に説明するようにコンフィギュレーションを設定します。

セクション 要件

カスタム>対話モデル

対話モデルには、以下を含める必要があります。

  • 呼び出し名>スキルの呼び出し名で、呼び出し名を指定します。
  • インテントで、サンプル発話を含むインテントを1つ以上定義します。
  • (カスタムインテントにスロットが含まれる場合)スロットタイプを定義します。

モデルはエラーなしでビルドする必要があります。

カスタム>エンドポイント

有効なAWS Lambda ARNまたはHTTPSエンドポイントを指定します。

  • 少なくとも、デフォルトの地域フィールドには入力してください。
  • HTTPSの場合、SSL証明書の種類を必ず指定してください。テスト目的の場合、自己署名証明書を使用できます。ただし、スキルを公開すると、このコンフィギュレーションは使用できません。

スキルやテストの必要な項目によっては、ビルドページの以下のセクションにも入力が必要になる場合があります。

  • カスタム>インターフェース: スキルがデバイスインターフェースを使用する場合、このページで有効にします。
  • アカウントリンク: スキルがアカウントリンクを使用する場合、ここで設定します。

    認証を必要としないインテントのテストには、完全なアカウントリンクのコンフィギュレーションは必要ありません。ただし、LinkAccountCardを返すか、認証の必要なインテントをテストする場合は必要となります。

  • アクセス権限: 権限(デバイスアドレスAPIの権限など)を使用するスキルの場合、ここで有効にします。

プリビルドモデルの最小コンフィギュレーション

モデル 必須フィールド

フラッシュブリーフィング

  • フラッシュブリーフィング>カスタムエラーメッセージ
  • フラッシュブリーフィング: 少なくとも1つのフィードについて、すべての必須フィールドを入力する必要があります。
    • プリアンブル
    • フィード名
    • コンテンツの更新頻度
    • コンテンツタイプ
    • コンテンツジャンル
    • フィード
    • フィードアイコン

スマートホーム

  • スマートホーム>スマートホームのサービスエンドポイント: 有効なAWS Lambda ARNエンドポイントを指定する必要があります。少なくとも、デフォルトの地域フィールドには入力してください。
  • アカウントリンク: このページにあるすべての必須フィールドに入力する必要があります。
  • アクセス権限: スキルがAlexaイベントを送る権限を使用する場合、アクセス権限ページで有効にする必要があります。

デバイス制御クラウド用に設定したアカウントと、そのアカウントで検出可能なデバイスも必要となります。

ビデオ

  • ビデオ>ビデオスキルサービスのエンドポイント: 有効なAWS Lambda ARNエンドポイントを指定する必要があります。少なくとも、デフォルトの地域フィールドには入力してください。
  • アカウントリンク: このページにあるすべての必須フィールドに入力する必要があります。

スキルコードをデプロイする

スキルをテストするには、開発者コンソールでスキルに最低限必要なデータを設定し、クラウドベースのサービス用にコードをデプロイする必要があります。サービスをデプロイする方法は、スキルに使用する対話モデルによって異なります。

モデル スキルサービスのホスティングオプション

カスタム

以下のいずれかの方法があります。

フラッシュブリーフィング

なし: この場合、サービスはRSSまたはJSONフィードです。フラッシュブリーフィングスキルAPIフィードのリファレンスを参照してください。

スマートホーム

AWS Lambda関数を使用する必要があります。スマートホームスキルの作成手順Lambda関数を追加するを参照してください。

ビデオ

AWS Lambda関数を使用する必要があります。ビデオスキルの作成手順Lambda関数を追加するを参照してください。

開発者コンソールでスキルをテストする

テストページにはシミュレーターがあり、デバイスなしでもスキルをテストすることができます。スキルをテストする準備ができたら、テストページに移動します。

このスキルでテストを有効にしていない場合、このスキルでは、テストは無効になっていますと表示されます。このとき、ドロップダウンリストは非公開に設定されています。このリストから、スキルのテストステージを選択します。開発中公開中のいずれかです。

テストが有効な場合、スキルテストが有効になっているステージ:リストから、開発中公開中、いずれかのテストステージを選択します。非公開を選択すると、テストは無効になります。

スキルのテストで一度に選択できるステージは1つだけです。たとえば、公開中のスキルでテストを有効にすると、開発中のスキルではテストが無効になります。また、公開中のスキルは、開発者アカウントでサインインした開発者コンソール、SMAPI、ASK CLI、デバイスで引き続き利用できます。開発者コンソールで公開中スキルのテストを有効にすると、公開中ステージのURLにリダイレクトされ、セッションとコンテキスト情報がすべてリセットされます。保持しておきたい情報がある場合は、保存してからテストを有効にします。また、新しいユーザーIDも生成されるため、初回起動時のユーザーエクスペリエンスをシミュレートできます。公開中のスキルをライブバージョンのLambdaを使って設定している場合、このバージョンがテストに使用されます。

テストページを使用して、スキルのほぼすべての機能(ダイアログ、プログレッシブ応答(制限あり)、エンティティ解決など)をテストできます。

ページの左側に、3種類のテスト用タブが表示されます。

タブ 説明

Alexaシミュレーター

(カスタムスキルとスマートホームスキル)

シミュレーターを使用すると、テキスト、音声のいずれかでカスタムスキル、スマートホームスキルと対話できます。シミュレーターでもデバイスと同様にスキルのセッションが維持されるため、ダイアログフローのテストが可能です。また、シミュレーターはスキルがAlexaアプリに返すカードも、デバイスと同じように送信します。スキルが複数の言語をサポートする場合、ドロップダウンリストからテストする言語を選択します。

詳細については後述のセクションを参照してください。

JSONエディター

(カスタムスキルのみ)

このエディターを使うと、JSONリクエストを直接入力して、スキルが返すJSON応答を確認できます。

このオプションではスキルセッションは維持されません。LambdaコンソールでJSONリクエストをテストする場合と非常によく似ています。

デバイスの画面デバイスのログのオプションは、JSONエディターではサポートされません。

スキルが地域固有のエンドポイントを複数サポートする場合、ページの末尾近くにあるリストからテストするエンドポイントを選択できます。

音声と語調

プレーンテキストまたはSSMLを入力して、そのテキストをAlexaがどう読み上げるかを聞くことができます。下部のリストから聞きたい言語を選択します。このリストには、利用可能なすべての言語が表示されます。そのスキルがサポートしているかどうかは関係ありません。

カスタムスキルとスマートホームスキルに対してAlexaシミュレーターを使用する

シミュレーターとは、テキストまたは音声で対話できます。スキルセッションは、デバイスのようなタイムアウトをしないことに注意してください。これは、テスト中、応答の入力に時間をかけられるようにするためです。スキルのセッションが開いたままの場合、「アレクサ、止めて」と言って終了することができます。

スキルI/Oを有効にすると、会話のターンごとにスキルに送信されるJSONとAlexaに返されるJSONを確認できます。JSONは、カスタムスキルでのみ使用できます。吹き出しをクリックすると、そのターンに関連するJSONを確認できます。

デバイスの画面を有効にすると、スキルが画面付きのデバイスにおおよそでどう表示されるかを確認できます。詳細は、後で説明するさまざまな画面付きデバイスでのテストを参照してください。

デバイスのログを有効にすると、スキルの対話中にAlexaに送信されるイベントと、デバイスに送信されるディレクティブを確認できます。インテントのデバッグを参照してください。

Echo Buttons(日本未対応)を有効にすると、シミュレートされたEcho Buttonsの表示と対話を確認できます。このオプションは、GameEngineインターフェースとGadgetControllerインターフェースのいずれか、または両方をサポートするスキルでのみ利用できます。詳細については、Echo Buttonスキルのテスト方法を参照してください。

Alexaスマートホーム(ベータ)を有効にすると、スキルがAlexaイベントゲートウェイに送信するChangeReportイベントを確認できます。このオプションは、スマートホームスキルでのみ利用できます。詳細については、スマートホームスキルのデバッグを参照してください。

シミュレーターを使用してカスタムスキルをテストする場合、context.System.device.supportedInterfacesプロパティにはカスタム>インターフェースページで選択したインターフェースが反映されます。たとえば、AudioPlayerAlexa Presentation Languageを選択した場合、シミュレーターからスキルに送信されるリクエストには次のcontextオブジェクトが含まれ、そのリクエストがこれらのインターフェースの両方をサポートするデバイスから受け取ったことがわかります(簡潔にするため、すべてのプロパティは記載していません)。

{
  "context": {
    "System": {
      "device": {
        "deviceId": "amzn1.ask.device.1",
        "supportedInterfaces": {
          "AudioPlayer": {},
          "Alexa.Presentation.APL": {
            "runtime": {
              "maxVersion": "1.1"
            }
          }
        }
      }
    }
  }
}

さまざまな画面付きデバイスでのテスト

スキルI/Oセクションのドロップダウンリストで、さまざまなタイプのデバイスを選択できます。選択されたデバイスが、スキルに送信されたリクエストのcontext.Viewportプロパティで提供されたデータを決定します。

APLスキルの中型デバイスでの表示を確認する
APLスキルの中型デバイスでの表示を確認する

使用できるデバイスは、Alexa Presentation Language(APL)ドキュメントで使用するviewportプロファイルパッケージで使用できるviewportプロファイルに対応します。

  • 小型デバイス(円形)
  • ハブ(横長)
  • 中型デバイス
  • 大型デバイス
  • 超大型TV

viewportのプロパティについて詳しくは、Alexa Viewportプロファイルパッケージを参照してください。

テスト用にカスタムデバイスプロファイルを作成することもできます。他のタイプのデバイスで、スキルがどのように表示されるかをテストするのに便利です。ビデオ再生をサポートしていない画面付きデバイスで、スキルがどのように動作するかをテストするには、カスタムプロファイルを使用することもできます。

カスタムスロットタイプを作成するには、以下の手順に従います。

  1. ドロップダウンリストをクリックして、標準viewportの一覧を開きます。
  2. 一覧の一番下までスクロールし、カスタムデバイスを追加をクリックします。
  3. 表示するviewportのプロパティを変更します。形状ピクセル幅ピクセル高さピクセル密度を設定できます。ビデオ再生をサポートしていないデバイスを作成するには、デバイスがサポートしている特定のビデオコーデック、またはビデオを許可しない を選択することもできます。
  4. 適用をクリックします。

カスタムデバイスは、現在のブラウザのセッション中は引き続き使用できます。ブラウザを閉じて、後でオーサリングツールを再度開くと、カスタムデバイスを再作成する必要があります。

Alexaシミュレーターの制限事項

以下の制限事項は、Alexaシミュレータータブでの音声およびテキストのテストに適用されます。

機能 Alexaシミュレーターのサポート範囲

AudioPlayerインターフェース

Alexaシミュレーターにはオーディオ再生機能はありません。その代わり、スキルI/Oセクションにスキルに送信されるAudioPlayerディレクティブが表示されます。

再生機能がないため、再生中にイベントによってトリガーされるPlaybackNearlyFinishedなどのAudioPlayerリクエストをテストすることはできません。

AMAZON.DATEスロット値

テスト発話を入力するときに、「2019/4/15」といった日付の省略表記は使用しないでください。 略さずに話し言葉で日付を書きます。

たとえば、次のフレーズを使うと、有効な日付が日付スロットに生成されます。

  • 「二〇一九年四月十五日」
  • 「二〇一九年の四月十五日」
  • 「四月十五日」

「2019-04-15」、「2019/4/15」、「4/15」などの入力値は正しく日付に解決されません。

AMAZON.DATEで想定される話し言葉の形式の例については、AMAZON.DATEを参照してください。テスト用の発話を入力する際には、数字は漢数字(「二十五」)で書きます。

デバイスアドレスAPI

デバイスアドレスAPIを使用すると、ユーザーのデバイスに関連付けられた所在地情報をリクエストできます。Alexaシミュレーターを使ったテスト時に、スキルはデバイスアドレスAPIを呼び出してエラーのない応答を受け取ることができます。ユーザーがデバイスアドレスの権限を付与しなかった場合のフローをテストすることもできます。

ただし、応答の住所フィールドはnullに設定され、郵便番号フィールドはデフォルトの米国の郵便番号が設定されることに注意してください。

テストページをAlexaアプリの完全なデバイスとして設定することはできません。

Displayインターフェース

Displayインターフェースを使用するスキルをテストすることができます。また、デバイスの画面オプションを有効にして、応答がさまざまなデバイスでどう表示されるかを確認できます。ただし、Fire TVなど他のデバイスで応答がどう表示されるかは確認できません。

フラッシュブリーフィングスキル

Alexaシミュレーターはフラッシュブリーフィングスキルのテストをサポートしていません。

GadgetControllerインターフェース(日本未対応)
GameEngineインターフェース(日本未対応)

AlexaシミュレーターでEcho Button(日本未対応)をテストする際には、以下の制限があります。

  • スキルI/Oは、シミュレートされた音声リクエストと起動リクエストのみで利用できます。
  • AlexaシミュレーターでのEcho Buttonの色は、実際のEcho Buttonに表示される色とは一致しない場合があります。色のテストについては、スキルの公開前に実際のEcho Buttonでテストすることをお勧めします。

位置情報サービス

位置情報サービスを使用すると、スキルからユーザーのデバイスに関連付けられた動的な位置情報をリクエストできます。Alexaシミュレーターを使用してテストしている場合、ユーザーが位置情報サービスを許可していないときのフローをテストできます。

ただし、シミュレーターはユーザーがアクセスを許可しているケースはテストできません。

テストページをAlexaアプリの完全なデバイスとして設定することはできません。

PlaybackControllerインターフェース

このリクエストは、ユーザーがリモコンなどの機器を操作すると、スキルに送信されます。Alexaシミュレーターを使ってテストすることはできません。

プログレッシブ応答

シミュレーターでは、フル応答の準備ができると、プログレッシブ応答とフル応答が同じオーディオストリームで再生されます。つまり、プログレッシブ応答が聞こえてから、すぐに続けてフル応答が聞こえます。

AlexaリマインダーAPI

シミュレーターでは、スキルで想定されるリマインダーを提供しません。

Alexa設定API

通常は、Alexa設定APIを使用するとユーザーのAlexa設定からタイムゾーン、長さの単位、温度の単位を取得できます。ただし、Alexaシミュレーターで生成されたdeviceId値とapiAccessToken値を使用してAlexa設定APIにクエリを実行する場合は、タイムゾーン値しか取得できません。長さの単位や温度の単位を取得しようとすると、「Error 204 No Content」エラーメッセージが返されます。

スマートホームライブデバッガー

スマートホームライブデバッガーはベータ版であり、予告なく変更されることがあります。詳細については、スマートホームスキルのデバッグを参照してください。

VideoAppディレクティブ

Alexaシミュレーターにビデオ再生機能はありません。その代わり、スキルI/Oセクションにスキルに送信されるVideoAppディレクティブが表示されます。

インテントのデバッグ

Alexaシミュレーターでは、デバイスのログにJSON応答で返されたconsideredIntentsが表示されるため、候補に挙がったが破棄されたインテントを確認できます。この情報を使用してインテントのデバッグを実行し、意図したインテントとスロットに発話を解決するようにモデルをトレーニングするために、追加のサンプルをどのように使用するか決めることができます。

開発者アカウントを使用してAlexa搭載デバイスでテストする

Alexa搭載デバイス(Amazon Echoなど)を使ってテストするには、Amazon開発者ポータルで開発者アカウントのサインアップに使用したのと同じメールアドレスでデバイスを登録すると、ウェイクワードと呼び出し名を使用してスキルを呼び出すことができます。 「アレクサ、<呼び出し名>を開いて」

開発者アカウント以外のアカウントでデバイスがセットアップされている場合は、デバイスをリセットしてから、開発者アカウントを使用して再登録します。詳細については、対象のデバイスのヘルプを参照してください。

デバイスのユーザーとして開発者アカウント以外のアカウントを再度追加する場合、家族機能を使用して登録できます。(日本未対応)

カスタム:

フラッシュブリーフィング:

スマートホーム:

ビデオ:

開発者コンソール: