ドキュメント(APL for Audio)



ドキュメント(APL for Audio)

APLドキュメントは、テンプレートを定義して、スキルがAlexaデバイスに送信するオーディオ応答を作成するJSONオブジェクトです。ドキュメントは、一連のオーディオクリップを定義し、配置します。これらのオーディオクリップは、APLコンポーネントを使った読み上げテキストとオーディオファイルから作成します。たとえば、順に再生する一連のオーディオクリップや、組み合わせて同時に再生する複数のオーディオクリップを指定できます。ドキュメントは、Alexa.Presentation.APLA.RenderDocumentディレクティブを使ってAlexaに送信します。Alexaは、スキル応答の一部としてオーディオをレンダリングします。

APL for Audioの場合、ドキュメントのtypeにAPLではなくAPLAを使います。

単純なAPLAドキュメントには、Speechなどの1つのコンポーネントが含まれます。このドキュメントは、「ハローワールド」という音声を生成します。

クリップボードにコピーされました。

{
  "type": "APLA",
  "version": "0.8",
  "description": "音声を生成する単純なドキュメントです",
  "mainTemplate": {
    "parameters": [
      "payload"
    ],
    "items": [
      {
        "type": "Speech",
        "content": "ハローワールド。"
      }
    ]
  }
}

より複雑なAPLAドキュメントでは、複数のコンポーネントを含めることで、さまざまなオーディオ効果を作成できます。この例では、Sequencerコンポーネントを使い、複数のSpeechコンポーネントを組み合わせて、1つずつ順に再生します。

クリップボードにコピーされました。

{
  "type": "APLA",
  "version": "0.8",
  "description": "2つのSpeechコンポーネントを1つずつ再生する、より複雑な例です",
  "mainTemplate": {
    "parameters": [
      "payload"
    ],
    "items": [
      {
        "type": "Sequencer",
        "items": [
          {
            "type": "Speech",
            "content": "ハローワールド。"
          },
          {
            "type": "Speech",
            "content": "私はAlexaデバイスです。"
          }
        ]
      }
    ]
  }
}

ドキュメントのプロパティ

APLAドキュメントには、次の最上位プロパティがあります。

プロパティ 必須 説明
description 文字列 このドキュメントの任意の説明です。
mainTemplate コンポーネントの配列 オーディオ応答にインフレートするコンポーネントを含みます。
type "APLA" "APLA"を指定する必要があります。
version "0.8" APLA仕様のバージョンを表す文字列です。現在は"0.8"です。

mainTemplate

Alexaがドキュメントをレンダリングするときにインフレートするコンポーネントを含みます。mainTemplateには、次のプロパティがあります。

プロパティ 必須 説明
parameters 文字列の配列 データソースをドキュメントにマッピングする際に使用する名前です。デフォルトはpayloadです。この名前を、データバインディングの式で使い、データソースからのデータをドキュメントで使用します。
items コンポーネントの配列 レンダリングするコンポーネントです。itemsに複数のコンポーネントがある場合、Alexaはwhentrueに評価された最初の項目をレンダリングします。

RenderDocumentディレクティブを使ってAlexaにドキュメントを送信する際、ディレクティブのdatasourcesプロパティにオブジェクトとデータソースを指定します。このオブジェクトは、mainTemplate.parametersプロパティに指定した名前にマッピングされます。

version

APLAドキュメントが使用するAPLA仕様のバージョンです。APLAレンダリングエンジンは、versionを使って必要な機能を特定し、ドキュメントを正確にレンダリングします。このプロパティを正しく設定してください。

APLAレンダリングエンジンがドキュメントのバージョンをサポートしていない場合、ドキュメントのレンダリングが拒否されます。APLAレンダリングエンジンには後方互換性があります。つまり、"1.1"のドキュメントをサポートするデバイスは"1.0"のドキュメントもサポートします。

インフレート

Alexaは、以下の手順でドキュメントをオーディオ応答にインフレートします。

  1. 初期状態のデータバインディングコンテキストを構築します。
  2. mainTemplateの各parameterについて、以下を実行します。
    • 名前が同じデータソースを特定します。
    • データバインディングコンテキストを更新して、データソースの値にこの名前を設定します。
  3. 1つの子のみのインフレートアプローチを使い、mainTemplateをオーディオ応答に変換します。