Эффекты захвата DirectSound
DirectSound 8 добавляет некоторые новые функции для включения и контроля сторонних эффектов во время захвата звука. Эта и более поздние версии DirectSound поддерживают следующие два эффекта захвата:
Подавление акустического эха (AEC)
Подавление шума (NS)
В полнодуплексных звуковых приложениях, таких как телефонные конференц-связи, эхо потока отрисовки, который выводится через динамики, подбираются в микрофоне, который создает поток захвата. После характеристики звуковых отражений в комнате или другой физической среде полнодуплексная система использует AEC для мониторинга потока отрисовки, чтобы отменить эхо, добавляемые в поток захвата. Система может дополнительно улучшить качество потока захвата, используя NS для обнаружения всплесков шума и удаления их из потока.
Полнодуплексное приложение DirectSound может использовать интерфейсы IDirectSoundCaptureFXAec и IDirectSoundCaptureFXNoiseSuppress для управления эффектами AEC и NS. Метод IDirectSoundCaptureBuffer::GetObjectInPath извлекает указатели на объекты с этими интерфейсами. Функция DirectSoundFullDuplexCreate создает объект IDirectSoundCaptureBuffer , а параметры, которые вызывающий объект передает в эту функцию, включают массив структур DSCEFFECTDESC. Массив указывает эффекты, которые должны быть включены в буфере записи. Элемент guidDSCFXClass каждой структуры в массиве содержит GUID, указывающий эффект: AEC или NS. В следующей таблице показано имя DirectSound для каждого GUID, а также имя KS для того же значения GUID. Дополнительные сведения см. в документации по пакету SDK для DirectX 8.0.
Имя GUID DirectSound | Имя GUID KS |
---|---|
GUID_DSCFX_CLASS_AEC |
|
GUID_DSCFX_CLASS_NS |
В Microsoft Windows XP и более поздних версиях вы можете предоставлять эффекты захвата с аппаратным ускорением звукового устройства для приложений DirectSound. Кроме того, системный фильтр AEC (Aec.sys) обеспечивает программную эмуляцию эффектов AEC и NS.
Эти темы рассматриваются в оставшейся части этого раздела: