This application claims priority under 35 U.S.C. §119 or 365 to Great Britain, Application No. 0703275.8, filed Feb. 20, 2007. The entire teachings of the above application are incorporated herein by reference.
The present invention relates to communication systems. More particularly the present invention relates to a method and apparatus for estimating noise levels in a communication system.
In a communication system a communication network is provided, which can link together two communication terminals so that the terminals can send information to each other in a call or other communication event. Information may include speech, text, images or video.
Modern communication systems are based on the transmission of digital signals. Analogue information such as speech captured by a microphone is input into an analogue to digital converter at the transmitter of one terminal and converted into a digital signal. The digital signal is then encoded and placed in data packets for transmission over a channel to the receiver of a destination terminal.
Background noise in the vicinity of the terminal in which the speech is input is transmitted together with the speech information in the digital signal. This results in the speech information output at the destination terminal being obscured by the noise transmitted with the signal. Also, the presence of noise in the signal interferes with the speech signal encoding, leading to audibly increased coding distortions or an increased transmission rate.
Attempts have been made to filter the signal to reduce the degree of noise input into the encoder at the transmitting terminal. In order to remove the noise from the signal input into the encoder a noise level estimation is required.
Low complexity noise level estimation used for terminals such as mobile devices typically smooth a frequency domain input signal using recursive low-pass filters or time-averaging to estimate the noise level.
An example of a low-pass filter is a 1st order auto-regressive filter as shown in Equation 1:
y[n]=αy[n−1]+(1−α)x[n] Equation (1)
Wherein y[n] is the output for filtered element n, x[n] is the input for the filtered element n and α is the smoothing coefficient, with a value between 0 and 1. Increased smoothing is obtained by increasing the smoothing coefficient α.
A further example of a low-pass filter is a fast implementation of the same auto-regressive filter, as shown in Equation (2):
y[n]=x[n]+α(y[n−1]−x[n]), Equation (2)
Low complexity noise level estimation techniques have a low memory requirement and are well suited for devices with low computational power and a limited memory space.
However, one problem with using a low-pass filter to produce a noise level estimate is that when the incoming signal consists of both background noise and speech, the increase in the signal energy caused by periods of speech leads to a bias towards higher noise value estimates.
In the prior art methods, this problem is reduced by adjusting the noise level estimation when the presence of speech is detected. In prior art methods increased smoothing during the detected period of speech activity is used to account for the increase in signal energy due to presence of speech in the signal. However, speech presence detection is not always reliable for several reasons. When the speech detector has just recently been initialized, not enough history information may be present to reliably distinguish speech from noise. Also, speech and noise levels may be confused. This occurs particularly when the first few frames of speech have a low energy and are mistaken for background noise. Speech and noise levels may also be confused when noise and/or speech levels are changing over time. When speech is falsely detected as noise, a bias towards higher noise level estimates results. On the other hand, when noise is falsely detected as speech, the noise level estimator will not efficiently use the available information, resulting in less accurate estimates.
It is therefore an aim of the present invention to overcome the problems presented by the prior art. It is a further aim of the present invention to provide a method of improving the quality of the output signal without the use of complex computational methods that have large memory requirements.
According to a first aspect of the present invention there is provided a method of estimating noise in data containing voice information and noise comprising the steps of: receiving the data as a sequence of input values; transforming the data by applying a first non linear mapping to the input values wherein the derivative function of the mapping decreases in magnitude as the input values increase in magnitude; smoothing the transformed data; and transforming the smoothed transformed data by applying a second non linear mapping that is opposite to the first non linear mapping, to determine an estimate of the noise in the inputted data.
According to a second aspect of the present invention there is provided a noise estimation device for estimating noise in data containing voice information and noise comprising: receiving means for receiving the data as a sequence of input values; first transforming means for transforming the data by applying a first non linear mapping to the input values wherein the derivative function of the mapping reduces in magnitude as the input values increase in magnitude; smoothing means for smoothing the transformed data; and second transforming means for transforming the smoothed transformed data by applying a second non linear mapping that is opposite to the first non linear mapping, to determine an estimate of the noise in the inputted data.
According to a third aspect of the present invention there is provided a noise estimation device for estimating noise in data containing voice information and noise comprising: a receiver arranged to receive the data as a sequence of input values; a first transformer arranged to transform the data by applying a first non linear mapping to the input values wherein the derivative function of the mapping reduces in magnitude as the input values increase in magnitude; a smoother arranged to smooth the transformed data; and a second transformer arranged to transform the smoothed transformed data by applying a second non linear mapping that is opposite to the first non linear mapping, to determine an estimate of the noise in the inputted data.
Embodiments of the invention provide several advantages.
One advantage of smoothing a signal that has been transformed according to the method provided by embodiments of the invention to determine noise estimates is that the reduced sensitivity to large increases in values of the input signal results in less bias in the noise level estimates when speech presence detection errors occur. This improves the accuracy of the noise level estimates and allows simple speech detection methods to be used in embodiments of the present invention.
In known noise level estimate methods, it is necessary to alter the smoothing coefficient in the filter for high energy signal levels to compensate for speech detection errors. However in embodiments of the invention the degree to which the smoothing coefficient is required to change in response to the detection of speech presence is reduced. This improves the tracking of changing noise levels and accelerates initial convergence of the noise level estimates.
Since the accuracy of the noise level estimates is improved, simple recursive filters can be used in the present invention to obtain results otherwise only achievable with more complex methods.
Since simple low-pass filters and simple speech detection methods may be used in embodiments of the present invention, less computational complexity is required.
For a better understanding of the present invention and to show how the same may be carried into effect, embodiments of the present invention will now be described with reference to the following drawings:
a) shows a graph of a signal with large sudden energy changes;
b) shows a graph of a signal with large sudden energy changes filtered with a low-pass filter;
c) shows a graph of a signal with large sudden energy changes when the values of the input signal 1(a) are inverted to reciprocal values before the signal is filtered by a low-pass filter and inverted again afterwards;
a) shows a graph of a signal with small sudden energy changes;
b) shows a graph of a signal with small sudden energy changes filtered with a low-pass filter;
c) shows a graph of a signal with small sudden energy changes when the values of the input signal 1(a) are inverted to reciprocal values before the signal is filtered by a low-pass filter and inverted again afterwards;
Reference is first made to
b) shows the energy level of the signal, when the input signal 1(a) is filtered using a low-pass filter. In a preferred embodiment of the invention, the low pass filter is a recursive filter.
As shown, when the signal is filtered by a low-pass filter the filtered signal increases to 10 dB more gradually than the input signal increases to 10 dB. As shown in
c) shows the energy level of the signal when the values of the input signal 1(a) are inverted to reciprocal values before the signal is filtered by a low-pass filter. More particularly
The graph shown in
where x(n) are input energies of the input signal as shown in
Equation (3) represents the combination of three sequential steps: (i) inversion of the input signal as shown below in Equation 4, (ii) smoothing as shown in Equation 5 and (iii) inversion of the output signal as shown in Equation 6. These three steps can be described mathematically as follows:
where v(n) is the inverted value of the input energy x(n) and where w(n) is the smoothed output of the inverted value v(n). Substitution of Equation 4 and Equation 6 in equation 5 yields Equation 3.
The inventors of the present invention have found that, for high changes in energy signals, when the filtering operation is performed on inverted energy values of the input signal, the rate at which the signal increases by 10 dB is noticeably reduced compared to the rate at which the non inverted filtered signal increases as shown in
For example, as shown in
Reference is now made to
Comparing
Conversely, comparing
Furthermore, the inventors have found that any non linear mapping that has a derivative function that reduces in magnitude as input values increase in magnitude may be used to invert or transform the signal prior to smoothing the signal.
According to embodiments of the present invention noise estimates are determined from smoothing an inverted input signal. The way in which embodiments of the invention may be implemented will now be described.
Reference will now be made to
The terminals 100 and 112 may be, for example, a personal computer, a gaming device, a personal digital assistant, a suitably enabled mobile phone, a television or other device able to connect to the network 104.
The transmitting circuitry 10 includes an analogue to digital converter 38, a noise level estimator block 34 and an encoder 14. The analogue to digital converter 38 receives an audio input from a microphone 32 and converts the signal to a digital signal. The digital signal s(n) output from the analogue to digital converter 14 consists of digital samples of speech with background noise.
The digital signal s(n) output from the analogue to digital converter is input into a speech presence detection block 22 in the noise level estimator block 34. The speech presence detection block 22 determines whether speech information is present in the input signal s(n). The speech level presence detection block 22 outputs an indication of whether speech is present to a filter block 26 provided in the noise level estimator block 34. The speech presence indication may be a binary signal (speech present or not) or a probability signal (an indication of the likelihood of that speech is present). The manner in which the speech presence detection block determines if speech is present is known in the art and will not be described further herein.
The digital signal s(n) output from the analogue to digital converter 38 is also input into a transform block 16. The transform block 16 converts the input signal s(n) to a transform domain signal. The transform may be a frequency transform implemented as a Fast Fourier Transform, a Discrete Cosine Transform, a Filterbank Transform, or any other transform such as a Karhunen Loève Transform.
The transform domain signal is input into an energy block 18 in the noise level estimator block 34. The energy block 18 converts the transform domain signal output from the transform block 16 to a positive signal. This may be achieved by, for example, computing the energy of each transform domain sample, to produce the power spectrum.
The power spectrum output from the energy block 18 is then input into a first non linear function block 24 which applies a non linear function on the power spectrum. The derivative of the non linear function applied in block 24 decreases in magnitude as the magnitude of the power spectrum increases. One example of such a non linear function is Equation 7:
f(x)=(x+b)−1 Equation (7)
wherein a bias b is added to the input power spectrum value and the resulting biased input power spectrum is transformed to its reciprocal value. Adding a bias to the power spectrum ensures that the value being transformed to its reciprocal value is always greater than zero. Ensuring that the signal is always greater than zero avoids division-by-zero in Equation 7. Adding a bias also reduces the sensitivity of the Noise Level Estimator to very small input signals.
Another example of a function that has a derivative that decreases in value with increasing input values is Equation 8:
f(x)=log (x+b) Equation (8)
wherein a bias b is added to the input power spectrum value and the resulting biased input power spectrum is transformed to its logarithmic value. Adding a bias to the power spectrum ensures that the value being transformed to its logarithmic value is always greater than zero. Ensuring that the signal is always greater than zero avoids taking the logarithm of zero in Equation 8. Adding a bias also reduces the sensitivity of the Noise Level Estimator to very small input signals.
Equation 7 and Equation 8 are examples of non linear functions that have a derivative that decreases in magnitude with increasing input magnitudes. According to embodiments of the invention the non linear function block 24 may apply any non linear function that has a derivative that decreases in magnitude with increasing input magnitudes.
In one embodiment of the invention, different bias values b in Equation 7 and Equation 8 may be applied by the non linear function block 24 to different frequency bands of the power spectrum.
The transformed power spectrum signal output from the non linear function block 24 will be referred to as the inverse power spectrum.
The inverse power spectrum is input into the filter block 26. As previously described, the filter block 26 also receives an input from the speech presence detection block 22 which indicates whether speech is present in the signal. In the filter block 26, each band of the inverse power spectrum is time filtered.
Any smoothing operation may be applied by filter block 26 which smoothes the input signal over time. In a preferred embodiment the smoothing operation may be performed by a low pass filter. In an alternative embodiment of the invention the smoothing operation may be performed by time averaging.
In an embodiment of the invention, the smoothing operation may apply time resampling, in which the sampling rate of the output of the filter block 26 differs from the sampling rate of the input of the filter block 26.
In one embodiment of the invention the filter applied in filter block 26 may be implemented by the recursive filter:
y(t, k)=αy(t−1, k)+(1−α)x(t, k) Equation 9
Where x(t, k) is the filter input at time t for frequency band k, y(t, k) is the filter output at time t for frequency band k and a is the smoothing coefficient of the filter.
The filter block 26 is controlled by the speech presence indication such that the amount of smoothing applied by the filter increases when speech is present or likely to be present. As such, the noise estimation sensitivity decreases when speech is present. In one embodiment of the invention the smoothing coefficient a is set to 0.99 when the speech presence detection block indicates that no speech is present. When the speech presence detection block indicates that there is speech present the filter block 26 increases the smoothing coefficient α to 1.
Increasing the smoothing coefficient to 1 keeps the noise level estimate constant during the indication of speech presence. As shown by Equation 10, when α is 1 Equation 9 becomes:
y(t, k)=y(t−1, k) Equation 10
The output of the filter block 26 is input into the second non linear function block 28. At the second non linear function block the filtered inverse power spectrum is mapped back in to the power spectrum domain. The second non linear function 28 is arranged to apply an opposite transformation to the transformation that the first non linear function 24 applied to the signal.
For example, if the first transformation that is applied by non linear function block 24 maps the input to its biased multiplicative inverse according to Equation 7, then the second transformation applied by non linear function 28 will map the output of the filter block to its unbiased multiplicative inverse according to Equation 11:
f(x)=x−1−b Equation (11)
where b is a bias of the same value as the one applied in the first non linear function block 24.
Similarly, if the first transformation is a biased logarithmic mapping according to Equation 8 then the second transformation is an exponential mapping followed by a negative bias, according to Equation 12:
f(x)=exp(x)−b Equation (12)
where b is a bias of the same value as the one applied in the first non linear function block 24.
Also, if the first non linear function block 24 maps the input to its arc tangent before filtering, the second non linear function block 28 will map the output of the filter block to the tangent of the output of the filter block 26.
The signal output from the second non linear function 28 is the noise level estimate signal R(t, k) at time t in transform band k.
The noise level estimate signal R(t,k) is input into a compute attenuation gains (CAG) block 40. The CAG block 40 also receives the power spectrum E(t,k) from the energy block 18. The CAG block 40 calculates noise reduction gains by comparing the energy of each frequency band of the power spectrum E(t, k) output from energy block 18 to the energy of each frequency band of the estimated noise level signal R(t, k). The gain may be computed by Equation 12:
Where G(t, k) is the attenuation gain at time t for frequency band k. Since the noise estimation signal R(t, k) and the power spectrum signal E(t, k) are always positive, the attenuation gain G(t, k) is guaranteed to be in between 0 and 1.
The attenuation gain will be close to 0 when the power spectrum signal E(t, k) frequency band energy is similar to the estimated noise level signal R(t, k) frequency band energy. Conversely the attenuation gain will be close to 1 when the power spectrum signal E(t, k) frequency band energy is much larger to the estimated noise level signal R(t, k) frequency band energy. The noise reduction gains G(t, k) computed at the CAG block 40 for each frequency band are output to the apply gains block 42.
The transform domain signal output from the transform block 16 is input to the apply gains block 42. At the apply gains block 42, the gain for each frequency band calculated by the CAG block 40 is applied to each frequency band of the transform domain signal. The gain is applied by multiplying each frequency band of the transform domain signal with the corresponding gain.
The signal is output from the apply gains block 42 to an inverse transform block 44 where it is converted back to a time-domain signal with an inverse transform. The inverse transform applied by the inverse transform block 44 is such that the sequence of transform applied by the transform block 16, the apply gains block 42 and inverse transform applied by the inverse transform block 44 essentially reproduces the signal input into the transform block 16, with a time delay and corrected for noise by the noise level estimator block 34. Examples of inverse transforms are inverse Fast Fourier Transforms, inverse Discrete Cosine Transforms, Filterbank Transforms, and transposed Karhunen Loève Transforms.
The time domain signal output from the inverse transform block is then input into the encoder 14 where it is encoded according to an encoding scheme. The encoded signal is then transmitted to the destination terminal 112 via the communication network 104.
According to the embodiment shown in
The filter block 26′ filters each frequency of the inverted power spectrum according to the presence of speech on each frequency as indicated by the speech presence detection block. Therefore if speech is detected on one frequency band of the signal and not on another, a lower smoothing coefficient may be used for the frequency band on which no speech is detected than for the frequency band on which speech is detected.
In an alternative embodiment of the invention the noise level estimation block may be provided in the receiving circuitry of the destination terminal 112.
In an alternative embodiment of the invention the invention may be implemented in signal processing systems that do not involve transmitting the data to a destination terminal via a communication network. For example transmitting circuitry described above may be used to output a signal directly to a loudspeaker as used in Public Address systems. Alternatively the output may be recorded on a digital or analogue recording medium to be played back at a later time as used in dictation machines and music recording equipment.
In embodiments of the invention the components of the noise level estimator block may be implemented as hardware in the terminal or as software running on a processor in the terminal. This is an implementation issue.
While this invention has been particularly shown and described with reference to preferred embodiments, it will be understood to those skilled in the art that various changes in form and detail may be made without departing from the scope of the invention as defined by the claims. In particular, when the non linear function block 24 is described as applying a non linear function that has a derivative that decreases in magnitude with increasing input magnitudes, it should be appreciated that this includes any non linear function that has a derivative that generally decreases in magnitude with increasing input magnitudes, that is over a sequence of input values from smallest to largest the derivative has altered from a larger value to a smaller value notwithstanding the fact that there may be some values within the sequence which do not follow that pattern.
Number | Date | Country | Kind |
---|---|---|---|
0703275.8 | Feb 2007 | GB | national |