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 |
|
GUID_DSCFX_CLASS_NS |
Microsoft Windows XP 以降では、オーディオ デバイスのハードウェアアクセラレータキャプチャ効果を DirectSound アプリケーションに公開できます。 さらに、AECシステムフィルタ(Aec.sys)は、AECおよびNS効果のソフトウェアエミュレーションを提供します。
これらのトピックについては、このセクションの残りの部分で説明します。