This question already has an answer here:

I have the same problem as described here, so I tried to solve it with procedure in reply. When everything was installed I changed files according to reply and restarted computer. When computer rebooted I opened up pavucontrol and looked to input devices. I found out that mentioned fix for background noise works only for internal sound card, not for external.

Pavucontrol echo cancellation on internal sound card

Is there a possibility to enable noise/echo cancellation for external sound card - in image is listed as Audio Adapter Analog Mono?

marked as duplicate by Luis Alvarado Apr 29 '16 at 16:44

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • Does it not work if you mute the internal mic while keeping the external mic unmuted? From the docs it appears as if the echo-cancel is a kind of post-filter which will try echo cancellation on top of all the input audio streams.I haven't had much problem of noise with external mic but will have to try to see whether echo-cancel works with it well. – sumwale Aug 4 '14 at 11:08

In my case the headphone appears in the port list for "Built-in Analogue Stereo" itself and I can choose it in pavucontrol to let echo-cancel use it.

For your case I think you may need to explicitly point echo-cancel to the external source. You can specify the "source_master" argument to the module as per the documentation here.

So find out the name of the external source pactl list sources | less, then search for required external device e.g. "Audio Adapter Analog Mono" as above (there might be entries for monitor devices for that as the description will show so skip those; the real device will have "alsa_input." prefix in name). Get the name of the required external device and add to the line in /etc/pulse/default.pa:

load-module module-echo-cancel source_name=echosource aec_method=webrtc source_master=alsa_input.pci-0000_00_1b.0.analog-stereo

(change the name in source_master as found before). I couldn't find a way to change this to internal mic or back to external mic dynamically other than unloading+loading module again using pactl/pacmd.

BTW, in my case the noise cancellation takes a few seconds to take affect and first few seconds in Skype have noise which smoothens out quickly.

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