ドキュメント(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はwhen がtrue に評価された最初の項目をレンダリングします。 |
RenderDocument
ディレクティブを使ってAlexaにドキュメントを送信する際、ディレクティブのdatasources
プロパティにオブジェクトとデータソースを指定します。このオブジェクトは、mainTemplate.parameters
プロパティに指定した名前にマッピングされます。
RenderDocument
ディレクティブの詳細については、Alexa.Presentation.APLAインターフェースのリファレンスを参照してください。
データソースの詳細については、データソースを参照してください。
compositions
compositions
プロパティは、合成の名前から定義への、文字列とオブジェクトのマップです。合成は、プリミティブコンポーネントやほかの合成を組み合わせて、新しいカスタムコンポーネントを作成します。合成したカスタムコンポーネントは、ドキュメントのメインテンプレート内で使用できます。合成の詳細については、合成を参照してください。
resources
リソースブロックの配列を含みます。リソースとは、データバインディングと値の解決によりアクセスできる名前付きエンティティのことです。リソースブロックの詳細については、リソースを参照してください。
version
APLAドキュメントが使用するAPLA仕様のバージョンです。APLAレンダリングエンジンは、version
を使って必要な機能を特定し、ドキュメントを正確にレンダリングします。このプロパティを正しく設定してください。
APLAレンダリングエンジンがドキュメントのバージョンをサポートしていない場合、ドキュメントのレンダリングが拒否されます。APLAレンダリングエンジンには後方互換性があります。つまり、"1.1"のドキュメントをサポートするデバイスは"1.0"のドキュメントもサポートします。
インフレート
Alexaは、以下の手順でドキュメントをオーディオ応答にインフレートします。
- 初期状態のデータバインディングコンテキストを構築します。
mainTemplate
の各parameter
について、以下を実行します。- 名前が同じデータソースを特定します。
- データバインディングコンテキストを更新して、データソースの値にこの名前を設定します。
- 1つの子のみのインフレートアプローチを使い、
mainTemplate
をオーディオ応答に変換します。
関連トピック
最終更新日: 2021 年 11 月 01 日