Alexa Skills Kitとは?



Alexa Skills Kitとは?

Alexa Skills Kit(ASK)は、スキルと呼ばれるコンテンツを作成するためのソフトウェア開発フレームワークです。スキルは、Alexa用のアプリのようなものです。Alexaの対話型音声インターフェースにより、ユーザーはハンズフリーでスキルと対話できます。ユーザーは、音声を使って、ニュースのチェック、楽曲の再生、ゲームのプレイといった日常のタスクを実行できます。また、音声を使ってクラウドコネクテッドデバイスを制御することもできます。たとえば、ユーザーはAlexaに、照明をつけたり、サーモスタットの設定を変更したりするよう頼むことができます。スキルは、AmazonのAmazon EchoやAmazon Fire TVを始め、ほかのメーカーのAlexa搭載デバイスでも利用できます。

ユーザーがスキルコンテンツにアクセスするには?

ユーザーはAlexaにスキルを呼び出すよう頼むことで、スキル内のコンテンツにアクセスします。Alexaは、常にスキルの新規呼び出しを待機しています。ユーザーがウェイクワード「アレクサ」を使ってAlexa搭載デバイスに話しかけると、デバイスはクラウドのAlexaサービスにユーザーの話した音声を配信します。Alexaは音声を認識し、ユーザーの意図を判断した後、ユーザーのリクエストに対応できるスキルにリクエストを送信して呼び出しを行います。Alexaサービスは、音声認識と自然言語処理を行います。スキルは、クラウドプラットフォーム上のサービスとして実行されます。Alexaとスキルとの通信は、HTTPSインターフェースを使用するリクエスト-応答のしくみを介して行います。ユーザーがAlexaスキルを呼び出すと、スキルは、JSON本文を含むPOSTリクエストを受け取ります。このリクエスト本文には、スキルがリクエストを理解し、ロジックを実行して応答を生成するために必要なパラメーターが含まれています。

次の図は、Alexaサービスでスキルを呼び出すための音声対応処理フローを示しています。

ASK APIを使ったAlexa搭載デバイス上の音声対応スキルフロー図

スキルには、音声対話に加え、それを補完する視覚およびタッチの対話を含めることができます。

ユーザーがスキルと対話するしくみ

すべてのAlexaスキルには音声対話モデルがあり、ユーザーはその対話モデルで定義された単語やフレーズで話しかけて、自分の希望する操作をスキルに実行させることができます。このモデルにより、ユーザーのコミュニケーション方法やスキルの操作方法が決まります。音声ユーザーインターフェースは、従来のアプリにおけるグラフィカルユーザーインターフェースに似ています。ボタンをクリックしてダイアログボックスからオプションを選択する代わりに、ユーザーは自分のリクエストや、質問に対する答えを音声で伝えます。多くの場合、音声対話にかかる時間はアプリ操作の時間よりも短くなります。ユーザーが質問やリクエストを話すと、Alexaは対話モデルを使用して語句を解釈し、特定されたスキルが処理できる個別のリクエストに変換します。

以下は、音声ユーザーインターフェースを使うスキルとグラフィカルユーザーインターフェースを使うアプリでのフライト予約を比較した図です。

アクション 音声ユーザーインターフェース 標準的なグラフィカルユーザーインターフェース
リクエストを行う ユーザーが「アレクサ、飛行機で神戸から沖縄に行きたい」と言います。 ユーザーがアプリをクリックし、出発と到着の空港を選択します。ユーザーが空港リストをスクロールして神戸を見つけ、またスクロールして沖縄を見つけます。
ユーザーから詳細情報を収集する Alexaが「出発日はいつですか?」と答え、ユーザーの応答を待ちます。 アプリにカレンダーを表示し、ユーザーが日付を選択するのを待ちます。
必要な情報を提供 ユーザーが「2月1日」と答えます。 スキルは予約を行い、確認を待ちます。 ユーザーがカレンダーを開き、2月1日を選択してからOKを選択します。ユーザーがボタンをクリックしてリクエストを完了し、確認を待ちます。
リクエストの完了 Alexaが「2月1日月曜日の神戸から沖縄へのフライト予約が完了しました」と答えます。 アプリにリクエストの結果を表示します。ユーザーがアプリを終了します。

