Эффекты захвата DirectSound

DirectSound 8 добавляет некоторые новые функции для включения и управления сторонними эффектами во время записи звука. Эти и более поздние версии DirectSound поддерживают следующие два эффекта захвата:

  • Акустическое подавление эха

  • Подавление шума (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 Имя 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.

Эти темы рассматриваются в оставшейся части этого раздела:

Раскрытие эффектов захвата Hardware-Accelerated

Системный фильтр AEC