aws / amazon-chime-sdk-js

A JavaScript client library for integrating multi-party communications powered by the Amazon Chime service.
Apache License 2.0
701 stars 473 forks source link

Support sending and receiving redundant audio data to help reduce the effects of packet loss on audio quality. #2745

Closed pracheth closed 11 months ago

pracheth commented 12 months ago

Issue #:

Description of changes:

Support sending and receiving redundant audio data to help reduce the effects of packet loss on audio quality. This will be enabled by default on chromium and webkit based browsers. Firefox unfortunately does not support this feature due to browser API limitations. README also provides instructions to disable feature if needed.

Testing:

Can these tested using a demo application? Please provide reproducible step-by-step instructions.

Yes but you will also need a network link conditioner (NLC) on macOS to trigger redundant audio as it is sent only once packet loss is detected and is above a certain threshold. You can set NLC to 30% in either direction and speak. Subjectively speaking, there should be no cut-outs in audio or robotic voice. Note that redundant audio packets are only sent for speech/music. If there is no voice activity detected, no redundant packets will be sent.

Checklist:

  1. Have you successfully run npm run build:release locally? Y

  2. Do you add, modify, or delete public API definitions? If yes, has that been reviewed and approved? Yes this has been reviewed internally. Please reach out for the API doc.

  3. Do you change the wire protocol, e.g. the request method? If yes, has that been reviewed and approved? N

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.