Alexaは、2種類の音声対話モデルをサポートします。

  • プリビルド音声対話モデル – このモデルでは、スキルを呼び出すためにユーザーが言う単語のセットをASKが定義します。たとえば、ユーザーは「アレクサ、明かりをつけて」「アレクサ、テレビを消して」などと言うことができます。 開発者は、これらの定義済みリクエストを受け付けるようスキルを定義するだけです。
  • カスタム音声対話モデル – カスタムモデルは柔軟性は非常に高いものの、より複雑です。開発者が音声対話全体をデザインします。カスタムモデルでは通常、スキルに同じリクエストをするのにユーザーが使うかもしれない言い回しを多数定義しておく必要があります。たとえば、「アレクサ、神戸から沖縄への旅行プランを作成して」「アレクサ、神戸から沖縄に旅行したい」「アレクサ、沖縄への旅行プランを立てて」などです。

どちらの音声対話モデルを使う場合も、音声リクエストを受け付け、リクエストを処理して、適切に応答するようスキルを開発します。すべてのスキルは、自然で音声ファーストな対話を用いて、ユーザーが同じ意味を表現するために使うさまざまな言い回しに対応できるようにします。詳細については、音声対話モデルについてを参照してください。

作成できるスキルの種類

実装する機能によって、スキルをAlexaサービスとどのように統合するかや、何を開発する必要があるかが決まります。スキルのアイデアがAlexaが用意するプリビルド音声対話モデルのいずれかに対応する場合もあれば、独自のカスタム音声対話モデルのデザインが必要になる場合もあります。ゲームスキル、音楽スキル、スマートホームスキルを始め、さまざまな種類のスキルを開発できます。すべての種類については、スキルの種類の一覧を参照してください。

スキル開発ワークフロー

開発するスキルの種類が決まったら、Alexaスキルの開発で使われる用語を学びましょう。詳細については、用語集を参照してください。

Alexaスキル開発フローに従って、スキルを開発します。

Alexa Skills Kitを使ってAlexaスキルを作成する開発フロー図

どの種類のAlexaスキルを開発する場合でも、Amazon開発者アカウントが必要です。既存のAmazonアカウントを使用してサインインすることも、 新しいAmazon開発者アカウントを作成することもできます。

スキルのデザイン

自然に使えて、ユーザーを第一に考え、視覚により補完されるAlexaスキルのデザインを考えます。カスタムスキルを開発する前に、カスタム音声対話モデルをデザインし、テストします。スキルデザインの詳細については、スキルをデザインするを参照してください。

スキルのビルド

Alexaサービスからのリクエストを受け付け、スキルの種類や音声対話モデルに基づいて適切な応答を返すスキルをビルドします。各モデルのスキル開発についての詳細は、スキルをビルドするを参照してください。

プリビルド音声対話モデルのいずれかを使ってスキルをビルドする場合は、以下のものが必要です。

  • クラウドベースのサービスをホストする、インターネットアクセス可能なエンドポイント。個人のAWSリソースを使ってアマゾンウェブサービス(AWS)Lambda上にスキルをプロビジョニングします。Amazon開発者アカウント以外に、AWSアカウントが必要です。プリビルド音声対話モデルを使う種類のスキルは、ほとんどがAWS Lambdaを使用する必要があります。

  • スキルコードに使用する予定のプログラミング言語に適した開発環境。Lambda関数のオーサリングには、Node.js、Java、Python、C#、Goを使用できます。

