基本コンポーネントのプロパティ(APL for Audio)



基本コンポーネントのプロパティ(APL for Audio)

コンポーネントとは、Alexaがドキュメントをインフレートするときにオーディオクリップを生成するプリミティブな要素のことです。たとえば、単純なSpeechコンポーネントで音声に変換するテキストを定義します。Audioコンポーネントで再生するオーディオファイルを識別します。それ以外のコンポーネントでも、さまざまな方法で音声とオーディオを組み合わせたり、配置したりできます。

プロパティ

すべてのコンポーネントは、次のプロパティをサポートしています。

プロパティ デフォルト 説明
bind バインドの配列 [] データバインディングコンテキストに追加する式です。
description 文字列 "" このコンポーネントの任意の説明です。
id 文字列 "" コンポーネントに指定する固有のIDです。ほかのコンポーネントがこのコンポーネントを参照するときに使用します。
type 文字列 必須 コンポーネントの種類です。
when ブール値 true trueの場合、ドキュメントはこのコンポーネントをインフレートします。falseの場合、ドキュメントはこのコンポーネントとすべての子コンポーネントを無視します。

デフォルト列は、プロパティのデフォルト値を示します。すべての必須プロパティを設定する必要があります。設定しないと、コンポーネントはレンダリングされません。

bind

コンポーネントのbindプロパティは、コンポーネントとその子コンポーネントのデータバインディングコンテキストを展開します。bindプロパティでは、現在のコンテキストを展開するデータバインディングを順序付きで指定します。バインディングには順序があり、以前のバインディングの定義を、それ以降のバインディングで使用できます。

bindプロパティの評価は、コンポーネントのwhenプロパティとその他のプロパティとの間に行われます。

バインディング配列の各バインディングオブジェクトには、次のプロパティが含まれます。

プロパティ デフォルト 説明
name 文字列 必須 このバインディングで使用する名前です。有効な名前を設定する必要があります。
value 任意 必須 このバインディングに割り当てる値です。
type 任意、ブール値、文字列、数値 any プロパティの型です。

以下は、以前のバインディングの結果を以降のバインディングがどう利用できるかの例です。

{
  "type": "Speech",
  "bind": [
    {"name":"FirstName","value":"ジャスミン"},
    {"name":"LastName","value":"スミス"},
    {"name":"Title","value":"博士"},
    {"name":"FormalName","value":"${LastName}${Title}"}
  ],
  "content": "${FirstName}さん、または${FormalName}のどちらでお呼びしますか?"
}

この例では、FormalNameの内容が、それより前に定義されたTitleLastNameの値によって決まります。最終的にこのテキストは、「ジャスミンさん、またはスミス博士のどちらでお呼びしますか?」となります。この例では仮の値を使っています。実際には、FirstNameLastNameTitleの値が生データ内の要素とバインドされます。

バインドされたプロパティ名を大文字にすることで、元のコンポーネントプロパティと競合しないようにしています。たとえば、"myCounter"ではなく、"MyCounter"や"MY_COUNTER"のように指定します。

description

APLドキュメント用にコンポーネントを説明する文字列です。ドキュメントのコンテキストにコンポーネントの説明を含めることで、ドキュメントが読みやすく、理解しやすくなります。説明は、コンポーネントのレンダリング結果には影響しません。

id

ドキュメントで特定のコンポーネントを参照できるように、開発者が割り当てる文字列値です。idに指定できる有効な文字は[_a-zA-Z0-9]+です。ほかのidと同じ値を使用してもかまいませんが、一意の値を割り当てることをお勧めします。

type

インフレートするコンポーネントを指定します。サポートされているプリミティブコンポーネントのいずれかにする必要があります。

typeプロパティは必須です。

when

trueの場合、コンポーネントをインフレートします。falseの場合、コンポーネントとすべての子コンポーネントが無視されます。

指定しない場合、whenはデフォルトのtrueになります。

APL for Audioで利用可能なコンポーネント

次のコンポーネントを利用できます。

Audioコンポーネントにフィルターを適用して、ストリーミング中にオーディオクリップを変更できます。詳細については、フィルターを参照してください。

コンポーネントの組み合わせ

複数のコンポーネントを組み合わせて使用することで、さまざまなオーディオエフェクトを作成できます。

  • 複数子コンポーネントはそれぞれ、itemsプロパティを持ち、レンダリングするコンポーネントの配列を受け取ります。
    • Mixerは、子コンポーネントを同時に再生します。
    • Sequencerは、子コンポーネントを1つずつ順番に再生します。

    複数子コンポーネントのプロパティを参照してください。

  • Selectorも、コンポーネントの配列を受け取るitemsプロパティを持ちます。Selectorは、配列のコンポーネントを1つだけレンダリングします。詳細については、Selectorを参照してください。