DirectSound キャプチャ効果

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

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

  • ノイズ抑制 (NS)

電話会議などの全二重オーディオ アプリケーションでは、スピーカーを介して出力されるレンダー ストリームのエコーが、キャプチャ ストリームを生成するマイクで取得されます。 全二重システムは、室内やその他の物理的な環境における音の反射を特性化した後、AEC を使用してレンダー ストリームを監視し、キャプチャ ストリームに追加されるエコーを打ち消します。 このシステムでは、NS を使用してノイズ スパイクを検出し、ストリームから削除することで、キャプチャ ストリームの品質をさらに向上させることができます。

全二重 DirectSound アプリケーションでは、IDirectSoundCaptureFXAec インターフェイスと IDirectSoundCaptureFXNoiseSuppress インターフェイスを使用して、AEC および NS 効果を制御できます。 IDirectSoundCaptureBuffer::GetObjectInPath メソッドは、これらのインターフェイスを持つオブジェクトへのポインターを取得します。 DirectSoundFullDuplexCreate 関数は IDirectSoundCaptureBuffer オブジェクトを作成し、呼び出し元がこの関数に渡すパラメーターには DSCEFFECTDESC 構造体の配列が含まれます。 配列は、キャプチャ バッファーで有効にする効果を指定します。 配列内の各構造体の guidDSCFXClass メンバーには、AEC または NS の効果を指定する GUID が含まれています。 各 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 システム フィルター