Removing Echo From WebRTC Stream

Hi, I want to remove echo and noise from a WebRTC Stream. Currently, I am using Mediasoup SFU to forward rtp. I want to send the audio stream from Mediasoup to Gstreamer and then remove out echo and noise from it and then send back to Mediasoup. However, the webrtcdsp plugin in Gstreamer uses webrtcechoprobe which seems very confusing to me because it mentions things related to playback while in my scanario, the playback part will happen on another peer’s own system.

Any guidance will be much appreciated.

Hi,

What the echo canceller algorithms do is to remove the sound that was played back from the recording, and any further echos of it. They’re designed to run in the terminal equipment (like a phone handset, or the computer doing the call).

Trying to do these kind of improvements in the middle of the communication path will be quite difficult. There are some libraries out there that do noise concealment, but I don’t know of anything amazing in the open source world.

Olivier

For noise concealment maybe try the audiornnoise element from the Rust gst-plugin-audiofx plugin.