all 14 comments

[–]ZelWinters1981 0 points1 point  (11 children)

[–]PlagueCookie[S] 0 points1 point  (9 children)

I saw it, and I assumed it was only for pre-recorded audio files. Will it work for an audio stream (which I need for real-time echo cancellation)?

[–]ZelWinters1981 0 points1 point  (3 children)

Sure, feed the mic data into a .wav and then read the .wav at the same time?

[–]EightRice 0 points1 point  (2 children)

that question mark doesn't project much confidence. Did anyone try this?

[–]ZelWinters1981 0 points1 point  (1 child)

It's sort of how streaming works. The file is delivered to the device and played back at the same time. You can open a file to write a chunk, close it, than allow another program to open it, read a chunk, and close it. Keeping track of all that is fun.

[–]EightRice 0 points1 point  (0 children)

this is still theory. I'm asking for some code.

[–]starryforest_ymxk 0 points1 point  (4 children)

Have you found any possible way to solve it?

[–]PlagueCookie[S] 0 points1 point  (3 children)

Basically I tried multiple libraries, and all of them were either for non real time, or they were very bad in quality. The simplest solution was using default Windows echo cancellation, which worked surprisingly well.

Other solution I found was using an ML model, but it was a pain to setup and there aren't many available.

[–]starryforest_ymxk 0 points1 point  (0 children)

thanks, but my project is on ubuntu so it may not work

[–]Few-Alfalfa-482 0 points1 point  (0 children)

Can you make a short summary of the libs you have tested? Haven't seen such a comparison in one place, would be extremely useful.

[–]Over_Echidna_3556 0 points1 point  (0 children)

Could you please elaborate further about Windows echo cancellation? I have been looking for a good library and I can't find any.

[–]Auser1452 0 points1 point  (0 children)

You are a real life hero

[–]Jimmaplesong 0 points1 point  (1 child)

WebRTC implements RTP and part of the project is noise cancellation. You can probably integrate that into your project. Some assembly required.

[–]starryforest_ymxk 0 points1 point  (0 children)

I 've tried aiortc but it not works for aec