Comfort noise generation (CNG) is an essential part of a highly performing Line/Network Echo Canceller as well as an Acoustic Echo Canceller.
The initial motivation for introducing CNG functionality in echo cancellation was to address a concern related to “dead connection” appearance. Far-end subscriber experience caused by an active non-linear processor removing traces of residual echo and attenuating the Sout signal so much that the actual level is subjectively sensed as unnatural silence is definitely detrimental to overall voice quality. In order to alleviate this concern and provide an audible and naturally sounding indication to the far-end subscriber that the connection is still up, the CNG was introduced as a feature within the echo canceller. The comfort noise itself is typically a synthetically generated noise signal injected to Sout that sounds as an acceptable substitute for natural background noise.
The ITU-T G.168 standard document “Digital network echo cancellers” outlines minimum requirements for CNG (Test No.9 – Comfort noise test) which include signal threshold levels indicating under what conditions CNG is to inject comfort noise signal and what the level should be. Also, it provides detailed requirements regarding transitions from CNG ON (i.e. when signal Sout is comfort noise signal) to CNG OFF (i.e, when Sout the “error’ signal, after passing through the non-linear processor, and when the CNG is temporarily disabled) and vice versa. These specific requirements are important from the far-end user/subscriber’s viewpoint as they minimize effects of non-transparent comfort noise injections.
Typically, there are three key control/information lines to the CNG block: they are:
- CTRL_1: control/feedback between NLP and CNG;
- CTRL_2: control line from DTD to CNG; if DTD detects the double-talk detection status, CNG is temporarily disabled;
- CTRL_3: control/information line from the adaptive filter (AF) block to CNG block; this connection is particularly essential when the adaptive filter algorithm is implemented in frequency domain while the CNG is designed to match the near-end noise spectrum;
- There is also shown CTRL_4, which controls the adaptive filter block – typically there is no direct link from DTD to CNG.
General requirements for CNG (without fine technical details) are as follows:
- CNG has to produce a ‘subjectively transparent” signal (Sout) at the subjective low level and with the non-outstanding characteristic spectrum;
- CNG has to match (within a predefined tolerance) the natural noise observed at the near-end (this general requirement relates both to the level and spectrum of the comfort noise signal) ; note that standard documents, such as ITU-T G.168, outline requirements for signal levels only;
- CNG is supposed to produce stationary or stationary-like noise signal; generally speaking, non-stationary CNG signals are not used in echo cancellation products;
- Transitions between CNG ON/OFF/ON should be as transparent as it is practically implementable
- Consequently, a typical end user/subscriber is not supposed to audibly notice CNG ON/OFF/ON transitions.
Figure 2 presents a graphical example of transitions CNG OFF/CNG ON/CNG OFF. The actual implementation of these transitions along with level/spectrum control is critical for adequate performance of the echo canceller as a voice enhancement device.
VOCAL’s implementation of echo cancellation design incorporates high-quality CNG blocks. These proven designs have successfully passed field trials and product deployments through millions of voice channels equipped with echo cancellation DSP components.