Fire TV対応アプリ用VSK(Video Skills Kit)について
Fire TV対応アプリ用VSK(Video Skills Kit)を実装すると、自然言語コマンドを使用して、アプリのコンテンツの検索や再生、メディア再生の制御などを行えるようになります。たとえば、アプリにVSKを実装した場合、「<アプリ名>で『ボッシュ』を再生して」や「『ボッシュ』を再生して」などのフレーズを言うと、アプリがメディア再生を開始します。VSKとカタログ統合を組み合わせることにより、Fire TVでさまざまな方法でコンテンツを表示できます。
- ビデオチュートリアル
- カタログ統合による音声機能
- VSKの統合による音声機能
- 期待されるディレクティブの処理
- VSKの実装の選択肢: アプリのみかクラウド側か
- サンプルアプリ
- 必要なもの
- サポート対象国
- 用語集
- 次のステップ
ビデオチュートリアル
次のビデオチュートリアル(日本語字幕付き)では、アプリのみの統合を用いた、Fire TV対応アプリへのVSK統合を概説しています。
カタログ統合による音声機能
アプリをVSKと統合するための前提条件は、まずカタログ統合を行い、次にFire TVのユニバーサル検索・閲覧機能と統合することです(これは「ランチャー統合」とも呼ばれます)。このカタログ統合を完了すると、アプリのユーザーがアプリの起動機能と暗黙的なクイック再生を利用できるようになります。たとえば、ユーザーが次のような発話を利用できるようになります。
- アプリの起動: 「<アプリ名>を開いて」
- 暗黙的なクイック再生: 「<ビデオ名>を見せて」
暗黙的とは、リクエストでアプリが指定されないことを意味します。その場合、Fire TVは該当するビデオをすべてのカタログで検索します。ユーザーが(フォアグラウンドで)アプリを開いた状態でリクエストの発話をすると、Fire TVはまずそのアプリのカタログ内を検索します。
VSKの統合による音声機能
VSKとアプリを統合することにより、ユーザーにさらに多くの音声機能を提供でき、ユーザーが(リモコンを使わずに)アプリ内のコンテンツを簡単に発見、検索、操作できるようになります。VSKと統合すると、Alexaからアプリに直接リクエストが届くようになります(「ディレクティブ」と呼ばれるJSON形式の情報ブロックが使用されます)。そのため、アプリ独自のロジックでリクエストを処理することができます。これにより、ユーザーのリクエスト(「発話」と呼びます)に対応するうえでの制御性と機能が向上します。
VSKとの統合では、やり取りするVSKインターフェースは主に、 SearchAndPlay
(「…を見せて/再生して」のリクエストなど)とSearchAndDisplayResults
(「…を検索して/探して」のリクエストなど)の2つです。APIリファレンスには、これらのインターフェースでサポートされている発話と、アプリに送信されるディレクティブをすべて網羅したリストが記載されています。VSKの統合により、(カタログ統合で可能になっている)アプリの起動と暗黙的なクイック再生に加えて、ユーザーはたとえば以下のようなリクエストを発話できるようになります。
機能 | 発話/例 |
---|---|
タイトルを再生(明示的) | 「<アプリ名>で<ビデオ名>を見せて」 |
ジャンル名で検索 | 「<ジャンル名>を探して」 |
俳優で検索 | 「<俳優名>が出ている映画を検索して」 |
シリーズで再生 | 「<アプリ名>で<シリーズ>を見せて」 |
制作会社で検索(明示的) | 「<アプリ名>で<制作会社>を検索して」 |
スポーツの種類で再生 | 「<スポーツの種類>を見せて」 |
シーズンとエピソードで再生 | 「<テレビ番組>のシーズン2のエピソード3を再生して」 |
アプリのフォアグランド/バックグラウンドの状態によるコンテキスト検索のあいまいさの解消 | ユーザー: 「<コメディ>を見せて」 アプリがフォアグラウンドの場合: (Alexa)「コメディはこちらです」 アプリがバックグラウンドの場合: (Alexa)「<アプリ1>と<アプリ2>、どちらでお探ししますか?」 |
マルチターン機能 | (あいまいさの解消後)(ユーザー)「<アプリ2>」 (Alexaのマルチターン)「わかりました。こちらが<アプリ2>の<ジャンル名>です」 |
ユーザーの状態による機能ゲート | ユーザーまたはアプリの状態変化に応じたアプリ機能の追加または削除 |
上記の表は、サポートされている発話の一部にすぎません。発話と送信されるディレクティブの包括的なリストについては、SearchAndPlay
およびSearchAndDisplayResults
を参照してください。または、ディレクティブごとの発話を確認するには、発話リファレンスを参照してください。
期待されるディレクティブの処理
アプリとVSKを統合する際には、Fire TV対応アプリがどのようなディレクティブを受け取り、それをどのように処理する必要があるかを理解しておく必要があります。ディレクティブとは、Alexaからアプリに送信される、JSON形式のデータと命令のセットです。たとえば、TV番組の検索や、映画の再生などを行うディレクティブがあります。ユーザーが「バットマンを見せて」と話しかけると、Alexaからアプリに、次のようなpayload
を持つSearchAndPlay
ディレクティブが送信されます。
{
"searchText": {
"transcribed": "バットマン"
},
"entities": [
{
"externalIds": {
"ENTITY_ID": "123"
},
"type": "Franchise",
"uri": "entity://avers/franchise/Batman",
"value": "バットマン"
}
]
}
transcribed
は、ユーザーがリクエストで使用したフレーズの短縮版です。uri
は、カタログにおけるメディアの識別子です。type
では、このメディアがシリーズ物の1作であることが示されています(「Franchise」は続編のあるシリーズ物の映画を指します)。payload
オブジェクトの詳細については、対応するAPIリファレンスに記載されています。
Alexaからアプリにこれらのディレクティブが送信され、アプリではこのディレクティブに対応することが求められます(リクエストの結果を表示する、リクエストされたビデオを再生するなど)。このドキュメントではディレクティブについて説明しますが、アプリでディレクティブを処理する方法の詳細については記載していません。このロジックについては、開発者が独自に開発する必要があります。
VSKの実装の選択肢: アプリのみかクラウド側か
Fire TV対応アプリにVSKを実装するには、2つの方法があります。
- アプリのみの統合: 送信されたディレクティブをアプリで直接受け取ります。Alexaから送信されるディレクティブは、VSK AgentというFire TV上のサービスを通じて、ブロードキャストインテントとしてアプリに転送されます。インテントはアプリ内のBroadcastReceiverで処理します(インテントとBroadcastReceiverを使用するこの実装は、カタログ統合と同じような手法となります)。
- クラウド側の統合: AWSのLambda関数へのディレクティブを受け取り、メッセージングサービス(通常はAmazon Device Messaging)を介してそのディレクティブ(またはディレクティブの処理結果)をアプリに送信します。アプリは受信メッセージを承認し、そのリクエストを処理します。
当初は、クラウド側の統合を使用してVSKを統合していました。しかし、クラウド側の統合には、多くのAWSコンポーネント(Lambda、IAM、ADM、CloudWatchなど)が関係し、開発に長い時間を要しました。(後からリリースされた)アプリのみの実装では、開発の所要時間がはるかに短くなり、AWSコンポーネントも不要になっています。統合はすべてAndroid内でネイティブに行われます。
また、アプリのみの実装では、LambdaおよびADMに送信されるメッセージが途中で中継されないため、パフォーマンスが大幅に向上します。すべてがFire TV上のアプリおよびVSK Agent内で直接行われます。アプリのみの統合は、実装が簡単で短時間で済むため、現在はこちらがパートナーに推奨されるデフォルトの方法となっています。
クラウド側の統合は現在もサポートされており、この方法で既にVSKを実装している場合や、クラウド側の統合の方が好ましい場合には、こちらを利用することができます。複雑なロジックまたは込み入った処理や検索があり、Androidアプリ内で直接コーディングするよりも外部のLambda関数で処理する方がうまく処理できる場合には、クラウド側の実装が適している可能性があります。また、Fire TV上ではアクセスに制約のあるサービスやシステムと統合する目的で、処理のロジックをアプリの外部に出したい場合にも、クラウド側の実装が適していることがあります。
サンプルアプリ
アプリのみの統合とクラウド側の統合のどちらにも、(Android TV Leanbackライブラリをベースとした)サンプルアプリがあり、統合の方法を実際に確認することができます(アプリのみのサンプルアプリとクラウド側のサンプルアプリを参照してください)。VSKの実装には時間がかかる場合があるため、VSKのしくみ(およびアプリやLambdaに送信されるディレクティブ)をすぐに調べて想定事項をよく理解できるようにしたいと多くのパートナーは考えています。サンプルアプリは、VSKを統合したアプリの動作を簡単に確認する手段となり、統合の参考にもなります。このドキュメントでは、多くの場合、サンプルアプリに関する説明は次のようなコールアウトで示されます。
サンプルアプリに関する注意事項は、このように表示されます。多くの場合、その手順で必要なコーディングがある場合や、サンプルアプリで既に記述されているコードがある場合に、この注意事項に記載されます。
必要なもの
VSKの統合を完了するために必要なものは、次のとおりです。
- Fire TVデバイス。統合のテストには、任意のFire TVデバイスを使用できます。Fire TVデバイスのリモコンにあるマイクボタンを使用して、Fire TVに対する音声リクエストを実行できます(リモコンにマイクがない場合は、EchoとFire TVをペアリングすることができます)。 推奨のFire TVデバイスはFire TV Stick 4Kですが、任意のFire TVデバイスを使用できます。
- Androidアプリ。ストリーミングメディアを再生できるネイティブAndroidアプリが必要です。アプリがない場合や、サンプルアプリでVSKの確認をしたい場合は、サンプルアプリを利用できます。
- カタログ統合。VSKの統合を完了するには、その前にカタログを統合する必要があります。まだカタログの統合を行っていない場合、開発段階ではサンプルアプリのカタログを使用することができます。
- Amazon開発者アカウント。Amazon開発者アカウントが必要です(無料)。まだアカウントがない場合は、developer.amazon.comにアクセスして、右上隅の [ログイン] をクリックし、[Amazon Developerアカウントを作成] をクリックします。
サポート対象国
VSKのサポートは国によって異なります。ある国でVSKがサポートされている場合、Alexaはその国の言語を使用したユーザーのリクエストを理解できます。これには、その国に固有のスポーツチームや映画のタイトルなど、その地域のさまざまなものも含まれます。詳細については、サポート対象国を参照してください。
用語集
Alexaでは、聞き慣れない用語が新たに増えてきています。用語の定義については、用語集を参照してください。
次のステップ
次の手順に進むには、まず、アプリのみの統合に記載されている大まかな概要を確認してください。このアプリのみの統合は、VSKの統合で推奨されている方法です。
Last updated: 2021年3月5日