魅力的なスキルを開発する

Alexaスキルを開発する理由

Alexaの魅力とは何でしょうか?

Amazon Alexaのような音声サービスが普及するにつれ、ユーザーはゲームをプレイしたり、最新ニュースを聞いたり、増え続けるスマートホームデバイスを操作したりといったさまざまな場面でVUIを使い始めています。

簡単に使える

VUIは自然で会話的、かつユーザー中心に考えられています。

音声体験をうまくデザインすれば、ユーザーはさまざまな表現で意味やインテントを伝えることができ、多様で柔軟に対応できます。このため、音声ユーザーインターフェースは、ウェブやモバイルのグラフィカルユーザーインターフェース(GUI)とは異なる方法でデザインされます。 スキルを簡単に使えれば、スピードと効率性もアップします。

スピードと効率性

Alexaスキルを使えば、毎日のスケジュールをスピーディかつ効率的にこなすことができます。いつでもどこからでも音声で操作できるからです。

キッチンタイマーを例に考えてみましょう。Alexaを使えば、「アレクサ、タイマーを10分にセットして」と言うだけでタイマーをセットできます。 電子レンジで2、3回ボタンを押すだけの操作ですら、面倒だと感じるようになるとは、誰が想像できたでしょうか?

スキルの収益化

スキル内でデジタルコンテンツを販売して収益を得ることができます。サブスクリプション型や買い切り型、消費型のスキル内商品として、魅力的なコンテンツをユーザーに販売しましょう。

たとえば、ユーザーにプロセスやタスクの使い方を教えるための知識共有スキルを開発したとします。まずは、初歩的なコンテンツを無料で提供して、このスキルの価値をユーザーに知ってもらいます。それができれば、より洗練された価値の高いプレミアムコンテンツを有料で提供することができます。

スキルの種類

Alexa Skills Kit(ASK)では、プリビルドスキル、カスタムスキルのどちらを開発するかに応じて、スキル開発の2つのオプションから選択します。

1. プリビルドスキル

プリビルド対話モデルは、次の種類のスキルで選択できます:

  • スマートホーム
  • フラッシュブリーフィング
  • ビデオ
  • 音楽

 

あらかじめ用意されている対話モデルを使えば、スキルをすばやく作成できます。

対話モデル

スキルが処理できるリクエストやこれらのリクエストを呼び出す発話(ユーザーが何を言うか)は、対話モデルによって決まります。たとえば、ユーザーはAlexaが話している間に質問したり、楽曲の再生中にあらかじめ設定しておいたアラームを鳴らしたりといったことができます。

Alexa Skills Kit

Alexa Skills Kit(ASK)には、あらかじめ定義されたリクエストや発話で構成された対話モデルがあります。これらの対話モデルは、必要に応じてカスタマイズすることもできます。

以下の4つは、プリビルドモデルを使ったスキルの例です。

スマートホームスキル
プリビルドモデルを使ったスマートホームスキルを作成するには、スマートホームスキルAPIを使います。 この種のスキルでは、カメラ、照明、ドアロック、サーモスタット、スマートTVといったスマートホームデバイスを制御できます。スマートホームスキルAPIでは、制御できるスキル機能の幅が制限されていますが、VUIを独自に作成する必要がないため、開発が簡単です。 スキルの呼び出しも非常に簡単です。Alexaに次のようなリクエストができます。

スキルの呼び出しも非常に簡単です。Alexaに次のようなリクエストができます:

「アレクサ、リビングの照明をつけて」

「アレクサ、温度を2度上げて」

「アレクサ、玄関のカメラを見せて」

フラッシュブリーフィングスキル

ユーザーにニュースヘッドラインや短いコンテンツを提供するには、フラッシュブリーフィングスキルAPIを使います。Alexaに次のようなリクエストができます:

「アレクサ、フラッシュニュースを聞かせて」

「アレクサ、ニュースを教えて」

スキル開発者は、リクエストされたフラッシュニュースのコンテンツフィードを定義します。フィードには、再生するオーディオコンテンツやユーザーに読み上げるテキストコンテンツを含めることができます。

