Search code examples
audiovoipdirectsoundaec

Does DirectSound usually support echo cancellation and noise reduction?


I'm currently using the waveInOpen set of Windows API functions to record audio for a VOIP application. I'm now being asked to add echo cancellation, and possibly noise reduction, and gain control. I know nothing about DirectSound, but while searching on "echo cancellation" on Google I came across references on MSDN to DirectSound such as CaptureAcousticEchoCancellationEffect.

If I switch to DirectSound will I get some of these features "for free"? Are they only supported if the hardware supports it, and if so, how often will that hardware be present in the average consumer PC?


Solution

  • Starting with Windows Vista, Microsoft provides a separate component Voice Capture DSP:

    The voice capture DMO includes the following DSP components:

    Acoustic echo cancellation (AEC)
    Microphone array processing
    Noise suppression
    Automatic gain control
    Voice activity detection
    

    Applications can turn each component on and off individually.

    You can use it in your DSP application to leverage EAC and NS implemented in software.