Hi, I'm using Jami with speakers and webcam microphone. When I use pipewire-pulse instead of pulseaudio, there is no echo cancellation applied in Jami (People I call tell me they hear an echo of themselves). When I use Jami on pulseaudio, /usr/lib/pulse-15.0+dfsg1/modules/module-echo- cancel.so is used to cancel the echo. Instead, on pipewire-pulse /usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-echo-cancel.so seems to be available, but is not used to cancel the echo. I would expect echo cancellation to work on both audio daemons. I report the bug against jami because I observe and reproduce it with this package. If it is an issue in one of the pipewire packages, please forward accordingly. Cheers, Bruno
I found a workaround:
1. Copy /usr/share/pipewire/pipewire-pulse.conf to
~/.config/pipewire/
2. Edit and add { name = libpipewire-module-echo-cancel } into
section context.modules = [ … ]
3. systemctl --user restart pipewire-pulse.service
4. Check with pavucontrol if the virtual device 'Echo Cancel
Capture' records from the desired physical device
5. In Jami's media settings, select 'Echo Cancel sink' and 'Echo
Cancel source' as recording and output devices
In jami-daemon src/media/audio/pulseaudio/pulselayer.cpp I found some
"magic" related to PulseAudio's echo-cancel module, but I don't
understand how that does the trick for PulseAudio and if that is
supposed to also work with PipeWire.