Alexa Skills Kitによるスキルの作成
Alexaにはスキルと呼ばれる一連のビルトイン機能が備わっています。たとえば、Alexaには、さまざまなプロバイダーの音楽の再生、質問への回答、天気予報、Wikipediaの記事の検索機能があります。
Alexa Skills Kitによって、Alexaに新しいスキルを追加することができます。ユーザーはAlexaに質問やリクエストをすることで、これらの新しい機能を利用できます。開発者はありとあらゆる種類のスキルを作成してユーザーに提供できるのです。たとえば、スキルでは以下のようなことが行えます。
- 特定の質問に対する回答を探します(「アレクサ、潮汐情報で神戸の今日の高潮の情報を確認して」)。
- ユーザーとパズルやゲームで対戦します(「アレクサ、ハリーポッタークイズで対戦して」)。
- 家の中で照明やその他のデバイスを制御します(「アレクサ、リビングの照明をつけて」)。
- フラッシュブリーフィングのオーディオコンテンツやテキストコンテンツを提供します(「アレクサ、フラッシュニュースを教えて」)。
スキルの機能を決定する
新しいスキルを作成する場合の最初のステップは、スキルによって何を実行するかを決めることです。実装する機能によって、スキルをAlexaサービスとどのように統合するかや、何を開発する必要があるかが決まります。Alexa Skills Kitはさまざまなタイプのスキルの作成をサポートしています。
スキルの機能 | 使用するスキルタイプ |
---|---|
どのようなタイプのリクエストでも処理できるスキルです。 例:
|
カスタムスキル(カスタム対話モデル) スキルが処理できるリクエスト(インテント)と、それらのリクエストを行うときにユーザーが呼びかける言葉(発話)を定義します。 |
照明、ドアロック、カメラ、サーモスタット、スマートテレビなどのクラウド対応スマートホームデバイスを制御したりクエリを実行したりするためのスキルです。 例:
|
スマートホームスキルAPI(プリビルドモデル) スマートホームスキルAPIによって、対象スキルが処理できるリクエスト(デバイスディレクティブ)と、それらのリクエストを行うときにユーザーが呼びかける言葉(発話)を定義します。 |
クラウド対応ビデオサービスをユーザーが制御できるようにするスキルです。 例:
|
ビデオスキルAPI(プリビルドモデル) ビデオスキルAPIによって、対象スキルが処理できるリクエスト(デバイスディレクティブ)と、それらのリクエストを行うときにユーザーが呼びかける言葉(発話)を定義します。 |
ユーザーのフラッシュブリーフィングの基となるコンテンツを提供するスキルです。 |
フラッシュブリーフィングスキルAPI(プリビルドモデル) フラッシュブリーフィングスキルAPIによって、フラッシュブリーフィングまたはニュースリクエストを呼び出すときにユーザーが呼びかける言葉(発話)と、Alexaがユーザーにコンテンツを提供できるようにするためのフォーマットを定義します。 |
Alexa搭載デバイスでストリーミングされるオーディオコンテンツをユーザーが選択、鑑賞、制御できるようにするスキルです。 |
音楽スキルを作成する場合、音声対話モデルはあらかじめ定義されたものが使われます。Alexaによってユーザーの発話が解釈され、スキルが取るべき事項がメッセージとしてスキルに送信されます。 |
さまざまなタイプのスキルの詳細については、スキルの種類についてを参照してください。
スキルの種類を決定する
対象となるスキルタイプのリクエストを処理し、それをクラウドでホストするクラウドベースのサービスを作成します。Alexaサービスは受信するリクエストを適切なサービスにルーティングします。
スキルのタイプが異なると、必要となるサービスのタイプも異なります。
カスタムスキルの場合、AWS Lambda関数またはウェブサービスをコーディングします。
- AWS Lambda(アマゾンウェブサービスの提供サービスの1つ)は、サーバーを管理することなくクラウドでのコード実行を可能にするサービスです。Alexaがユーザーからのリクエストをコードに送信すると、スキルのコードがリクエストを検証し、必要なアクション(オンラインでの情報検索など)を実行し、応答を返します。Lambda関数は、Node.js、Java、Python、C#、Goで作成できます。
- 別の方法として、ウェブサービスを構築して任意のクラウドホスティングプロバイダーでホスティングすることもできます。ウェブサービスは、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とスキルのしくみについて、次の資料でさらに詳しく確認できます。