DirectSound 8 新增了一些新功能,用於在音訊擷取期間啟用和控制第三方效果。 此版本和更新版本的 DirectSound 支援下列兩種擷取效果:
聲學迴聲消除(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 |
|
GUID_DSCFX_CLASS_NS |
在 Microsoft Windows XP 和更新版本中,您可以將音訊裝置的硬體加速擷取效果公開給 DirectSound 應用程式。 此外,AEC 系統濾波器 (Aec.sys) 提供 AEC 和 NS 效果的軟體模擬。
本節的其餘部分將討論這些主題: