dwww Home | Manual pages | Find package

libpipew...o-cancel(7)  Miscellaneous Information Manual libpipew...o-cancel(7)

NAME
       libpipewire-module-echo-cancel - Echo Cancel

DESCRIPTION
       The echo-cancel module performs echo cancellation.

       The module creates virtual echo-cancel-capture source and echo-cancel-
       playback sink nodes and the associated streams.

       The echo-cancel module is mostly used in video or audio conference
       applications. When the other participants talk and the audio is going
       out to the speakers, the signal will be picked up again by the
       microphone and sent back to the other participants (along with your
       talking), resulting in an echo. This is annoying because the other
       participants will hear their own echo from you.

       Conceptually the echo-canceler is composed of 4 streams:

       .--------.     .---------.     .--------.     .----------.     .-------.
       |  mic   | --> | capture | --> |        | --> |  source  | --> |  app  |
                                      | cancel |
       .--------.     .---------.     |        |     .----------.     .---------.
       |  app   | --> |  sink   | --> |        | --> | playback | --> | speaker |

       • A capture stream that captures audio from a microphone.

       • A  Sink  that  takes  the  signal  containing  the data that should be
         canceled out from the capture stream. This is  where  the  application
         (video  conference  application) send the audio to and it contains the
         signal from the other participants that are speaking and that needs to
         be cancelled out.

       • A playback stream that just passes the signal from  the  Sink  to  the
         speaker.  This  is  so that you can hear the other participants. It is
         also the signal that  gets  picked  up  by  the  microphone  and  that
         eventually needs to be removed again.

       • A Source that exposes the echo-canceled data captured from the capture
         stream.  The  data  from  the  sink  stream  and  capture  stream  are
         correlated and the signal from the sink stream  is  removed  from  the
         capture  stream  data.  This  data then goes into the application (the
         conference application) and does not contain the echo from  the  other
         participants anymore.

MODULE NAME
       libpipewire-module-echo-cancel

MODULE OPTIONS
       Options specific to the behavior of this module

       • capture.props = {}: properties to be passed to the capture stream

       • source.props = {}: properties to be passed to the source stream

       • sink.props = {}: properties to be passed to the sink stream

       • playback.props = {}: properties to be passed to the playback stream

       • library.name   =   <str>:  the  echo  cancellation  library  Currently
         supported: aec/libspa-aec-webrtc.  Leave  unset  to  use  the  default
         method (aec/libspa-aec-webrtc).

       • aec.args = <str>: arguments to pass to the echo cancellation method

       • monitor.mode:  Instead  of  making a sink, make a stream that captures
         from the monitor ports of the default sink.

GENERAL OPTIONS
       Options with well-known behavior:

       • audio.rate

       • audio.channels

       • audio.position

       • media.class

       • node.latency

       • node.name

       • node.description

       • node.group

       • node.link.group

       • node.virtual

       • node.latency

       • remote.name

EXAMPLE CONFIGURATION
        # ~/.config/pipewire/pipewire.conf.d/my-echo-cancel.conf

        context.modules = [
         {   name = libpipewire-module-echo-cancel
             args = {
                 # library.name  = aec/libspa-aec-webrtc
                 # node.latency = 1024/48000
                 # monitor.mode = false
                 capture.props = {
                    node.name = "Echo Cancellation Capture"
                 }
                 source.props = {
                    node.name = "Echo Cancellation Source"
                 }
                 sink.props = {
                    node.name = "Echo Cancellation Sink"
                 }
                 playback.props = {
                    node.name = "Echo Cancellation Playback"
                 }
             }
         }
       ]

PipeWire                             1.4.2               libpipew...o-cancel(7)

Generated by dwww version 1.16 on Sat Oct 3 11:22:25 CEST 2026.