I have two ARM based boards each having a mic and a handsfree speaker attached to them and running Linux OS. I ran the following gstreamer pipelines on the boards via shell script.
Sender pipeline on BOARD 1
###########################
B=192.168.8.87
A_BAudSendPort=5000
gst-launch-1.0 alsasrc device=‘hw:0,0’ !
webrtcdsp echo-cancel=true noise-suppression=true !
webrtcechoprobe ! audioconvert !
‘audio/x-raw,channels=1,depth=16,width=16,rate=16000,encoding-name=(string)L16’ !
rtpL16pay ! udpsink host=$B port=$A_BAudSendPort sync=false
Receiver pipeline on board 1
##########################
B_AAudSendPort=5001
gst-launch-1.0 udpsrc port=$B_AAudSendPort !
“application/x-rtp,media=(string)audio,clock-rate=(int)16000, width=16, height=16,
encoding-name=(string)L16,
encoding-params=(string)1, channels=(int)1, channel-positions=(int)1,
payload=(int)96” !
rtpL16depay !
audioconvert !
webrtcdsp !
webrtcechoprobe name=webrtcechoprobe0 !
alsasink sync=false
Sender pipeline on BOARD 2
###########################
B=192.168.21.141
A_BAudSendPort=5001
gst-launch-1.0 alsasrc device=‘hw:0,0’ !
webrtcdsp echo-cancel=true noise-suppression=true !
webrtcechoprobe ! audioconvert !
‘audio/x-raw,channels=1,depth=16,width=16,rate=16000,encoding-name=(string)L16’ !
rtpL16pay ! udpsink host=$B port=$A_BAudSendPort sync=false
Receiver pipeline on board 2
##########################
B_AAudSendPort=5000
gst-launch-1.0 udpsrc port=$B_AAudSendPort !
“application/x-rtp,media=(string)audio,clock-rate=(int)16000, width=16, height=16,
encoding-name=(string)L16,
encoding-params=(string)1, channels=(int)1, channel-positions=(int)1,
payload=(int)96” !
rtpL16depay !
audioconvert !
webrtcdsp !
webrtcechoprobe name=webrtcechoprobe0 !
alsasink sync=false
Even though I used webrtcdsp plugin at both the sender pipelines I could still hear loud echo at both the ends. What am I missing in the pipelines??
Please help!