マルチモーダルなAlexaスキルの作り方

マルチモーダルなAlexaスキルを開発する理由

目次

マルチモーダルとは、Alexaで既に提供している音声エクスペリエンスに、視覚要素など、ほかの形式でのコミュニケーションを追加したものです。Alexaは常に音声ファーストですが、視覚要素を追加することで、画面付きのAlexa搭載デバイスでのユーザーエクスペリエンスが大きく向上します。Alexaデバイスの販売数は現在1億台を突破していますが、この中には、Echo SpotやEcho ShowなどのEchoデバイス、FireTV、Fireタブレットのほか、Lenovo Smart TabデバイスやLG TVのような他メーカーのAlexa搭載デバイスも含まれています。Alexaスキルにコミュニケーションの形式を追加することで、これらのデバイスを使用するユーザーのエクスペリエンスを向上させることができます。

スキルの応答に詳細情報を追加する

マルチモーダルスキルは、視覚要素を使ってより多くの情報を提供できるので、ユーザーエクスペリエンスの向上につながります。音声は、直観的かつ効率的という点ではユーザーとの対話方法として優れていますが、込み入った情報や大量の情報を一度に提示する場合の選択肢としては適していません。代わりに、音声応答をできるだけ簡潔にし、詳細情報を視覚要素で提供します。たとえば、毎日の天気予報を提供する天気スキルでは、音声で気温と降水量を伝え、画面で1時間ごとの湿度、風速、気温などの詳しい気象データを表示することができます。ユーザーは、音声応答を聞きながら、画面でこれらの詳細な気象データを確認できます。提供される情報はすべて重要かもしれませんが、Alexaがそれらをすべて読み上げるには時間がかかるので、多くのユーザーはイライラするか退屈してしまうでしょう。ただし、リクエスト元のデバイスに画面がない場合は、湿度や風速などの情報も加えて音声で伝えます。どちらの場合も、さらに詳しく知りたいユーザーはその旨を伝えることができるようにします。ユーザーがマルチモーダルデバイスを持っていたとしても、常に画面を見ているかどうかはわかりません。リクエスト元のAlexaデバイスに画面があるかどうかを判断する具体的な方法については、このコースの後半で説明します。

補助的な視覚要素

マルチモーダルデバイスでは、スキルのエクスペリエンスに視覚的なブランディングを追加することもできます。独自のブランドロゴ、カラーパレット、スタイルを追加して、ユニークな視覚エクスペリエンスを作成できます。たとえば、ビジネススキルであれば、販売概要のグラフの上部にスキルのロゴを付けたり、損益などの測定基準を表す色を設定したりすることができます。質の高い視覚要素を使用すると、ユーザーエクスペリエンスが豊かになるだけでなく、スキルのブランドイメージも高まります。たとえば、音楽スキルでは、画面付きデバイスに再生中のアルバムアートなどの視覚要素を表示するのが一般的です。画面を見れば、アーティスト、アルバム、曲名はもちろん、どのサービスが音楽を再生しているのかも一目瞭然です。音楽スキルは長時間実行されるため、情報をさりげなく常に表示できるリマインダーとして視覚要素を活用することができます。高品質の視覚要素は、ユーザーにスキルとの対話方法を伝える重要な手段ともなります。たとえば、画面の下部に短い(1文の)メッセージを表示して、特定のアクションの実行方法のヒントとして使用できます。ヒントメッセージは、現在進行中の対話に沿った内容にすることができます。たとえば、天気予報スキルで、今日の1時間ごとの風速の詳細をたずねる方法をヒントとして表示できます。本題と関係のない情報は画面で伝えるようにすれば、ユーザーの邪魔をしたり、音声情報が多すぎてユーザーを疲れさせたりすることがなくなります。

リッチなメディアエクスペリエンス

