In this issue, the microphone at point A records audio, compresses it, and sends it to the server at point B somewhere in the cloud. The point B server then figures out what rooms the recorded data is going to, and distributes it over the devices in the rooms.The issue is that, of course, since the server is off-site, it takes X amount of time to travel from point A to C, and the sound waves travel back to point A again to be re-recorded and played back creating an echo.I've been using software acoustic echo cancellers to try and eliminate this echo, but apparently even Adaptive AECs require a knowledge of how long the delay is. My guess is that all AECs were designed to eliminate echo in situations like speaker phones where the delay is a number of milliseconds and easily known. I get the feeling when I read that a lot of echo cancellers have a finite max echo buffer.So the question is, how can I figure out the echo delay to eliminate it based on the following:The room the person is in may change since the sender device is mobile.The rooms can be across multiple sites with different connexion speeds.The delay is based on Internet speed. This means that the delay may change anywhere from 100ms to 2s based on time-of-day and other factors.
Calculating audio delay to eliminate echo in VoIP
algorithms;networking;stream processing