DirectSound キャプチャ効果

DirectSound 8 では、オーディオ キャプチャ中にサードパーティの効果を有効および制御するための新機能がいくつか追加されています。 このバージョン以降の DirectSound では、次の 2 つのキャプチャ効果がサポートされています。

  • 音響エコー キャンセル (AEC)

  • ノイズ抑制 (NS)

電話会議などの全二重オーディオ アプリケーションでは、スピーカーを介して出力されるレンダリング ストリームのエコーが、キャプチャ ストリームを生成するマイクで取得されます。 部屋や他の物理環境でサウンドリフレクションを特徴付けした後、全二重システムは AEC を使用してレンダリング ストリームを監視し、キャプチャ ストリームに追加したエコーを取り消します。 システムでは、NS を使用してノイズの急増を検出し、ストリームから削除することで、キャプチャ ストリームの品質をさらに向上できます。

全二重 DirectSound アプリケーションでは、 IDirectSoundCaptureFXAec インターフェイスと IDirectSoundCaptureFXNoiseSuppress インターフェイスを使用して、AEC と NS の効果を制御できます。 IDirectSoundCaptureBuffer::GetObjectInPath メソッドは、これらのインターフェイスを持つオブジェクトへのポインターを取得します。 DirectSoundFullDuplexCreate 関数は IDirectSoundCaptureBuffer オブジェクトを作成し、呼び出し元がこの関数に渡すパラメーターには DSCEFFECTDESC 構造体の配列が含まれます。 配列は、キャプチャ バッファーで有効にする効果を指定します。 配列 内の各構造体の guidDSCFXClass メンバーには、効果を指定する GUID (AEC または NS) が含まれている。 次の表に、各 GUID の DirectSound 名と、同じ GUID 値の KS 名を示します。 詳細については、DirectX 8.0 SDK のドキュメントを参照してください。

DirectSound GUID 名 KS GUID 名

GUID_DSCFX_CLASS_AEC

KSNODETYPE_ACOUSTIC_ECHO_CANCEL

GUID_DSCFX_CLASS_NS

KSNODETYPE_NOISE_SUPPRESS

Microsoft Windows XP 以降では、オーディオ デバイスのハードウェア アクセラレータキャプチャ効果を DirectSound アプリケーションに公開できます。 さらに、AEC システム フィルター (Aec.sys) は、AEC および NS 効果のソフトウェア エミュレーションを提供します。

これらのトピックについては、このセクションの残りの部分で説明します。

ハードウェア アクセラレータによるキャプチャ効果を公開

AEC システム フィルター