Alexa Skills Kitによるスキルの作成



Alexa Skills Kitによるスキルの作成

Alexaにはスキルと呼ばれる一連のビルトイン機能が備わっています。たとえば、Alexaのには、さまざまなプロバイダーの音楽の再生、質問への回答、天気予報、Wikipediaの記事の検索機能があります。

Alexa Skills Kitによって、Alexaに新しいスキルを追加することができます。ユーザーはAlexaに質問やリクエストをすることで、これらの新しい機能を利用できます。開発者はありとあらゆる種類のスキルを作成してユーザーに提供できるのです。たとえば、スキルでは以下のようなことが行えます。

  • 特定の質問に対する回答を探します(「アレクサ、潮汐情報で神戸の今日の高潮の情報を確認して」)。
  • ユーザーとパズルやゲームで対戦します(「アレクサ、ジェパディで対戦して」)。
  • 家のなかで照明やその他のデバイスを制御します(「アレクサ、リビングの照明をつけて」)。
  • フラッシュブリーフィングのオーディオコンテンツやテキストコンテンツを提供します(「アレクサ、フラッシュニュースを教えて」)。

スキルの機能を決定する

新しいスキルを作成する場合の最初のステップは、スキルによって何を実行するかを決めることです。実装する機能によって、スキルをAlexaサービスとどのように統合するかや、何を開発する必要があるかが決まります。Alexa Skills Kitはさまざまなタイプのスキルの作成をサポートしています。

スキルの機能 使用するスキルタイプ

どのようなタイプのリクエストでも処理できるスキル。

例:

  • ウェブサービスの情報を検索します。
  • 商品を注文するためのウェブサービスとの統合(タクシーの手配、ドミノピザの注文など)を行います。
  • 対話型ゲーム
  • その他のあらゆる機能

カスタムスキル(カスタム対話モデル)

スキルが処理できるリクエスト(インテント)と、それらのリクエストを行うときにユーザーが呼びかける言葉(発話)を定義します。

照明、ドアロック、カメラ、サーモスタット、スマートテレビなどのクラウド対応スマートホームデバイスを制御したりクエリーを実行したりするためのスキル。

例:

  • 照明のオン/オフ
  • 調光式照明の明るさの調節
  • 調整可能な照明の色や色温度の変更
  • サーモスタットの温度の調節
  • 現在ロックがかかっているかどうかを確認するためのロックのクエリー実行
  • スマートホームカメラのフィード
  • スピーカーの音量変更
  • テレビのチャンネル変更

スマートホームスキルAPI(プリビルドモデル)

スマートホームスキルAPIによって、対象スキルが処理できるリクエスト(デバイスディレクティブ)と、それらのリクエストを行うときにユーザーが呼びかける言葉(発話)を定義します。

クラウド対応ビデオサービスをユーザーが制御できるようにするスキル。

例:

  • 映画の再生
  • テレビ番組の検索
  • チャンネルの切り替え
  • ビデオコンテンツの一時停止、早戻し、早送り

ビデオスキルAPI(プリビルドモデル)

ビデオスキルAPIによって、対象スキルが処理できるリクエスト(デバイスディレクティブ)と、それらのリクエストを行うときにユーザーが呼びかける言葉(発話)を定義します。

カスタマーのフラッシュブリーフィングの基となるコンテンツを提供するスキル。

フラッシュブリーフィングスキルAPI(プリビルドモデル)

フラッシュブリーフィングスキルAPIによって、フラッシュブリーフィングまたはニュースリクエストを呼び出すときにユーザーが呼びかける言葉(発話)と、Alexaがユーザーにコンテンツを提供できるようにするためのフォーマットを定義します。

さまざまなタイプのスキルの詳細については、スキルの種類についてを参照してください。

スキルの種類を決定する

対象となるスキルタイプのリクエストを処理し、それをクラウドでホストするクラウドベースのサービスを作成します。Alexaサービスは受信するリクエストを適切なサービスにルーティングします。

