Echo cancelation as a source/sink filter
- PipeWire version (
pipewire --version
): 0.3.76 - Distribution and distribution version (
PRETTY_NAME
from/etc/os-release
): Debian GNU/Linux trixie/sid - Desktop Environment: Phosh (Gnome)
- Kernel version (
uname -r
): 6.4-librem5
Description of Problem:
When using Pipewire on a phone it is difficult to configure echo cancellation in a way that works for all usecases. For example:
- Phone call: A daemon called Wys dynamically configures loopback devices between the modem and the default audio sources/sinks.
- SIP call: The SIP application connects directly to the default source/sink
In both of these cases, if the default sink is the echo cancellation device no input/output is heard. This seems to be because the hardware sink/source doesn't have an input/output selected (earpiece/speaker). Without the echo cancelation device in the path audio works perfectly (but with significant echo).
Testing this was conducted with https://salsa.debian.org/Mobian-team/devices/librem5-tweaks/-/blob/84b012a624712d8465a27f4ff9de85ca30a5a82e/tweaks/pipewire/pipewire.conf.d/95-librem5-pipewire.conf as the Pipewire config.
My goal here is to reproduce the two highlighted Pulseaudio config lines at https://salsa.debian.org/Mobian-team/devices/librem5-tweaks/-/blob/84b012a624712d8465a27f4ff9de85ca30a5a82e/tweaks/pulse/librem5.pa#L20-21. These provide echo cancellation as a paired filter on the source/sink, resulting in the user being able to select the physical source/sink they want to use while still receiving echo cancellation.
How Reproducible:
Happens always
Steps to reproduce:
Using the Librem5 with pulse audio configure echo cancellation using the config linked above. Notice that this creates new sources/sinks which must be manually configured or scripted to work with applications/real sources/sinks.
Actual Results:
The user must manage applications connecting to the echo cancellation devices.
Expected Results:
Echo cancellation is applied as a filter, similar to Pulseaudio's config above, resulting in transparency to the user and the ability to select real sinks/sources in user-facing menus.
Additional Info (as attachments):
I believe (and additional issues linked below would indicate) that for a normal user the current echo cancellation is too complicated. The user shouldn't have to do anything other than turn cancellation on for X sources/sinks. Selecting these manually in individual applications or using Gnome Settings/Pavucontrol is confusing to the user who "just wants the sound to come from the earpiece".
Thank you for your work on Pipewire!