カスタム音声対話モデルを使ってスキルをビルドする場合は、以下のものが必要です。

  • クラウドベースのサービスをホストする、インターネットアクセス可能なエンドポイント。

    ASKは、AWS上でカスタムスキルをビルド、保存、スキルやスキルリソースのホストを行うAlexa-hostedオプションを提供しています。このオプションを使えば、すぐにスキル開発を開始できます。

    独自のバックエンドリソースをAWS上にプロビジョニングするオプションもあります。個人のAWSリソースを使い、AWS Lambda関数としてスキルをホストできます。

    または、カスタムスキルを開発し、HTTPSウェブサービスとしてカスタムスキルをホストすることもできます。

  • スキルコードに使用する予定のプログラミング言語に適した開発環境。Lambda関数のオーサリングには、Node.js、Java、Python、C#、Goを使用できます。ウェブサービスのオーサリングには、ウェブサービスに適した任意の言語を使用できます。Alexa-hostedスキルオプションを選択する場合、Node.jsまたはPythonでコードを記述します。

スキルのテスト

スキルの開発中、開発者コンソールVisual Studio CodeでAlexaシミュレーターを使うことで、デバイスを使わずにスキルをテストできます。スキルの認定を申請する前に、スキルの種類ごとのテストガイドラインで推奨事項に従っていることを確認します。スキルを公開する前に、限定されたテスターグループにスキルを公開してベータテストを行うことができます。テストの詳細については、スキルのテストを参照してください。

スキルの認定と公開

Amazon Alexaスキルストアにスキルを公開するには、品質、セキュリティ、ポリシーのガイドラインをスキルが満たしていることをAmazonが事前に確認する必要があります。スキルの認定と公開の詳細については、スキルの認定と公開を参照してください。

スキルとメトリクスのモニタリング

スキルを公開したら、開発者コンソールで、公開中スキルの使用状況をモニタリングし、分析し、支払いと収益を確認することができます。公開中のスキルに問題が見つかった場合、以前の公開中バージョンにロールバックできます。詳細については、スキルとメトリクスのモニタリングを参照してください。

ASKの内容

ASKには、スキル開発ライフサイクルを通じてスキルを作成および管理するための、API、ツール、コードサンプル、技術資料が含まれています。これらのライブラリ、ツール、トレーニング資料は、Alexaスキルを適切に開発し、公開するのに有効です。詳細については、スキルを作成、管理するツールを参照してください。

開発ソフトウェアおよびツール

ASKには、開発者ライフサイクルをサポートするさまざまなオプションが用意されています。Alexa開発者コンソールVisual Studio Code向けAlexa拡張機能ASKコマンドラインインターフェース(CLI)などです。ASKソフトウェア開発キット(SDK)には、さまざまなAlexa機能にアクセスできる開発ツールやライブラリが含まれます。これらのSDKは、Node.js、Java、Pythonで利用できます。また、Alexaサービスからのリクエストを受け付け、応答を返すスキルを任意の言語で開発することもできます。

テストツール

ASKには、スキルをテストするツールが用意されています。Alexaスキルシミュレーター、Alexaアプリ、ASKコマンドラインインターフェース(CLI)を利用して、スキルのロジックや音声対話をテストできます。Alexa開発者コンソールに含まれる評価ツールを使って、音声認識や自然言語処理のトラブルシューティングを行うこともできます。

スキル認定のヘルプ

スキルを公開するには、認定テストに合格する必要があります。ASKでは、スキルの認定と公開に役立つガイドラインやツールを提供しています。

スキルモニタリングツール

ASKには、公開中スキルの管理やモニタリングを行う分析機能などのさまざまなツールが用意されています。スキル内商品を実装する場合、支払いと収益の確認や管理を行うことができます。

カスタムスキルのデザインテクニック

ASKには、カスタム音声対話モデルやスキル内商品の購入フローのデザインや、スキルへの視覚要素の追加を行う際に従うべきベストプラクティスを記載したAlexaデザインガイドが用意されています。また、ASKは、共通の発話に対応するビルトインインテントライブラリも提供しています。

チュートリアルとサンプルコード

ASKには、技術資料、チュートリアル、コードサンプルがすべて揃っているため、すぐにスキル開発プロセスを開始できます。これらのリソースへのリンクについては、スキルのビルド/その他のリソースを参照してください。

  • Alexaを自社製品に直接統合する場合、Alexa Voice Service(AVS)の使用を検討してください。
  • Alexaでデバイスを制御したいが、スキルを開発したくない場合、Alexa Connect Kit(ACK)の使用を検討してください。