Alexa.ChannelControllerインターフェース
ユーザーがチャンネル変更の発話(「アレクサ、チャンネルをPBSに変えて」など)を行うと、Alexa.ChannelControllerインターフェースはChangeChannelディレクティブを送信して、チャンネルの変更が必要であることを示します。これらのディレクティブが送信されるのは、ユーザーがチャンネル名、コールサイン、チャンネル番号のいずれかを指定したときです。
ChannelControllerインターフェースを実装するのではなく、ライブTVの統合を行うことをお勧めします。ライブTVの統合には、Fire TVの [ライブ] タブや番組表の統合など、より多くのメリットがあります。ライブTVの統合は、Fire TVのパートナーに推奨されているアプローチです。ChannelControllerディレクティブの発話
ユーザーが以下の発話をすると、AlexaはChannelControllerインターフェースを介してLambdaにChangeChannelディレクティブを送信します。
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | Go to fox | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | Go to channel thirteen | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | Go to channel k. c. p. q. | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | Watch fox | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | Watch channel thirteen | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | Va sur [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | va sur [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | cambia canal a t. p. d. | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | mets [ChannelName] joue [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | mets la chaîne[ChannelNumber] joue la chaîne[ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | Va sur [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | va sur [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | va sur [channel] | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | mets [ChannelName] joue [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | mets la chaîne[ChannelNumber] joue la chaîne[ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | (schalt auf|geh zu) [ChannelName] schalt kanal [ChannelName] ein (geh|schalt|wechsel|änder) zum kanal [ChannelName] (geh|schalt|wechsel|änder) zu [ChannelName] kanal (wechsel|änder) den kanal zu [ChannelName] (wechsel|änder) den kanal zu [ChannelName] auf [AppName] schalt [ChannelName] auf [AppName] an schalt kanal [ChannelName] auf [AppName] an (geh|schalte|wechsel) zu [ChannelName] auf [AppName] (stell|schalt) [ChannelName] ein auf [AppName] (stell|schalt|wechsel) (um zu|auf) [ChannelName] auf [AppName] schalt kanal [ChannelName] auf [AppName] an mach [ChannelName] auf [AppName] an | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | schalt kanal [ChannelNumber] ein (geh|schalt|wechsel|änder) zum kanal [ChannelNumber] (geh|schalt|wechsel|änder) zu [ChannelNumber] kanal (wechsel|änder) den kanal zu [ChannelNumber] (wechsel|änder) den kanal zu [ChannelNumber] auf [AppName] schalt [ChannelNumber] auf [AppName] an schalt kanal [ChannelNumber] auf [AppName] an (geh|schalte|wechsel) zu [ChannelNumber] auf [AppName] (stell|schalt) [ChannelNumber] ein auf [AppName] (stell|schalt|wechsel) (um zu|auf) [ChannelNumber] auf [AppName] schalt kanal [ChannelNumber] auf [AppName] an mach [ChannelNumber] auf [AppName] an kanal [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | schalte/änder/geh zu/auf den fernsehsender [ChannelName] geh zum (fernseh)kanal [ChannelName] ändern den (fernseh)kanal zu/auf [ChannelName] | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | [ChannelName] auf [AppName] ansehen spiel den kanal [ChannelName] ab | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | Zeige Kanal/Sender [channel number] Kanal/Sender [channel number] anschauen | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | fox पर/पे जाओ/जाइए/जाना/चलो/चलना | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | channel दस पर/पे जाओ/जाना/जाइए/चलो/चलना | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | channel sony पर/पे जाओ/जाना/जाइए/चलो/चलना | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | fox देखो/देखिए/देखना/देखें | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | channel बारह देखो/देखना/देखिए/देखें | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | vai su [ChannelName] vai a [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | vai al [ChannelNumber] vai su [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | vai su [Channel] vai a [Channel] | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | guarda [ChannelName] fammi vedere [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | metti [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | [ChannelName]を検索 | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 |  | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 |  | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | [ChannelName]を見せて | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | チャンネル[ChannelNumber]を見せて | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | vá/vai/ir para o canal [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 |  | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | vá para o canal [CallSign] | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | assistir/assiste/assista [ChannelName]Assistir/assiste/assistao [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | assitir canal [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | cambia a antena tres | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | cambia el canal a la dos | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | cambia canal a t. p. d. | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | ver la sexta pon la sexta | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | pon canal dos | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
ChangeChannelディレクティブの例
ChangeChannelディレクティブの例を以下に示します。
EXTRA_DIRECTIVE_NAMESPACE: Alexa.ChannelController
EXTRA_DIRECTIVE_NAME: ChangeChannel
EXTRA_DIRECTIVE_PAYLOAD_VERSION: 3
EXTRA_DIRECTIVE_PAYLOAD: payload
payloadの内容は以下のとおりです。
{
    "payload": {
      "experience": {
         "mode": "VOICE_OPTIMIZED",
              },
      "channel": {
          "number": "1234",
          "callSign": "KSTATION1",
          "affiliateCallSign": "KSTATION2",
          "uri": "someUrl"
      },
      "channelMetadata": {
          "name": "代替チャンネル名",
          "image": "urlToImage"
      }
    }
  }
{
  "directive": {
    "header": {
      "namespace": "Alexa.ChannelController",
      "name": "ChangeChannel",
      "messageId": "abc-123-def-456",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "access-token-from-skill"
      },
      "endpointId": "device-001",
      "cookie": {
      }
    },
    "payload": {
      "experience": {
          "mode": "VOICE_OPTIMIZED",
              },
      "channel": {
          "number": "1234",
          "callSign": "KSTATION1",
          "affiliateCallSign": "KSTATION2",
          "uri": "someUrl"
      },
      "channelMetadata": {
          "name": "代替チャンネル名",
          "image": "urlToImage"
      }
    }
  }
}
ペイロードの定義
| フィールド | 説明 | 型 | 必須 | 
|---|---|---|---|
| experience | 検索結果の表示を最適化するオブジェクトです。詳細については、エクスペリエンスタイプを参照してください。 | オブジェクト | × | 
| channel | チャンネルの説明です。 | オブジェクト | ○ | 
| channel.number | 指定されたチャンネルを識別する番号です(「5」や「12.1」など)。 | 文字列 | × ただし、 channel.number、channelMetadata.name、channel.callSign、affiliateCallSign、uriのいずれかを指定する必要があります。 | 
| channel.callSign | PBSなどのコールサインでチャンネルを指定します。 | 文字列 | × ただし、 channel.number、channelMetadata.name、channel.callSign、affiliateCallSign、uriのいずれかを指定する必要があります。 | 
| channel.affiliateCallSign | KCTS9といった地方系列局のコールサインでチャンネルを指定します。 | 文字列 | × ただし、 channel.number、channelMetadata.name、channel.callSign、channel.affiliateCallSign、channel.uriのいずれかを指定する必要があります。 | 
| channel.uri | チャンネルのURIです(「entity://provider/channel/12307」など)。 | 文字列 | × ただし、 channel.number、channelMetadata.name、channel.callSign、channel.affiliateCallSign、channel.uriのいずれかを指定する必要があります。 | 
| channelMetadata | 指定されたチャンネルの追加情報を指定します。 | オブジェクト | × | 
| channelMetadata.name | チャンネルを識別する別の値です(「FOX」など)。 | 文字列 | × ただし、 channel.number、channelMetadata.name、channel.callSign、channel.affiliateCallSign、channel.uriのいずれかを指定する必要があります。 | 
| channelMetadata.image | チャンネルを表す画像のURLです。 | 文字列 | × | 
エクスペリエンスタイプ
experienceオブジェクトを使用すると、検索に使用されたデバイスに基づいて、検索結果の表示を最適化できます。たとえば、ユーザーがFire TVリモコンを使用して検索した場合、ユーザーはリモコンを使用して結果を閲覧できるため、experienceオブジェクトによって多数の検索結果が表示されます。一方、Fire TVとペアリングされたEchoを使用して検索リクエストが行われた場合は、experienceオブジェクトによって表示される結果の数と表示方法が制限され、ユーザーはリモコンを使用せずに結果を確認できます。
experienceオブジェクトは、検索結果の表示方法を決定するmodeオブジェクトで構成されています。modeオブジェクトは、 VOICE_OPTIMIZEDとDEFAULTの2つの値を取ります。
- 
    VOICE_OPTIMIZED: 音声専用デバイス向けに最適化された表示方法です。リモコンを使用せずに音声で操作できる検索結果のリストが表示されます。
- 
    DEFAULT: 検索に使用されたデバイスに関係なく、すべての検索結果をリスト形式で表示する、デフォルトの表示方法です。
上位互換性を確保するため、modeで不明な値を受け取った場合は、失敗とするのではなく、DEFAULTにフォールバックするようにしてください。
ChangeChannelディレクティブの処理
ChangeChannelディレクティブを使用すると、ユーザーが音声コマンドを使用して特定のチャンネルに合わせることができます。ユーザーが「アレクサ、CNNに変えて」と言うと、LambdaでChangeChannelディレクティブを受け取ります。次に、ライブTVストリームを変更して、適切なチャンネルを表示する必要があります。
どのディレクティブがどのチャネルに対応しているかを理解するために、チャンネルリストのチャンネルごとに、使用される可能性のあるコールサインのリストを用意しました。
このリストに含まれていないチャンネルを追加でサポートする場合は、Amazonの担当者にお問い合わせください。適任者と協力して、その処理方法について必要な情報をご連絡します。
または、チャンネルを任意のチャンネルに変更するようにAlexa搭載デバイスに要求してから、Lambdaログで受け取ったディレクティブを調べて、コールサインを確認してください。その場合でも、Amazonの担当者にこれらのチャンネルについて連絡していただけると、そのチャンネルのAmazonの音声モデルにおける優先順位を判断できるため助かります。チャンネルのコールサインは、チャンネル変更ディレクティブのペイロード内のcallSignフィールドに格納されています。
ディレクティブではローカルチャンネルに関する情報は受け取りません。トップレベル名とコールサイン(たとえば「ABC」など)だけです。 ユーザー向けのローカリゼーションを実行するかどうかは、開発者しだいです。
レスポンスの例
チャンネル変更のリクエストが成功した場合は、Responseイベントを送信する必要があります。レスポンスには、リクエスト完了後のチャンネルを報告するコンテキストオブジェクトを含める必要があります。
{
  "context": {
    "properties": [
      {
        "namespace": "Alexa.ChannelController",
        "name": "channel",
        "value": {
          "number": "1234",
          "callSign": "callsign1",
          "affiliateCallSign": "callsign2"
        },
        "timeOfSample": "2017-02-03T16:20:50.52Z",
        "uncertaintyInMilliseconds": 0
      }
    ]
  },
  "event": {
    "header": {
      "messageId": "abc-123-def-456",
      "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
      "namespace": "Alexa",
      "name": "Response",
      "payloadVersion": "3"
    },
    "endpoint":{
      "endpointId":"appliance-001"
    },
    "payload":{ }
 }
}
何らかの理由でユーザーのリクエストを完了できない場合は、エラーレスポンスを返す必要があります。詳細については、エラー処理を参照してください。