スキルのタイプが異なると、必要となるサービスのタイプも異なります。

カスタムスキルの場合、AWS Lambda関数またはウェブサービスをコーディングします。

  • AWS Lambda(アマゾンウェブサービスの提供サービスの1つ)は、サーバーを管理することなくクラウドでのコード実行を可能にするサービスです。Alexaがユーザーからのリクエストをコードに送信すると、スキルのコードがリクエストを検証し、必要なアクション(オンラインでの情報検索など)を実行し、応答を返します。Lambda関数は、Node.js、Java、Python、C#で作成できます。
  • 別の方法として、ウェブサービスを構築して任意のクラウドホスティングプロバイダーでホスティングすることもできます。ウェブサービスは、HTTPSでリクエストを受信する必要があります。この方法では、Alexaがウェブサービスにリクエストを送信し、ウェブサービスが必要なアクションを実行し、応答を返します。ウェブサービスはどのような言語でも記述できます。
  • サービスの作成方法に関係なく、スキルのカスタム対話モデルも作成します。この対話モデルでは、スキルが処理できるリクエストと、それらのリクエストを呼び出すためにユーザーが呼びかけることのできる言葉を定義します。

照明、サーモスタット、エンターテイメントデバイスなどのスマートホームデバイスを制御するスキルの場合、スマートホームスキルAPIを使用できます。その場合、Alexaからデバイスディレクティブを受け取るAWS Lambda関数を作成します。

  • AWS Lambda関数に、ディレクティブを処理するコードを指定します。
  • スキルは、デバイスディレクティブの形式でリクエストを受け取って特定のデバイスを制御します。その後、コードによってリクエストが適切に処理されます(たとえば、リクエストされた照明をオンにしたり、音量を大きくしたりします)。
  • ユーザーとの音声対話はすべて、スマートホームスキルAPIによって処理されます。このスキルを使用するためにユーザーが呼びかける言葉を定義する必要はありません。

ビデオコンテンツを制御するスキルの場合、ビデオスキルAPIを使用できます。その場合、Alexaからデバイスディレクティブを受け取るLambda関数を作成します。

  • AWS Lambda関数に、ディレクティブを処理するコードを指定します。
  • スキルは、デバイスディレクティブの形式でリクエストを受け取ってビデオサービスを制御します。その後、コードによってリクエストが適切に処理されます(たとえば、映画を再生するなど)。
  • ユーザーとの音声対話はすべて、ビデオスキルAPIによって処理されます。このスキルを使用するためにユーザーが呼びかける言葉を定義する必要はありません。

ユーザーのフラッシュブリーフィング用のニュース、リスト、コメディーなどのコンテンツを提供するスキルの場合、フラッシュブリーフィングスキルAPIを使用できます。この場合、開発者ポータルでスキルを作成し、コンテンツが含まれる1つ以上のJSONまたはRSSフィードを構成します。

  • ユーザーは、フラッシュブリーフィングの一部としてコンテンツを受信するために、Alexaアプリでフラッシュブリーフィングスキルを有効にして、1つ以上のコンテンツフィードをオンにします。
  • ユーザーとの音声対話はすべて、フラッシュブリーフィングスキルAPIによって処理されます。このスキルを使用するためにユーザーが呼びかける言葉を定義する必要はありません。
  • 1つ以上の信頼できるコンテンツフィードをRSS形式またはJSON形式で提供します。コンテンツは、Alexaがユーザーに対して再生できるオーディオコンテンツか、Alexaがユーザーに対して読み上げることができるテキストコンテンツにすることができます。自身が所有するコンテンツか、配布権限を持つコンテンツでなければなりません。

次のステップ

構築する内容が決まったら、次のいずれかで開始します。

または、Alexa Skills Kitとスキルの仕組みについて、次の資料でさらに詳しく確認できます。