ビデオスキル

ユーザーにTV番組や映画などのビデオコンテンツを提供するには、ビデオスキルAPIを使います。Alexaに次のようなリクエストができます:

「アレクサ、『七人の侍』を再生して」

「アレクサ、テレビのチャンネルを4に変えて」

スキル開発者は、ビデオコンテンツの検索や再生といったスキルが処理できるリクエストと、ビデオ検索の結果をAlexa搭載デバイスにどのように表示するかを定義します。

音楽スキル

楽曲、プレイリスト、ラジオ局などのオーディオコンテンツをユーザーに提供するには、音楽スキルAPIを使います。Alexaに次のようなリクエストができます:

「アレクサ、何か音楽をかけて」

「アレクサ、ジャズをかけて」

このAPIは、オーディオコンテンツのリクエストや制御のためにユーザーが言った単語を処理します。これらの単語がリクエストに変換され、スキルに送られます。スキルがこれらのリクエストを処理して適切に応答し、Alexa搭載デバイスで再生するオーディオコンテンツを返します。

注: 現在、音楽スキルは米国でのみサポートされています。

これらは、プリビルドモデルを使ってスキル作成を効率化した例の一部にすぎません。

2. カスタムスキル

カスタムスキルでは、開発者が対話モデルを定義するので、もっと柔軟かつ自由にスキルをデザインできます。

カスタムスキルとユーザーとの対話例をいくつか紹介します:

  • 「アレクサ、ピザを注文して」
  • 「アレクサ、タクシーを予約して」

 

カスタムスキルを使えば、ワードパズルや雑学などのゲームを始め、思い付く限りのあらゆる機能でユーザーを惹きつけることができます。

スキル開発者は次のことを行います:

  • スキルが処理できるリクエストを定義します。
  • Alexaがスキルを特定するための名前(呼び出し名)を定義します。呼び出し名については、次のモジュールで詳しく説明します。
  • リクエストを実行するコードを記述します

 

このコースでは、ASKを使ったカスタムスキルの作成方法を学びます。

Alexaスキルのしくみ

Alexaのしくみを簡単にまとめてみました。この例では、ユーザーが「ハローワールド」という単純なAlexaスキルを呼び出しています。

1. ユーザーがスキルを起動するには、「アレクサ、ハローワールドを開いて」と言います。

2. Alexa搭載デバイスが、発話をクラウドにあるAlexaサービスに送信し、自動言語認識によって発話が処理されテキストに変換されます。その後、自然言語理解によってテキストのインテントへの紐付けが行われます。

3. AlexaがJavaScript Object Notation(JSON)リクエストを、インテントを処理するクラウドのAWS Lambda関数に送信します。Lambda関数はバックエンドで、インテントを処理するコードを実行します。この場合、Lambda関数は「ハローワールドへようこそ」という文字列を返します。

 

以下のアニメーションでは、ユーザーがAlexaスキルと対話するときの処理の流れを表しています。この場合、AWS Lambda(サーバーレスのクラウドコンピューティング)でスキルコードをホストしています。

  • ユーザーがウェイクワード「アレクサ」と言います。
  • ウェイクワードを聞いたAlexaは、聞き取り状態に入ります。
  • Alexaサービスは対話モデルを使って、リクエストのルーティング先を決定します。
  • JSONリクエストがスキルのLambda関数に送信されます。
  • Lambda関数がJSONリクエストの内容を検査します。
  • Lambda関数が応答方法を決定します。
  • Lambda関数がJSON応答をAlexaサービスに送信します。
  • AlexaサービスがJSON応答を受信し、出力テキストをオーディオファイルに変換します。
  • Alexa搭載デバイスがオーディオを受信して再生します。

スキルのビルド手順

ASKを使ってスキルを作成するには以下の手順を実行します。

Step 1: デザイン

