I have a set of microphones connected to a computer using windows 10, is it possible to remove background noise from the stream of a microphone using the sample of the other microphone ?

I need to do this live (communication software, games, live streaming, etc...) not in a recording. For information, mic #2 will record a voice I need to remove from the stream of mic #1, if it helps.

Any suggestions ? thank you =)

  • You'd be better off just buying a noise-cancelling headset; calculating the phase offset to do that manually requires tolerances measured in microns, not inches.
    – Tetsujin
    Commented Mar 11, 2017 at 13:49
  • I don't get it, can't we just do a difference between the streams ? canceled = (main mic) - (noise mic) ?
    – Magix
    Commented Mar 11, 2017 at 14:18
  • 2
    Not unless you know the precise phase difference between the two sources.
    – Tetsujin
    Commented Mar 11, 2017 at 14:24
  • Can it be measured experimentally ? By playing a sound in one spot and have the software measure the phase difference ?
    – Magix
    Commented Mar 11, 2017 at 14:28
  • Rough guess technique - tape 2 omnis together with the capsules 2 - 6" apart & reverse the phase of the rear one. Speak into the near one. That's as close as you're going to get with a guesswork method.
    – Tetsujin
    Commented Mar 11, 2017 at 15:14

2 Answers 2


This is a standard application for echo cancellation techniques. YOu can make the job easier for echo cancellation by just substracting most of the fixed delay between the two microphones: that allows you to use smaller filters.

Keywords to use a search engine on would be "echo cancellation" and "LMS algorithm".

The basic situation you are stealing the algorithms from is a telephone: you speak into a telephone (which is the good signal) but there also is the signal from the remote speaker which comes out the loudspeaker and ends up in the microphone to some degree. You want to cancel that signal part in the microphone to avoid the remote speaker hearing an echo of his voice.

The difference here is that you don't have an "unadulterated" signal but just a better recording from another microphone. But this should be good enough for engaging the decorrelation algorithms used in echo cancellation, assuming that the speaker influences on the microphones are sufficiently different.

  • Any software does that with not too much configuration ? :)
    – Magix
    Commented Mar 12, 2017 at 18:37

simple - you just use a directional boom microphone and place the microphone as close as possible to your mouth so as to maximise signal to noise ratio. simple gating function will also help to minimise background leakage.

The sort of boom microphone I am referring to would be similar to that used by a pilot. Some of the more expensive headset/boom microphones will use noise cancellation built in.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.