2

I'm sure this has been asked before but I can't seem to find anything about this, in theory, is it possible to write an audio driver which takes the incoming audio (from microphone), and compares it to outgoing audio (sound played through speakers/headset).

The reason I ask?

I know for a fact lots of gamers would love to be able to play sound through their speakers instead of their headsets, but when they use VoIP programs people tend to complain a lot about echoes & ambient noise.

As for a more tangible example:

User plays music through speakers, but when talking on VoIP (without any volume reduction), the driver then takes that incoming sound & "subtracts" the outgoing audio from it, which leads to the other VoIP users not being able to hear the music/themselves talking, but they will still be able to hear the user.

Note: I'm not entirely sure if this is possible even in theory due to my lack of understanding of the workings of sound (be it digital signals and actual waveforms).

Yorrick
  • 23

1 Answers1

2

Automatic acoustic echo cancellation is routinely done for cellphones and speakerphones.

It uses a least mean squares adaptive filter. (Usually, the normalized least mean squares filter is used, along with a pre-whitening filter.)

Wrapping your head around the technology is not all that easy. The best textbook I've found is Haykin's "Adaptive Filters". Widrow & Stearns "Adaptive Signal Processing" is not as clear. Both texts assume a basic understanding of digital signal processing and digital filters.

There's a Wikipedia article.