A COVID19 pandemia forced many people around the globe to go online with theirs jobs and learning.
As the schools, universities and workplaces are getting moved to the web, so are the conversations. No matter which communicator you are using, you want be heard clear.
After first online classes I’ve taken it turned out that none of my headsets are actually producing a good quality sound under Linux environment.
Not only my voice was noisy but also the volume varied between being really silent and loud.
The solution to that problem was to apply a noise-cancellation PulseAudio plugin based on WebRTC echo cancellation implementation.
$ tail /etc/pulse/default.pa -n 3 ## load noise cancellation module load-module module-echo-cancel source_name=noisefree_source aec_method=webrtc set-default-source noisefree_source
If you want to avoid the plugin from volume tampering, you might want to use the snippet below:
$ tail /etc/pulse/default.pa -n 3 ## load noise cancellation module load-module module-echo-cancel source_name=noisefree_source aec_method=webrtc aec_args="analog_gain_control=0 digital_gain_control=1" set-default-source noisefree_source
Enabling the plugin made a drastic difference in the voice quality, whereas CPU usage remained low.
More on the actual implementation can be found in WebRTC source code.