フィルター(APL for Audio)


フィルター(APL for Audio)

フィルターは、ストリーミングオーディオクリップの音量レベル、持続時間、再生位置といった特性を変更します。1つのフィルターの出力を別のフィルターの入力として使用することで、フィルターを連続して適用することもできます。たとえば、あるオーディオクリップにTrimフィルターを適用し、出力されたオーディオクリップをFadeInフィルターの入力として使うことができます。

フィルターの適用について

Alexaは、1つのフィルターの出力を次のフィルターの入力として渡すことで、指定した順序でフィルターを適用します。たとえば、オーディオをフェードインするフィルターの後に切り詰めを行うフィルターを適用した場合と、オーディオを切り詰めるフィルターの後にフェードインするフィルターを適用した場合では出力結果が異なります。

フィルターの各プロパティはデータバインディングをサポートします。Alexaは、データバインディングコンテキストに基づいてフィルターを評価します。データバインディングコンテキストは、フィルターを定義するソースコンテキストです。

フィルター評価プロセスは以下の手順で行われます。

  1. Alexaがwhenプロパティを評価します。whenプロパティがfalseに評価されると、Alexaはフィルターをスキップし、配列の次のフィルターに進みます。

  2. 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プロパティを組み合わせて、バックグラウンドオーディオと別のコンポーネント(読み上げなど)の長さを一致させることができます。

以下の例では、音響効果「屋根の雨音」を無限に繰り返すように設定しています。durationtrimToParentに設定すると、生成されるオーディオが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 日