In my audio-only use case (an assistive listening app), a person will be speaking into a microphone and those listening through the app will be in the same room. Since the listeners will also be able to hear the house sound and see the lips of the person moving, achieving near-zero latency is critical. Ideally, total latency would be around 10ms in order to be undetectable. I'm trying to find a good way to measure this value so I can experiment with different ways of reducing it. I came across googCurrentDelayMs in chrome://webrtc-internals/ and I'm wondering what exactly this value represents.

My understanding is that audio latency is introduced at many different levels:
There may be others I'm missing. My question is, which of the above does googCurrentDelayMs take into account? What configurable settings impact this value?
This discussion in the webrtc stats spec repository is as close as it gets to documentation. It mostly confirms your understanding but the devil is in the details.
There is not much that can be done here. The only tunable bit is controlled by the echo cancellation so you might want to give
getUserMedia({audio: {echoCancellation: true}})
a try -- see here for some details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With