あなたのAlexaダッシュボード 設定

Alexa Skills Kitサンプルを使用する(カスタムスキル)

Alexa Skills Kitでは、Node.js(JavaScript)およびJavaで記述されたカスタムスキルのサンプルがいくつか提供されています。これらのサンプルは、AWS LambdaAmazon Web Servicesが提供するサービスの1つ)上のAWS Lambda関数としてデプロイおよびテストできます。または、AWS Elastic BeanstalkAmazon Web Servicesで提供されるサービスの1つ)などのプラットフォーム上でウェブサービスとしてJavaサンプルをデプロイすることもできます。

サンプルでは、新しいAlexaの機能を設計および実装するのに役立つ概念がいくつか示されています。たとえば、データベースやその他のAWSサービスに接続したり、サービス呼び出しの間で情報を格納したりする方法などです。

サンプルのソースコードおよびJavaライブラリを入手する

サンプルは、GitHubのリポジトリとして入手できます。リポジトリを自分のアカウントにフォークし、デスクトップにクローンを作成することができます。または、GitHubからリポジトリ全体のzipファイルをダウンロードします。

  • JavaScriptサンプルは、AlexaのGitHubリポジトリにあります。サンプルはそれぞれ独自のリポジトリにあります。たとえば、「Hello World」サンプルは、https://github.com/alexa/skill-sample-nodejs-hello-worldにあります。

  • Javaサンプルは、amzn/alexa-skills-kit-javaリポジトリにあります。

    • サンプルは、samples/src/main/javaフォルダーにあります。サンプルごとにフォルダーが存在します。
    • JavaライブラリのJARファイルは、repoフォルダーにあります。MavenでJavaサンプルをビルドすると、ライブラリがローカルリポジトリに自動でインストールされます。
    • Javaライブラリのソースコードは、src/com/amazon/speechフォルダーにあります。

各サンプルには、以下が含まれます。

  • README.md には、サンプル固有の追加情報が含まれます。
  • speechAssets には、テキストファイルに記載されたインテントスキーマとサンプル発話が含まれます。
    • IntentSchema.jsonには、インテントを定義するJSONが含まれます。開発者ポータルでAlexaスキルをセットアップするときは、これを「Interaction Model」ページの「Intent Schema」編集ボックスに貼り付けます。
    • Utterances(またはSampleUtterances.txt)には、プレーンテキストのサンプル発話が含まれます。開発者ポータルでスキルをセットアップするときは、これを「Interaction Model」ページの「Sample Utterances」編集ボックスに貼り付けます。

    Alexa Skills Kitの理解のためにサンプルを確認する際は、インテントスキーマとサンプル発話も確認するようにしてください。適切なサンプル発話を提供することは、優れたユーザーエクスペリエンス開発にとって重要です。推奨されるサンプル発話については、「サンプル発話とカスタムスロットタイプの値を作成する際のベストプラクティス」を参照してください。

  • サンプルのコード:
    • JavaScriptサンプルのコードは、srcフォルダーにあります。サンプル固有のコードは、index.jsにあります。
    • Javaサンプルのコードは、一連の.javaファイルとして提供されています。通常、サンプル固有のコードは、「speechlet」クラス(HistoryBuffSpeechlet.javaなど)にあります。各サンプルには、AWS Lambdaにサンプルをデプロイするときにハンドラーとして使用するSpeechletRequestStreamHandlerクラスも含まれます。

サンプルをデプロイおよびテストする

サンプルのセットアップとテストは、テキストベースのサービスシミュレーターまたはAlexa搭載端末で実行できます。

プログラミングの概念

この表には、具体的なコーディング概念とそれらを説明するためのサンプルが示されています。

概念 説明 サンプル
DATE スロット DATEスロットタイプは、絶対および相対的に日付を表現するフレーズを日付形式に変換します。 Calendar Reader
NUMBER スロット NUMBERスロットタイプは、数字を表す単語を数値に変換し、その後数値として処理できるようにします。 トリビア
High Low Game
カスタムスロットタイプ これらのタイプは、スロットを定義する値のリストを使用します。アイテムがAmazonの標準タイプセットでは変換不可能で、スロット値が想定される一式のスロット値のいずれかである多くの場合に使用します。 How toスキル
データベースストレージ スキルでは、ユーザーが一旦中断したセッションを再開したときにも前回のデータを利用できるように、セッション間でデータを保持しておく必要がある場合があります。Alexa Skills Kit SDK for Node.jsでは、AWS DynamoDBを使用したデータ保持の処理を提供しています。 High Low Game
長い音声 スキルでは、ポッドキャストなど、音声をストリーミングするディレクティブをAlexaサービスに送信することができます。詳細については、AudioPlayerインターフェースのリファレンスを参照してください。 Audio Player Sample Project
複数ステージにわたる会話 サービスでは、複数のステージにわたるユーザーの会話を処理できます。ユーザーが現在どのステージにいるかは追跡されます。 トリビア
Audio Player Sample Project
複数言語対応 複数言語に対応するスキルを作成することもできます。Alexa Skills Kit SDK for Node.jsでは、スキルの読み上げテキストの複数言語への翻訳を含み、ユーザーのロケールに応じて正しい言語バージョンを返す処理を標準で提供します。 トリビア
How toスキル
Factスキル
セッションの状態 ユーザーが特定のスキルにマッピングされたアクションを実行するようにAlexaにリクエストすると、新しいセッションが開きます。このユーザーからのすべてのリクエストは、このセッションが閉じるまでサービスに送られます。サービスに送られた各リクエストには、新規のセッションか既存のセッションかを判断するために使用できるフラグが含まれます。また、セッションの属性を使用して、セッション中の応答とデータを保存できます。

Alexa Skills Kit SDK for Node.jsには、セッション状態の処理が提供されています。
トリビア
High Low Game
Decision Tree
Factスキル

次のステップ

スキルのサンプルやテンプレートのいずれかを使って作成してみてください。

Alexa Skills Kit SDK for Node.jsをダウンロードしてください。

続いて以下のドキュメントを参照してください。