<html><head></head><body><div>Le samedi 16 janvier 2021 à 19:54 -0500, Nik Ivanov a écrit :</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div dir="ltr">Hi! I'm trying to use webrtcdsp echo cancellation with my Raspberry Pi based project. I'm using the Janus server for WebRTC interaction and GStreamer for AV processing. Here's my GStreamer pipeline:<div><br></div><div>gst-launch-1.0 \<br>rtpbin name=rtpbin latency=100 \<br>udpsrc port=50000 caps="application/x-rtp, media=audio, encoding-name=OPUS, clock-rate=48000" ! rtpbin.recv_rtp_sink_0 \<br>udpsrc port=50001 caps="application/x-rtcp" ! rtpbin.recv_rtcp_sink_0 \<br>rtpbin. ! rtpopusdepay ! queue ! opusdec ! audioresample ! audio/x-raw,format=S16LE,layout=interleaved,rate=16000,channels=1 ! webrtcechoprobe ! alsasink \</div></div></blockquote><div><br></div><div>Even with "delay-agnostic" mode set, the default latency for alsasink i sway too high to remove echo. I would suggest to reduce the "buffer-time", which is 200ms by default to something saner like 80ms (80000).</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div dir="ltr"><div>alsasrc device=plughw:0,0 ! audio/x-raw,format=S16LE,layout=interleaved,rate=16000,channels=1 ! volume volume=10 ! volume volume=3 ! webrtcdsp delay-agnostic=true noise-suppression-level=high ! \<br>opusenc ! rtpopuspay ! udpsink host=127.0.0.1 port=8005<br></div></div></blockquote><div><br></div><div>About delay-agnostic, you may want to retry without it, as when it works (when the alsa driver has precise enough delay report), it will start removing echo immediatly.</div><div><br></div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>I'm using rtpbin to receive audio data from remote clients which gets played back using the default alsa device. It gets forwarded over the local UDP port from Janus. I'm also recording from the default alsa device and sending it to a local UDP port to get picked up by Janus. I'm using an I2S MEMS microphone which by default has extremely low volume coming from the device but the volume boost gets me very clear audio. As you can see, the echo probe is located right before the sound gets pumped out to the alsasink. The actual DSP is applied right after the initial volume boost. I know the DSP is working because I can hear the noise cancellation doing its job. However, the echo canceller itself seems to not be working at all. I tried adjusting the playback volume with no effect. I also tried placing the DSP before the volume boost, also to no effect. Lastly, I tried enabling delay-agnostic, but that also didn't affect the result. I'm wondering if the DSP's and the echo probe's timing is not in sync, but I'm not sure how to adjust that. Any advice would be greatly appreciated!</div><div><br></div><div><br></div></div><div>_______________________________________________<br></div><div>gstreamer-devel mailing list<br></div><div><a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br></div><div><a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br></div></blockquote><div><br></div><div><span></span></div></body></html>