Поделиться через


Эффекты захвата 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

KSNODETYPE_ACOUSTIC_ECHO_CANCEL

GUID_DSCFX_CLASS_NS

KSNODETYPE_NOISE_SUPPRESS

В Microsoft Windows XP и более поздних версиях вы можете предоставлять эффекты захвата с аппаратным ускорением звукового устройства для приложений DirectSound. Кроме того, системный фильтр AEC (Aec.sys) обеспечивает программную эмуляцию эффектов AEC и NS.

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

Предоставление Hardware-Accelerated эффектов захвата

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