スキルの音声対話モデルをデザインすることから始めます。デザインを開始すると、音声のデザインはモバイルまたはWebベースのアプリケーションのデザインとは全く異なることがすぐにわかります。 ユーザーがあなたのスキルと会話する際の、ありとあらゆる会話パターンについて考慮する必要があるのです。柔軟で自然な音声体験を提供するためには、ユーザーとAlexaとの会話を全てスクリプトで書き出すことが重要です。 また、マルチモーダルの体験(音声と視覚)をデザインする場合は、ユーザーをナビゲートする異なるワークフローを考慮する必要があります。

Step 2: ビルド

対話モデルの準備ができたら、Alexa開発者コンソールで発話、インテント、スロットを作成します。 対話モデルはJSON形式で保存されるので、任意の編集ツールで編集できます。JSON形式の対話モデルが完成したら、AWSマネジメントコンソールでバックエンドのLambda関数を作成します。 任意のプログラミング言語とそれに対応するASKソフトウェア開発キット(SDK)を選択し、スキルのコーディングを開始します。Lambdaでサポートされるプログラミング言語は、Java、Go、PowerShell、Node.js、C#、Python、Rubyです。 AWS Lambdaでは、ほとんどのスキルを無料で開発・ホストできます(月あたり100万呼び出しまでは無料枠の範囲で利用できます)。バックエンドのLambda関数が完成したら、Lambda関数をスキルに組み込んで、Alexa開発者コンソールでテストします。

Step 3: テスト

Alexa開発者コンソールにはビルトインのAlexaシミュレーターがあり、実際のAlexa搭載デバイスと同様のテストが可能です。 Alexaシミュレーターでスキルをテストしたら、認定を申請する前にユーザーのフィードバックを収集し、問題の解決や機能の改善をしておくことをお勧めします。

Step 4: 認定と公開

スキルのベータテストが完了したら、認定を申請します。スキルが認定に合格すると、Alexaスキルストアで公開され、誰でもそのスキルを使用できるようになります。

まとめ

以上が、Alexaスキルを開発する基本的な手順です。 各ステップの内容については、これ以降のモジュールで詳しく見ていきます。

スキル開発の要件

Alexaスキルを開発するには、以下のような要件を満たす必要があります:

  • Alexa開発者コンソールのアカウントを作成します。
  • バックエンドのクラウドベースサービスをホストする、インターネット接続可能なエンドポイントが必要です。バックエンドのスキルコードは通常、Lambda関数で作成します。この場合、Amazon開発者コンソールのアカウントのほかに、アマゾンウェブサービス(AWS)のアカウントが必要になります。別の方法として、HTTPSウェブサービスを作成してホストすることもできます。この場合、クラウドホスティングプロバイダーとSecure Sockets Layer(SSL)証明書が必要になります。
  • 使用するプログラミング言語に応じた開発環境が必要です。 Lambdaのネイティブサポート言語は、Java、Go、PowerShell、Node.js、C#、Python、Rubyです。また、提供されるランタイムAPIを使えば、これ以外の言語を使って関数を作成することもできます。
  • スキルで使用する画像、オーディオファイル、ビデオファイルをホストするパブリックアクセスが可能なウェブサイトが必要です。 Amazon Simple Storage Service(Amazon S3)を利用することもできます。スキルアイコン以外のファイルがない場合、リソースをホストする必要はありません。
  • (任意)テスト用のAlexa搭載デバイスを用意します。 スキルはAmazon Echo、Echo Dot、Fire TV Cube、Alexa Voice Service(AVS)を利用する各種Alexa搭載デバイスで動作します。デバイスがない場合は、開発者コンソールのAlexaシミュレーターを使用できます。シミュレーターを使ってEcho ShowとEcho SpotのDisplayテンプレートの確認もできますが、表示はインタラクティブではありません。スキルに表示やタッチによるインタラクティブな要素が含まれる場合は、画面付きのAlexa搭載デバイスでテストする必要があります。

次のモジュールでは、デザインプロセスと、カスタムスキルの対話モデル作成に関連した主な概念について学びます。