Share via


XAudio2 のサンプル レート変換

XAudio2 のボイスでは、入力サンプル レートが出力ボイスの入力サンプル レートと異なる場合、自動サンプル レート変換を行うことができます。

サンプル レート変換には次のようなルールがあります。

  • ボイス入力のサンプル レートは固定されます。

    ボイスでは、作成時に指定された入力サンプル レートのみを扱うことができます。マスター ボイスおよびサブミックス ボイスについては、入力サンプル レートは IXAudio2::CreateMasteringVoice 関数および IXAudio2::CreateSubmixVoice 関数への InputSampleRate 引数で指定されます。ソース ボイスについては、ボイスの入力サンプル レートは、IXAudio2::CreateSourceVoice 関数への pSourceFormat 引数で指定されます。

  • ボイスの出力ボイスはすべて、同じ入力サンプル レートである必要があります。

    ボイスは、入力サンプル レートから任意の出力サンプル レートに変換できますが、ボイスの出力ボイスはすべて同じ入力サンプル レートである必要があります。たとえば、ボイスは、入力サンプル レートが 22 kHz である任意の数のボイスに出力できます。ただし、同じサンプル ボイスに複数の出力ボイスがあり、それぞれの入力サンプル レートが異なる場合は、オーディオ グラフが無効になります。

  • サンプル レート変換処理は、必要なときにのみ行われます。

    オーディオ データを他のサンプル レートに変換することによって、追加の処理オーバーヘッドが発生するため、できるだけ避けるようにすることをお勧めします。ボイスの入力サンプル レートが、その出力ボイスの入力サンプル レートと同じ場合は、変換が行われないため、処理時間も短縮されます。

  • 出力サンプル レートは、ボイスの有効期間内で異なる場合があります。

    ボイスの出力サンプル レートは固定されていません。出力ボイスのすべてで入力サンプル レートが同じであれば、オーディオ グラフは有効になります。ボイスが異なる入力サンプル レートの新しいボイスへの出力に変更された場合、ボイスは、新しいボイスの入力サンプル レートに変換されます。

ボイス間のサンプル レート変換を実行するために、サブミックス ボイスの追加が必要となるシナリオがいくつかあります。さまざまな入力サンプル レートを持つボイスへの出力が必要な場合、元のボイスから直接出力することができるのは、複数のボイスのうちの 1 つだけです。ボイスの出力ボイスはすべて、同じ入力サンプル レートである必要があるため、他のボイスは出力を間接的に受け取ります。元のボイスと目的の出力ボイスの間にくる正確な入力サンプル レートを持つサブミックス ボイスが必要になります。

たとえば、入力サンプル レートが 22 kHz のソース ボイスがあるとします。このソース ボイスは、入力サンプル レートが 11 kHz のサブミックス ボイスと入力サンプル レートが 44.1 kHz のマスター ボイスに出力する必要があります。2 つの出力ボイスの入力サンプル レートが異なっているため、元のボイスとその目的の出力ボイスとの間に追加のサブミックス ボイスを挿入する必要があります。ソース ボイスの忠実度を保ち、サンプル レートを高めるための不要で負荷の高い変換を避けるには、22kHz のサンプル入力レートを持つ 2 つのサブミックス ボイスをグラフに挿入します。一方のサブミックス ボイスは 11kHz でリバーブ エフェクトを持つサブミックス ボイスに出力し、他方のサブミックス ボイスは 44.1kHz でマスター ボイスに出力します。

オーディオ グラフのサンプル レート変換の例

図形 1.  すべてのボイスには、同じサンプル入力レートがあり、オーディオ グラフ内ではサンプル レート変換は実行されません。

Bb669182.Xaudio2_SRC1(ja-jp,VS.85).bmp

図形 2.  すべてのボイスには、マスター ボイス以外の同じサンプル入力レートがあり、マスター ボイスに転送されるデータ上でのみサンプル レートの変換が実行されます。

Bb669182.Xaudio2_SRC2(ja-jp,VS.85).bmp

図形 3.  ボイスには異なるサンプル入力レートがあり、サンプル レート変換を実行するための追加サブミックス ボイスが必要です。サンプル レート変換は、オーディオ グラフ内の複数の場所で実行されます。

Bb669182.Xaudio2_SRC3(ja-jp,VS.85).bmp

関連トピック