EC respeaker echo cancellation

From memory I think I2S has 2 channels on the Pi but in each channel there is a high/low word for left/right.
The Pi 3.5mm mono is on one so the other channel has 2 but not 4 and even though other word is not used that channel is in use.

Lols didn’t make much sense but on one Pi I2S channel you have a left and right word serialised after each other and a left/right clock to select the left/right word.
The other I2S channel the mono 3.5mm is on and not sure if that is just down mixed to a single word or connector or whatever but its in use.

So apols but no point getting my 4mic linear out as its not going to work.

If you get a usb sound card that will alaso work but think I prefer 5 wires and 2 I2s mics.
https://www.aliexpress.com/item/4000320765322.html are cheap but really adafruit should get all the credit.

1 Like

https://1drv.ms/u/s!AihVIqpb7OsKxwagrlMifnqf_fyA?e=fc6f6w

for this link you can find my test result. and what is annoying me is that the sound 'jumped ’ and the begin. I have to wait until it become normal and then talk in front of respeaker to do the test.

Wow that really weird as it works really well after the initial annoying skip!

With me it never worked that well but didn’t skip just sounded like sh**

I had to get a sound card arrangement where playback clock and capture clock where the same.

Doesn’t work on the hot new RaspiOS arm64 as they still haven’t added the kernel headers as that was what I was trying earlier.
But 32bit the adafruit solution is just a matter of 5 wires total to GPIO for both mics.
The SEL pins its GND one side & VCC the other with 2 mics and that selects the hi/lo word it transmits on.

the skip is really irregular for me, sometimes almost no skip sometimes so much. (between 5 to 20 sec)

Not even all that sure how that is working so well on yours due to clock drift.

Pulseaudio webrtc AEC is supposed to be able to cope with clock drift but when I paplay / parecord after adding it to /etc/pulse/default.pa the results are terrible.

/etc/pulse/default.pa

 ### Enable Echo/Noise-Cancellation
 load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="analog_gain_control=0\ digital_gain_control=1\ agc_start_volume=85"  source_name=echoCancel_source sink_name=echoCancel_sink

    set-default-source echoCancel_source
    set-default-sink echoCancel_sink

But as said pulseaudio never worked for me but give it a try, but 2x I2S mic or USB soundcard.

thanks for your helping anyway, I will let you know when i get somethings new :slight_smile:

The kernel freeze with those respeakers are a liability to cause some dependency problems.
I would try 2x

But the cheap aliexpress ones do actually work OK even if sensitivity isn’t brilliant its adequate.

Can you guys, post your full default.pa content? Would like to have a proper look and perhaps share some ideas.

parec when playing media at the same time and then playback after with paplay and its garbage, with all the souncards I have managed to get to work with EC.

Dunno what it is also done the tsched=0 thing to disable glitch free audio. (which is slightly humorous)

@j1nx
Did you manage to get webrtc aec to not garble audio on the pi?

Did you get Webrtc AEC to work?

Haven’t really looked at it yet.

There is always

But never got webrtc aec going on the pi

Finally the Kotion S1 usb sound card turned up from the slow boat.

Unfortunately sold a bad tip as nope mono only so so far only ‘cheap’ stereo usb mic soundcard is the edimax.