ドキュメント(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.91",
  "description": "音声を生成する単純なドキュメントです",
  "mainTemplate": {
    "parameters": [
      "payload"
    ],
    "items": [
      {
        "type": "Speech",
        "content": "ハローワールド。"
      }
    ]
  }
}

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

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

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

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

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

プロパティ 必須 説明
description 文字列 このドキュメントの任意の説明です。
mainTemplate 音声合成 最初の合成です。オーディオ応答にインフレートするコンポーネントを含みます。
type "APLA" "APLA"を指定する必要があります。
compositions compositionのマップ カスタムの合成です。
[resources]{#resources} リソースの配列 リソースの定義です。
version "0.91" APLA仕様のバージョンを表す文字列です。現在は"0.91"です。

mainTemplate

Alexaがドキュメントをレンダリングするときにインフレートする合成を含みます。以下の表は、mainTemplateプロパティを示しています。

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

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

RenderDocumentディレクティブの詳細については、Alexa.Presentation.APLAインターフェースのリファレンスを参照してください。

データソースの詳細については、データソースを参照してください。

compositions

compositionsプロパティは、合成の名前から定義への、文字列とオブジェクトのマップです。合成は、プリミティブコンポーネントやほかの合成を組み合わせて、新しいカスタムコンポーネントを作成します。合成したカスタムコンポーネントは、ドキュメントのメインテンプレート内で使用できます。合成の詳細については、合成を参照してください。

resources

リソースブロックの配列を含みます。リソースとは、データバインディングと値の解決によりアクセスできる名前付きエンティティのことです。リソースブロックの詳細については、リソースを参照してください。

version

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

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

インフレート

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

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


このページは役に立ちましたか?

最終更新日: 2021 年 11 月 01 日