フィルター(APL for Audio)
フィルターは、ストリーミングオーディオクリップの音量レベル、持続時間、再生位置といった特性を変更します。1つのフィルターの出力を別のフィルターの入力として使用することで、フィルターを連続して適用することもできます。たとえば、あるオーディオクリップにTrimフィルターを適用し、出力されたオーディオクリップをFadeInフィルターの入力として使うことができます。
フィルターの適用について
Alexaは、1つのフィルターの出力を次のフィルターの入力として渡すことで、指定した順序でフィルターを適用します。たとえば、オーディオをフェードインするフィルターの後に切り詰めを行うフィルターを適用した場合と、オーディオを切り詰めるフィルターの後にフェードインするフィルターを適用した場合では出力結果が異なります。
フィルターの各プロパティはデータバインディングをサポートします。Alexaは、データバインディングコンテキストに基づいてフィルターを評価します。データバインディングコンテキストは、フィルターを定義するソースコンテキストです。
フィルター評価プロセスは以下の手順で行われます。
-
Alexaが
whenプロパティを評価します。whenプロパティがfalseに評価されると、Alexaはフィルターをスキップし、配列の次のフィルターに進みます。 -
Alexaがフィルターの
typeプロパティを評価します。Alexaがtypeの値を認識しない場合、Alexaは配列の次のフィルターに進みます。
フィルターの種類
APL for Audioがサポートしているフィルターは次の2種類です。
- ビルトイン - 必須プロパティのセットを使用するAPLビルトインフィルターです。
FadeInなどがあります。次のビルトインフィルターを利用できます。FadeIn- オーディオクリップの音量を0%から入力値にまで上げます。FadeOut- オーディオクリップの音量を入力値から0%にまで下げます。Repeat- オーディオクリップを指定回数繰り返します。Trim- 特定のポイントでオーディオクリップの再生を開始または停止します。Volume- オーディオクリップの音量を指定した値で調整します。
- ユーザー定義 - ユーザー定義のフィルターを、適用するフィルターの配列にインフレートします。Alexaは、フィルターの適用についてに記載されているルールに基づいて配列内のフィルターを適用します。フィルターが適用されると再生が再開されます。
標準のフィルタープロパティ
以下の表は、すべてのオーディオフィルターでサポートされるプロパティを示しています。
| プロパティ | 型 | デフォルト/必須 | 説明 |
|---|---|---|---|
description |
文字列 | "" | (任意)開発者が指定するこのフィルターの説明です。 |
type |
文字列 | 必須 | フィルターの種類です。すべてのフィルターにtypeを指定する必要があります。 |
when |
ブール値 | true | trueの場合、フィルターを適用します。falseの場合、フィルターをスキップします。 |
FadeInフィルター
FadeInフィルターを使用すると、音量が0%から入力値まで、直線的に増加します。
FadeInフィルターには、標準のフィルタープロパティに加えて、次のプロパティがあります。
| プロパティ | 型 | デフォルト/必須 | 説明 |
|---|---|---|---|
duration |
時間 | 必須 | 音量を上げるミリ秒数(ms)を指定します。durationがオーディオクリップの長さよりも長い場合、上げる音量は指定した時間全体に適用され、オーディオクリップが最大音量に達することはありません。 |
例
{
"type": "Audio",
"source": "https://amazon.com/rainforestSoundEffect.mp3",
"filter": [
{
"type": "FadeIn",
"duration": 2000
}
]
}
FadeOutフィルター
FadeOutフィルターを使用すると、音量が入力値から0%まで、直線的に減少します。
FadeOutフィルターには、標準のフィルタープロパティに加えて、次のプロパティがあります。
| プロパティ | 型 | デフォルト/必須 | 説明 |
|---|---|---|---|
duration |
時間 | 必須 | 音量を下げるミリ秒数(ms)を指定します。このプロパティは時間の単位で表されます。durationがオーディオクリップの長さよりも長い場合、下げる音量は指定した時間全体に適用され、オーディオクリップは下がった音量から開始します。 |
例
{
"type": "Audio",
"source": "https://amazon.com/rainforestSoundEffect.mp3",
"filter": [
{
"type": "FadeOut",
"duration": 2000
}
]
}
Repeatフィルター
Repeatフィルターを使用すると、オーディオサンプルを指定回数繰り返すことができます。
Repeatフィルターには、標準のフィルタープロパティに加えて、次のプロパティがあります。
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
repeatCount |
数値 | 0 | 繰り返す回数を指定します。 |
repeatCountは、オーディオクリップを繰り返す回数を指定します。Alexaではクリップが最初に再生され、次に指定した回数だけ再生されます。たとえば、repeatCountが2の場合、Alexaはクリップを合計3回再生します。
repeatCountを大きな数値に設定すると、Alexaでは、音声応答のAPLでサポートされているコンテンツの最大長に再生が制限されます。
repeatCountを-1に設定すると、オーディオ応答のAPLの最大コンテンツ長まで無限回繰り返すことができます。
例
以下は、雨の音を3回再生するAudioコンポーネントの例です。
{
"type": "Audio",
"source": "soundbank://soundlibrary/nature/amzn_sfx_rain_01",
"filter": [
{
"type": "Repeat",
"repeatCount": 2
}
]
}
バックグラウンドオーディオと読み上げを合わせる例
Repeatフィルターとコンポーネントのdurationプロパティを組み合わせて、バックグラウンドオーディオと別のコンポーネント(読み上げなど)の長さを一致させることができます。
以下の例では、音響効果「屋根の雨音」を無限に繰り返すように設定しています。durationをtrimToParentに設定すると、生成されるオーディオがSpeechコンポーネントの長さに合わせてトリミングされます。その結果、読み上げとまったく同じ時間だけ、音響効果が繰り返しリピート再生されます。
Trimフィルター
Trimフィルターを使用すると、特定のポイントでオーディオクリップの再生を開始したり、特定のポイントで再生を停止したり、その両方を実行したりできます。
Trimフィルターには、標準のフィルタープロパティに加えて、次のプロパティがあります。
| プロパティ | 型 | デフォルト/必須 | 説明 |
|---|---|---|---|
end |
時間 | null | オーディオクリップを終了する時間を指定します。この時間以降のすべてが切り詰められます。このプロパティが指定されない場合やnullが指定された場合は、残りの再生時間の分だけオーディオクリップが再生されます。 |
start |
時間 | 0 | オーディオが開始する時間です。この時間以前のすべてが切り詰められます。 |
例
{
"type": "Audio",
"source": "https://amazon.com/rainforestSoundEffect.mp3",
"filter": [
{
"type": "Trim",
"start": 2000,
"end": 9000
}
]
}
Volumeフィルター
Volumeフィルターを使用すると、定義した分だけオーディオクリップの音量を上げたり下げたりできます。
Volumeフィルターには、標準のフィルタープロパティに加えて、次のプロパティがあります。
| プロパティ | 型 | デフォルト/必須 | 説明 |
|---|---|---|---|
amount |
数値または文字列 | 必須 | オーディオクリップの音量を調整する量を指定します。amountは、数値またはパーセンテージで指定できます。出力音量は、amountの値をかけたオーディオクリップの音量と同じです。 |
音量は、クリップの元の音量に対して相対的に調整されます。調整しても、デバイスの設定は変更されません。たとえば、100%はクリップの元の音量を表し、200%は通常音量の2倍を表します。
Volumeフィルターに数値を指定した場合の例
{
"type": "Audio",
"source": "https://amazon.com/rainforestSoundEffect.mp3",
"filter": [
{
"type": "Volume",
"amount": 0.5
}
]
}
Volumeフィルターにパーセンテージを指定した場合の例
{
"type": "Audio",
"source": "https://amazon.com/rainforestSoundEffect.mp3",
"filter": [
{
"type": "Volume",
"amount": "50%"
}
]
}
関連トピック
最終更新日: 2025 年 11 月 26 日