- Acoustic Echo
- Hybrid / Electronic Echo in PSTN phones
- Noise Suppression in WebRTC
- Echo Cancellation
- WebRTC Echo Cancellation
- Automatic Gain Control (AGC)
Echo is the sound of your own voice reverberating. If the amplitude of such a sound is high and intervals exceed 25 ms, it becomes disruptive to the conversation. Its types can be acoustic or hybrid. Echo cancellers need to eliminate the echo while still preserving call quality and not disrupting tones such as DTMF.
Usually the background or reflected noise which is an undesired voiceband energy transfers from the speaker to the microphone and into the communication network. Mostly found in a hands-free set or speakerphone. In a multiparty call scenario, it could also occur due to unmatched volume levels, challenging network conditions on one party, background noise, double talk or even proximity between user and microphone
In a public telephone system, local loop wiring is done using two-wire connections carrying bidirectional voice signals. In PBX, a two-to-four wire conversion is done using a hybrid circuit which does not perform perfect impedance matches resulting in a Hybrid echo.
An efficient echo canceller should cancel out the entire echo tail while not leading to any packet loss. It needs to be adaptive to changing IP network bandwidth and algorithm should function equally well in conference scenarios where there may be more than one echo sources. Benchmarking tools like MOS (Mean Opinion scores ) are used to gauge the results. Often voice quality enhancement technologies are also integrated into AEC modules, such as :
- automatic Gain control ( AGC) ,
- Noise Reduction
- Confort Noise Generator ( CNG)
- Non linear processor
- tone Disabler for SS& and DTMF tones
WebRTC now actively detects and removes echo especially the local system echo resonance.
Noise suppression automatically filters the audio to remove background noise.
AGC works as a circuit. When the average audio level is low , circuit raises it and if the audio level is high the circuit brings it down.
- (+) AGC frees the user from manually tuning the audio level.
- (-) During a pause too , agc tries to bring audio level to standard setting making background noises louder.
- (-) subesquent audio processing make gain control progressively worse.
Audio Compressor : Due to the drawbacks with AGC , Audio Compressers carry the operation more sophistically by looking at amplitude of the sound.
(-) not ideal for music which had varrying sound amplitude.
Audio Peak Limiter : Limiters simply keep the audio from exceeding a set maximum level.
(+) well suited for avoiding loud noise such as door slam from entering the processing pipeline.
Audio Expanders :increase the dynamic (loudness) range of audio that has been overly processed.
(+) suited for over compressed audio transmissiono such as Satellite relays
Audio Filters :attenuate audio frequencies either above or below certain points within the audio range.
AGC in webRTC
navigator.mediaDevices.getSupportedConstraints(); aspectRatio: true autoGainControl: true brightness: true channelCount: true colorTemperature: true contrast: true deviceId: true echoCancellation: true exposureCompensation: true exposureMode: true exposureTime: true facingMode: true focusDistance: true focusMode: true frameRate: true groupId: true height: true iso: true latency: true noiseSuppression: true pan: true pointsOfInterest: true resizeMode: true sampleRate: true sampleSize: true saturation: true sharpness: true tilt: true torch: true whiteBalanceMode: true width: true zoom: true
WebRTC Get User MEdia with various values of autoGainControl
- Mozilla docs https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackSettings/noiseSuppression