カスタムスキルとは



カスタムスキルとは

このドキュメントでは、カスタムスキルの概要について説明します。

作成するスキルの種類がカスタムスキルで合っているかを確認するには、 スキルの種類についてをご覧ください。スマートホームスキルAPIなど、その他の種類のスキルに関する説明が記載されています。

カスタムスキルの構成要素

カスタムスキルをデザインおよび作成する際は、以下を作成します。

  • インテント:ユーザーがスキルを使って実行できるアクションを表します。つまり、スキルの核となる機能のことです。
  • サンプル発話:ユーザーがインテントを呼び出す際に使用する単語やフレーズのことです。これらの発話をインテントにマッピングします。マッピングにより、スキルの対話モデルが形成されます。
  • 呼び出し名:これによりスキルを識別します。ユーザーはこの名前を呼んで、スキルとの対話を開始します。
  • スキルに使う画像、オーディオファイル、動画ファイル(必要な場合):各アイテムに一意のURLでアクセスできるよう、これらのファイルはパブリックからアクセス可能な場所に格納する必要があります。
  • クラウドべースサービス:インテントを構造化されたリクエストとして受け入れて対応します。このサービスは、インターネットでアクセス可能である必要があります。スキルを設定する際に、サービスのエンドポイントを指定します。
  • 上記すべてを取りまとめるコンフィギュレーション:これによって、Alexaからスキルサービスへのリクエスト送信が可能となります。コンフィギュレーションは、開発者コンソールで作成します。

たとえば、潮汐情報を取得するスキルの場合、特定の沿岸都市の潮汐情報を調べるユーザーリクエストを表すOneshotTideIntentというインテントを定義したとします。

このインテントは、以下のような複数のサンプル発話にマッピングされます。

OneshotTideIntent 満潮を調べて
OneshotTideIntent {City}の満潮を調べて
OneshotTideIntent {City}の潮汐情報
OneshotTideIntent {City}の満潮はいつ
...
(その他、多数のサンプル発話)

ユーザーは、以下のようにAlexaを使用することが予想されます。

ユーザー: アレクサ、潮汐情報神戸の満潮を調べて
(上記の例では、定義したサンプル発話は斜体で、呼び出し名は太字で表示されています)。