音声エクスペリエンスは常に必要となりますが、スキルの中には主にメディアの表示用として使用されるものもあります。マルチモーダルインターフェースでは、ビデオ、画像、アニメーションを音声と組み合わせて提供することができます。ユーザーのホストされているアカウントからユーザーの写真、ビデオ、写真のメタデータを表示するスキルを例に考えてみましょう。画面のないデバイスでは、メタデータを読み上げるか、ビデオファイルの音声部分を再生するしかありません。しかし、デバイスに画面があれば、視覚コンテンツを簡単に表示、再生、検索することが可能です。マルチモーダルデバイスなら、独自のエクスペリエンスを実現できます。

Alexa Presentation Language

Alexa Presentation Language(APL)は、成長を続けるAlexa搭載マルチモーダルデバイスのカテゴリーで視覚要素をレンダリングするためにデザインされました。グラフィックス、画像、スライドショー、ビデオ、アニメーションを追加することで、リッチな視覚エクスペリエンスを提供できます。APLは、個別のデバイスを対象としたものではなく、さまざまなタイプのAlexa搭載デバイスに幅広く対応できるデザイン言語です。画面用に加えて、キャラクターディスプレイ用のAPLも用意されています。これは、Echo dot with clockといった画面なしのマルチモーダルデバイスを対象としています。デバイスの種類が増えるにつれて、APLも拡張されています。Alexa Presentation Languageの使用について学び、理解を深めることで、ほとんどのマルチモーダルデバイスにリーチするうえで必要となる知識とツールを習得できます。

APLスキルフロー

APL Skill Flow diagram

Alexaスキルは、すべて上の図のような流れで実行されます。

  1. ユーザーがAlexa搭載デバイスに話しかけます。
  2. 音声がクラウドのAlexaサービスに送られ、テキストに変換されてから、さらにインテントに変換されます。
  3. インテント(およびスロット)がバックエンドに送られ、そこで適切なspeakOutputと任意のディレクティブが形成されます。これらのディレクティブがそれぞれアクションを実行するようデバイスに指示します。
  4. Alexaサービスを通じて、スキルのspeakOutputのテキストを音声に変換して応答します。該当するディレクティブ(RenderDocument)が送信された場合は、デバイスに視覚要素をレンダリングします。

一部のイベントでは、ユーザーのアクションに対する応答でスキルのバックエンドへのリクエストをトリガーできます。これらは、インテントまたは起動リクエスト用に作成されるハンドラーと似ています。

APLドキュメント

APLドキュメントには、RenderDocumentディレクティブのUI要素とその視覚的階層のすべての定義が含まれています。また、それらのコンポーネントに関連付けられたスタイルと、データをバインドできるポイントも保持しています。画面の視覚要素は、APLコンポーネントとレイアウトで構成されます。 コンポーネントは、APLの最も基本的な構成要素であり、viewportに表示される小さい自己完結型のUI要素を表します。 レイアウトは、コンポーネントと同じように使用されますが、プリミティブな要素ではありません。ほかのレイアウトやプリミティブなコンポーネントを組み合わせてUIパターンを作るために使用されます。レイアウトは、独自に作成することも、ほかのソースから定義済みのものをインポートすることもできます。すべてのAPLドキュメントには「mainTemplate」があります。これは、レンダリング対象のAPL画面の初期状態を表します。以下は、すべての最上位プロパティを含む空のAPLドキュメントの例です。

{
    "type": "APL",
    "version": "1.1",
    "settings": {},
    "theme": "dark",
    "import": [],
    "resources": [],
    "styles": {},
    "onMount": [],
    "graphics": {},
    "commands": {},
    "layouts": {},
    "mainTemplate": {
        "parameters": [
            "payload"
        ],
        "items": []
    }
}

APLドキュメントの各パートについては、コースを進めながら詳しく説明していきます。この後のセクション2では、APLオーサリングツールを使って、Cake TimeスキルのLaunchRequest用のシンプルなAPLドキュメントを作成します。