基本コンポーネントのプロパティ(APL for Audio)
コンポーネントは、Alexaがドキュメントをインフレートするときにオーディオクリップを生成するプリミティブ要素です。たとえば、Speechコンポーネントは、音声に変換するテキストを定義します。Audioコンポーネントは、再生するオーディオファイルを識別します。その他のコンポーネントでは、さまざまな方法で音声とオーディオにミックスやアレンジを加えることができます。
プロパティ
すべてのコンポーネントは、次のプロパティをサポートしています。
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
bind |
バインドの配列 | [] | データバインディングコンテキストに追加する式です。 |
description |
文字列 | "" | (任意)このコンポーネントの説明です。 |
duration |
文字列 | auto | コンポーネントの再生時間を調整するためのオプションを指定します。autoまたはtrimToParentに設定します。 |
id |
文字列 | "" | コンポーネントに割り当てる一意のIDです。ほかのコンポーネントからこのコンポーネントを参照するために使用されます。 |
type |
文字列 | 必須 | コンポーネントの型です。 |
when |
ブール値 | true | trueの場合、ドキュメントはこのコンポーネントをインフレートします。falseの場合、ドキュメントはこのコンポーネントとすべての子コンポーネントを無視します。 |
デフォルト列は、プロパティのデフォルト値を示します。コンポーネントをレンダリングするには、すべての必須プロパティを設定する必要があります。
bind
コンポーネントのbindプロパティは、コンポーネントとその子コンポーネントのデータバインディングコンテキストを拡張します。bindプロパティには、現在のコンテキストを拡張するデータバインディングの順序付きセットを指定します。バインディングには順序があり、前に定義されたバインディングを後のバインディングで使用できます。
bindプロパティの評価は、コンポーネントのwhenプロパティの後、その他のプロパティの前に行われます。
バインディング配列の各バインディングオブジェクトには、次のプロパティが含まれます。
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
name |
文字列 | 必須 | このバインディングで使用する名前です。有効な名前を設定する必要があります。 |
value |
任意 | 必須 | このバインディングに割り当てる値です。 |
type |
any、ブール値、文字列、数値 | any | プロパティの型です。 |
以下は、前のバインディングの結果を後のバインディングで使用する例を示しています。
{
"type": "Speech",
"bind": [
{"name":"FirstName","value":"ジャスミン"},
{"name":"LastName","value":"スミス"},
{"name":"Title","value":"博士"},
{"name":"FormalName","value":"${LastName}${Title}"}
],
"content": "${FirstName}さんと${FormalName}のどちらでお呼びしますか?"
}
この例では、FormalNameの内容は、それより前に定義されたTitleとLastNameの値によって決まります。最終的なテキストは、「ジャスミンさんとスミス博士のどちらでお呼びしますか?」となります。 この例は意図的に作り込まれたものです。実際には、FirstName、LastName、Titleの値は生データ内の要素にバインドするのが一般的です。
組み込みのコンポーネントプロパティとの競合を避けるために、バインドされたプロパティ名には大文字を使用することをお勧めします。たとえば、myCounterではなく、MyCounterやMY_COUNTERのような名前にします。
description
APLドキュメント用にコンポーネントを説明する文字列です。ドキュメントのコンテキストにコンポーネントの説明を含めることで、ドキュメントが読みやすく、理解しやすくなります。説明は、コンポーネントのレンダリングには何も影響しません。
duration
コンポーネントの再生時間を調整するためのオプションを指定します。このプロパティは、コンポーネントがMixerコンポーネントの子コンポーネントとして使用されている場合に適用されます。
このプロパティを次のいずれかの値に設定します。
auto- コンポーネントの自然な再生時間を使用します。trimToParent- コンポーネントの再生時間に合わせてコンテンツをトリミングします。
コンポーネントの自然な再生時間とは、オーディオフィルターの適用後、コンポーネントによって生成されたオーディオクリップの再生時間です。たとえば、長さが10秒のオーディオファイルを持つAudioコンポーネントの自然な再生時間は10秒です。このAudioコンポーネントにrepeatCountが1のRepeatフィルターが含まれている場合、自然な再生時間は20秒になります。
親であるMixerコンポーネントの再生時間は、durationがautoに設定されている子コンポーネントの再生時間のうち、最も長いものに合わせて延長されます。たとえば、5秒間続くSpeechコンポーネントと、10秒間続くAudioコンポーネントを持つMixerコンポーネントがあるとします。これらの子コンポーネントの両方でdurationにautoが使用されている場合、親コンポーネントの再生時間は10秒になります。
次の例は、すべての子コンポーネントのdurationがデフォルトのautoに設定されたMixerを示しています。このMixerでは、10秒間続くオーディオクリップが生成されます。
{
"type": "Mixer",
"items": [
{
"type": "Speech",
"content": "この読み上げは5秒間続きます。"
},
{
"type": "Audio",
"description": "このオーディオファイルは10秒間続きます。",
"source": "https://example.com/audio/ten-second-audio-file.mp3"
}
]
}
auto
durationがautoの場合、コンポーネントの自然な再生時間が調整なしで使用されます。上記の例では、Mixerによって音声がバックグラウンドオーディオと共に再生されます。オーディオは10秒間フルで再生されます。
trimToParent
durationがtrimToParentの場合、Alexaは、コンポーネントの親コンポーネントの再生時間に合わせて、コンポーネントで生成されるオーディオをトリミングします。たとえば、5秒間続くSpeechコンポーネントと、10秒間続くAudioコンポーネントを持つMixerがあるとします。AudioコンポーネントのdurationをtrimToParentに設定すると、親コンポーネントの再生時間はSpeechコンポーネントの再生時間と同じになります。そのため、AlexaはAudioコンポーネントの再生を5秒に切り詰めます。
次の例は、AudioコンポーネントがtrimToParentに設定されたMixerを示しています。このMixerでは、5秒間続くオーディオクリップが生成されます。
{
"type": "Mixer",
"items": [
{
"type": "Speech",
"content": "この読み上げは5秒間続きます。"
},
{
"type": "Audio",
"description": "このオーディオファイルは10秒間続きます。",
"source": "https://example.com/audio/ten-second-audio-file.mp3",
"duration": "trimToParent"
}
]
}
コンポーネントの再生時間が既に親コンポーネントの再生時間よりも短い場合、trimToParentの時間設定の効果はありません。
Mixerのすべての子コンポーネントのdurationがtrimToParentに設定されている場合、Alexaは子コンポーネントの自然な再生時間のうち最も短いものを使用して、親コンポーネントの再生時間を決定します。
id
ドキュメントで特定のコンポーネントを参照できるように、開発者が割り当てる文字列値です。idに使用できる有効な文字は[_a-zA-Z0-9]+です。idは一意である必要はありませんが、一意の値を割り当てることをお勧めします。
type
インフレートするコンポーネントまたは合成を指定します。
APL for Audioでは、次のプリミティブコンポーネントがサポートされます。
APL for Audioの合成は、コンポーネントを組み合わせて新しいカスタムコンポーネントを作成します。合成したカスタムコンポーネントは再利用できます。typeプロパティに合成の名前を指定します。合成の詳細については、合成を参照してください。
typeプロパティは必須です。
when
trueの場合、コンポーネントをインフレートします。falseの場合、コンポーネントとすべての子コンポーネントが無視されます。
指定しない場合、whenのデフォルトはtrueです。
APL for Audioで利用可能なコンポーネント
次のコンポーネントを利用できます。
Audioコンポーネントにフィルターを適用して、ストリーミングするオーディオクリップに変更を加えることができます。詳細については、フィルターを参照してください。
コンポーネントの組み合わせ
複数のコンポーネントを組み合わせて使用することで、さまざまなオーディオエフェクトを作成できます。
- 複数子コンポーネントはそれぞれ、レンダリングするコンポーネントの配列を受け取る
itemsプロパティを持ちます。Mixerは、複数の子コンポーネントを同時に再生します。Sequencerは、複数の子コンポーネントを順番に再生します。
詳細については複数子コンポーネントのプロパティを参照してください。
Selectorも、コンポーネントの配列を受け取るitemsプロパティを持ちます。Selectorは、配列からコンポーネントを1つだけレンダリングします。詳細については、Selectorを参照してください。
関連トピック
最終更新日: 2025 年 11 月 26 日