Alexaが使えるデバイスにこのように話しかけると、以下の処理が実行されます。

  1. ユーザーの発話がクラウドのAlexaサービスに送信されます。
  2. このリクエストが「潮汐情報」スキルのOneshotTideIntentインテントであるということを、Alexaが認識します。
  3. Alexaはこの情報からリクエスト(この例ではIntentRequest)を生成し、このリクエストを潮汐情報で定義されたサービスに送信します。リクエストには、「City」として「神戸」という値が含まれています。
  4. 潮汐情報サービスがリクエストを受け取り、適切なアクション(http://tidesandcurrents.noaa.gov/でその日の神戸の潮汐に関する情報を調べる)を実行します。
  5. ユーザーに話しかけるテキストが構造化された応答が、潮汐情報からAlexaサービスに送信されます。
  6. Alexaが使えるデバイスが、ユーザーに音声で応答します。

    潮汐情報: 今日の神戸では、最初の満潮は午前1時42分頃で、潮位は約3メートル…

ユーザーの対話フロー
ユーザーの対話フロー

ユーザーと対話する

カスタムスキルは、通常、ユーザーから質問やその他の情報を受け取って、それに回答したり、何らかのアクション(例:タクシーを呼ぶ、ピザを注文する)を実行したりします。ユーザーは、呼び出し名をサンプル発話やAlexaで定義されたフレーズと組み合わせて言うことで、スキルを起動できます。

  • アレクサ、潮汐情報神戸の満潮を調べて
  • アレクサオムレツをどう作るか教えて
  • アレクサ、星座占いに牡牛座の運勢について調べて
  • アレクサ、スコアキーパーを使用してスティーブンに10ポイント追加して

特定の質問やリクエストをせずに、スキルとの対話を始めることもできます。

  • アレクサ、潮汐情報を開いて
  • アレクサ、レシピに話しかけて
  • アレクサ、トリビアマスターを再生して
  • アレクサ、スコアキーパーを開始して

リクエストの内容が決まっていない場合や、思い出せない場合は、上記のようにスキルを起動することができます。この場合、一般的なスキルの応答は、スキルの使い方を簡単に説明するウェルカムメッセージとなります。

上記の例では、太字はAlexaサービスで定義されたフレーズを、斜体はスキルで定義されたサンプル発話を示しています。

リクエストを完了するために他にも情報が必要な場合、ユーザーとスキルが会話でやりとりするように構成することもできます。

ユーザー: アレクサ、潮汐情報で満潮を調べて(「満潮を調べて」はOneShotTideIntentにマッピングされていますが、都市がユーザーによって指定されていません。続行するために、潮汐情報はこの情報を収集する必要があります。)
潮汐情報: どの都市の潮汐情報ですか? (Alexaはユーザーの応答を待機中です。ライトリングのあるデバイスの場合(Amazon Echoなど)、デバイスのライトリングが点灯して待機中であることが示されます。)
ユーザー: 神戸
潮汐情報: 今日の神戸は、最初の満潮は…
対話が終了します。

関連するトピック:

スキルに視覚コンポーネントを追加する

Amazon Alexaアプリは、Fire OS(日本未対応)、Android、iOS、またはパソコンのウェブブラウザで使用できる、無料のコンパニオンアプリです。このアプリは、カスタムスキルと次の2つの点で関連します。

  • アプリでは、公開されているすべてのスキルに対して、スキルの詳細ページが表示されます。ユーザーは、このページで各スキルの機能や使い方を知り、そのスキルを有効にするかどうか決定できます。したがって、スキル開発者は、公開に向けて準備をしている際に、スキルに関する有益な情報を提供する必要があります。
  • アプリには、ユーザーとAlexaの対話の履歴や、対話の内容を向上させるためのホームカードが表示されます。ユーザーはこのカードを見て、スキルとの対話の内容を確認したり、Alexaによる応答を参照したりできます。

    このカードの内容をスキルの応答に含めることもできます。

たとえば、潮汐情報スキルは、ユーザーが質問した潮汐情報が含まれるホームカードを送信します。これにより、ユーザーは再度音声で質問することなく、潮汐情報を確認することができます。

潮汐情報のホームカードのサンプル
潮汐情報のホームカードのサンプル

画面付きEchoデバイス向けに、音声、画面、タッチによる対話が可能なスキルを作ることもできます。Displayインターフェースのリファレンスを参照してください。

関連するトピック:

スキルで使用する画像、オーディオファイル、動画ファイルを用意する

スキルでは、AudioPlayerでオーディオファイルを使用できます。画面付きEchoデバイス用に設計されたスキルでは、画像や動画ファイルを使用することもできます。

このような外部リソースは、パブリックからアクセス可能なウェブサイトに格納しておく必要があります。各アイテムは、HTTPSを使用する一意のURLによって参照されます。

スキルのクラウドベースサービスをホスティングする

サービスは、AWS Lambdaでホスティングするか、独自のエンドポイントでウェブサービスとしてホスティングできます。

AWS Lambdaアマゾンウェブサービスの提供サービスの1つ)は、サーバーを管理することなくクラウドでのコード実行を可能にするサービスです。AlexaがユーザーのリクエストをLambda関数に送信すると、コードがそのリクエストを検証し、必要なアクション(オンラインでの情報検索など)を実行し、応答を返します。Lambda関数は、Node.js、Java、Python、C#で作成できます。一般的に、これがスキルのサービスをホスティングする最も簡単な方法です。

別の方法として、ウェブサービスを構築して任意のクラウドホスティングプロバイダーでホスティングすることもできます。ウェブサービスは、HTTPSでリクエストを受信する必要があります。この方法では、Alexaはウェブサービスにリクエストを送信し、その後、ウェブサービスが必要なアクションを実行し、応答を返します。ウェブサービスはどのような言語でも記述できます。

スキルでLambdaを使用する方法については、以下をご覧ください。

スキルでウェブサービスを使用する方法については、以下をご覧ください。

次のステップ

次のトピック: スキルのビルド手順を参照してください

Alexa Skills Kit SDK for Node.jsをインストールしてください。

Node.jsのその他のサンプルやテンプレートは、Alexaの公式GitHubアカウントを参照してください。

以下でサンプルコードを参照してください。

Alexa Skills Kitの用語について調べるには: Alexa Skills Kit用語集