1libpipewire-module-echo-Mciasncceelll(a7n)eous InformatiloinbpMiapneuwailre-module-echo-cancel(7)
2
3
4

NAME

6       libpipewire-module-echo-cancel - Echo Cancel
7

DESCRIPTION

9       The echo-cancel module performs echo cancellation.
10
11       The module creates virtual echo-cancel-capture source and echo-cancel-
12       playback sink nodes and the associated streams.
13
14       The echo-cancel module is mostly used in video or audio conference
15       applications. When the other participants talk and the audio is going
16       out to the speakers, the signal will be picked up again by the
17       microphone and sent back to the other participants (along with your
18       talking), resulting in an echo. This is annoying because the other
19       participants will hear their own echo from you.
20
21       Conceptually the echo-canceler is composed of 4 streams:
22
23       .--------.     .---------.     .--------.     .----------.     .-------.
24       |  mic   | --> | capture | --> |        | --> |  source  | --> |  app  |
25                                      | cancel |
26       .--------.     .---------.     |        |     .----------.     .---------.
27       |  app   | --> |  sink   | --> |        | --> | playback | --> | speaker |
28
29       • A capture stream that captures audio from a microphone.
30
31       • A Sink that takes the signal containing the data that should be
32         canceled out from the capture stream. This is where the application
33         (video conference application) send the audio to and it contains the
34         signal from the other participants that are speaking and that needs
35         to be cancelled out.
36
37       • A playback stream that just passes the signal from the Sink to the
38         speaker. This is so that you can hear the other participants. It is
39         also the signal that gets picked up by the microphone and that
40         eventually needs to be removed again.
41
42       • A Source that exposes the echo-canceled data captured from the
43         capture stream. The data from the sink stream and capture stream are
44         correlated and the signal from the sink stream is removed from the
45         capture stream data. This data then goes into the application (the
46         conference application) and does not contain the echo from the other
47         participants anymore.
48

MODULE NAME

50       libpipewire-module-echo-cancel
51

MODULE OPTIONS

53       Options specific to the behavior of this module
54
55       • capture.props = {}: properties to be passed to the capture stream
56
57       • source.props = {}: properties to be passed to the source stream
58
59       • sink.props = {}: properties to be passed to the sink stream
60
61       • playback.props = {}: properties to be passed to the playback stream
62
63       • library.name = <str>: the echo cancellation library Currently
64         supported: aec/libspa-aec-webrtc. Leave unset to use the default
65         method (aec/libspa-aec-webrtc).
66
67       • aec.args = <str>: arguments to pass to the echo cancellation method
68
69       • monitor.mode: Instead of making a sink, make a stream that captures
70         from the monitor ports of the default sink.
71

GENERAL OPTIONS

73       Options with well-known behavior:
74
75audio.rate
76
77audio.channels
78
79audio.position
80
81media.class
82
83node.latency
84
85node.name
86
87node.description
88
89node.group
90
91node.link.group
92
93node.virtual
94
95node.latency
96
97remote.name
98

EXAMPLE CONFIGURATION

100        context.modules = [
101         {   name = libpipewire-module-echo-cancel
102             args = {
103                 # library.name  = aec/libspa-aec-webrtc
104                 # node.latency = 1024/48000
105                 # monitor.mode = false
106                 capture.props = {
107                    node.name = "Echo Cancellation Capture"
108                 }
109                 source.props = {
110                    node.name = "Echo Cancellation Source"
111                 }
112                 sink.props = {
113                    node.name = "Echo Cancellation Sink"
114                 }
115                 playback.props = {
116                    node.name = "Echo Cancellation Playback"
117                 }
118             }
119         }
120       ]
121
122PipeWire                             1.0.0   libpipewire-module-echo-cancel(7)
Impressum