Dynamically increased noise suppression based on input noise characteristics
10181316 ยท 2019-01-15
Assignee
Inventors
- Matthew R. Kirsch (Amsterdam, NL)
- Guillaume Lamy (Chicago, IL, US)
- Bijal Joshi (Elk Grove Village, IL, US)
Cpc classification
G10K2210/108
PHYSICS
G10K11/178
PHYSICS
G10K2210/3051
PHYSICS
G10K2210/1081
PHYSICS
International classification
G10K11/34
PHYSICS
G10K11/178
PHYSICS
Abstract
A maximum noise suppression level (G.sub.min) is not a single constant value for an entire frequency range, but is allowed to vary across frequencies. The amount of variation is dynamically computed based on the input noise characteristics. For example, if there is excess noise in the lower frequency region, the maximum noise suppression level in that region will increase to suppress the noise in that frequency region. This feature can be enabled all the time, and will be active when the input conditions warrant extra noise suppression in a particular frequency region. Thus, the effort involved in manually tuning an audio system (e.g., hands-free telephony, voice-controlled automotive head unit, etc.) can be significantly reduced or eliminated.
Claims
1. A method comprising: smoothening an original noise image over a first frequency range to form a smoothened noise image, wherein the first frequency range includes a first plurality of frequency channels over which the original noise image is smoothened; inverting the smoothened noise image to produce an inverted smoothened noise image; normalizing the inverted smoothened noise image to produce an inverted and normalized smoothened noise image; allowing the noise to follow a noise curve of a particular type; calculating a gain-adjustment curve (G.sub.adjust curve) by subtracting the normalized inverse of the smoothened noise image from a normalized inverse of the noise curve in the dB (log) domain; to control a maximum level of noise suppression, if the G.sub.adjust curve exceeds a parameter-controlled range, limiting the G.sub.adjust curve to fit into parameter-controlled range; computing a minimum gain curve by scaling the gain-adjustment curve by a constant minimum gain value; interpolating the minimum gain curve from the first plurality of frequency channels to a first plurality of Fast Fourier Transform (FFT) bins over the first frequency range; and setting a second plurality of FFT bins for a plurality of frequency channels outside the first frequency range to the constant minimum gain value.
2. The method of claim 1, wherein smoothening the original noise image over the first frequency range comprises low-pass filtering the original noise image.
3. The method of claim 1, wherein the first frequency range is approximately 0 Hz to approximately 1000 Hz.
4. The method of claim 1, wherein the particular type of noise curve is a brown noise curve.
5. The method of claim 4, further comprising computing the brown noise curve as follows:
6. The method of claim 1, wherein calculating the gain-adjustment curve by subtracting the normalized inverse of the smoothened noise image from a normalized inverse of the noise curve in the dB (log) domain further comprises computing:
7. The method of claim 1, wherein the minimum gain curve is computed as follows:
G.sub.mincurve[i]=G.sub.min*G.sub.adjust[i], i=0,1, . . . , N1
8. A method comprising: smoothening an original noise image over a first frequency range to form a smoothened noise image, wherein the first frequency range includes a first plurality of frequency channels over which the original noise image is smoothened; inverting the smoothened noise image to produce an inverted smoothened noise image; normalizing the inverted smoothened noise image to produce an inverted and normalized smoothened noise image; inverting the original noise image to produce an inverted original noise image; normalizing the inverted noise image to produce an inverted and normalized original noise image; calculating a gain-adjustment curve (G.sub.adjust curve) as a difference between the normalized inverse of the original noise image and the normalized inverse of the smoothened noise image in the dB (log) domain computing a minimum gain curve by scaling the gain-adjustment curve by a constant minimum gain value; interpolating the minimum gain curve from the first plurality of frequency channels to a first plurality of Fast Fourier Transform (FFT) bins over the first frequency range; and setting a second plurality of FFT bins for a plurality of frequency channels outside the first frequency range to the constant minimum gain value.
9. The method of claim 8, wherein smoothening the original noise image over the first frequency range comprises low-pass filtering the original noise image.
10. The method of claim 8, wherein the first frequency range is approximately 0 Hz to approximately 1000 Hz.
11. The method of claim 8, wherein calculating the gain-adjustment curve further comprises computing:
12. The method of claim 8, wherein the minimum gain curve is computed as follows:
G.sub.mincurve[i]=G.sub.min*G.sub.adjust[i], i=0,1, . . . , N1
13. A method comprising: smoothening an original noise image over a first frequency range to form a smoothened noise image, wherein the first frequency range includes a first plurality of frequency channels over which the original noise image is smoothened; inverting the smoothened noise image to produce an inverted smoothened noise image; normalizing the inverted smoothened noise image to produce an inverted and normalized smoothened noise image; allowing the noise to follow a noise curve of a particular type; calculating a first gain-adjustment curve (G.sub.adjust,1 curve) by subtracting the normalized inverse of the smoothened noise image from a normalized inverse of the noise curve in the dB (log) domain; to control a maximum level of noise suppression, if the G.sub.adjust curve exceeds a parameter-controlled range, limiting the G.sub.adjust curve to fit into parameter-controlled range; inverting the original noise image to produce an inverted original noise image; normalizing the inverted noise image to produce an inverted and normalized original noise image; calculating a second gain-adjustment curve (G.sub.adjust,2 curve) as a difference between the normalized inverse of the original noise image and the normalized inverse of the smoothened noise image in the dB (log) domain; adding the first gain-adjustment curve and the second gain-adjustment curve in the dB (log) domain to produce a combined gain-adjustment curve; computing a minimum gain curve by scaling the combined gain-adjustment curve by a constant minimum gain value; interpolating the minimum gain curve from the first plurality of frequency channels to a first plurality of Fast Fourier Transform (FFT) bins over the first frequency range; and setting a second plurality of FFT bins for a plurality of frequency channels outside the first frequency range to the constant minimum gain value.
14. The method of claim 13, wherein smoothening the original noise image over the first frequency range comprises low-pass filtering the original noise image.
15. The method of claim 13, wherein the particular type of noise curve is a brown noise curve.
16. The method of claim 15, further comprising computing the brown noise curve as follows:
17. The method of claim 13, wherein calculating the first gain-adjustment curve by subtracting the normalized inverse of the smoothened noise image from a normalized inverse of the noise curve in the dB (log) domain further comprises computing:
18. The method of claim 13, wherein calculating the second gain-adjustment curve further comprises computing:
19. The method of claim 13, wherein adding the first gain-adjustment curve and the second gain-adjustment curve in the dB (log) domain comprises calculating:
G.sub.adjust,combo[i]=G.sub.adjust,1[i]*G.sub.adjust,2[i], i=0,1, . . . , N1
20. The method of claim 13, wherein the minimum gain curve is computed as follows:
G.sub.mincurve[i]=G.sub.min*G.sub.adjust,combo[i], i=0,1, . . . , N1.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) Some vehicles have noise that has very high low-frequency content (e.g., when equipped with a diesel engine). One way to cope with such elevated low frequency noise is the use of high-pass filters. However, high-pass filters indistinctly remove both speech and noise, which results in a degradation of the speech quality (speech sounds less full and less natural). Alternatively, the maximum noise suppression level could be increased, but this will affect the entire frequency spectrum and may lead to an overall degradation in speech quality due to higher than necessary noise suppression in the middle and higher frequency regions.
(14) In accordance with embodiments of the invention, the maximum noise suppression level (G.sub.min) is no longer one constant value for the entire frequency range, but is allowed to vary across frequencies. The amount of variation is dynamically computed based on the input noise characteristics. For example, if there is excess noise in the lower frequency region, the maximum noise suppression level in that region will increase to suppress the noise in that frequency region. This feature can be enabled all the time, and will be active when the input conditions warrant extra noise suppression in a particular frequency region. Thus, the effort involved in manually tuning an audio system (e.g., hands-free telephony, voice-controlled automotive head unit, etc.) can be significantly reduced or eliminated.
(15)
(16) In the vehicle 104, the hands-free audio system 105 comprises a microphone 112 or multiple microphones (only one shown) and a loudspeaker 114 or multiple loudspeakers (one shown). The microphone 112 transduces or picks up audio-frequency signals from within the passenger compartment or interior 103 of the vehicle 104 and provides electrical signals representing those audio signals to the wireless communications device 102 via a controller 130 for the hands-free audio system 105. The microphone 112 thus picks up road noise, wind noise, and engine noise caused by the vehicle being driven about as well as audio signals output from loudspeakers 114 in the cabin 103, including audio signals that are returned from the far end of a telecommunications path, referred to as echo.
(17) The loudspeaker 114 portion of the hands-free system 105 receives electrical signals in the audio-frequency range from the wireless communications device 102 via the controller 130 for the hands-free audio system 105. The loudspeaker 114 transduces those electrical signals into sound waves or audio signals 113 that can be heard throughout the passenger compartment 103 of the vehicle 104.
(18) Audio signals 113 picked up by the microphone 112 are converted to electrical signals representing the audio signals. The electrical signals are provided to the wireless communications device 102. The wireless communications device 102 transmits radio frequency signals containing the electrical signals obtained from the microphone to the wireless communications network 108 where they are routed from the network 108 to a conventional telephone switching system 120.
(19) The telephone switching system or network 120 switches or routes the audio signals 113 obtained from the vehicle 104 to a communications device, such as a mobile phone or a conventional telephone handset 122, which is located at a distant location 124, i.e. a location remotely located away from the vehicle 104 at a distance, D. The voice-frequency communications 113 that take place between a person in the vehicle 104 and a person at the distant/remote location 124 thus takes place via a communications link or channel identified in
(20) The hands-free audio system 105 may also be embodied as a voice-controlled audio system, such as, an automotive head unit or an automotive telematics unit, as a couple of examples.
(21) In a first embodiment, an original noise image noise_orig is smoothened out (low-pass filtered) over frequency to form noise_smooth:
noise_smooth[0]=noise_orig[0]
noise_smooth[i]=*noise_orig[i]+(1)*noise_smooth[i1], i=1,2, . . . , N1
where =0.25, i is the frequency channel index, and N is the number of frequency channels that will be considered (this is parameter-controllable; preferred value corresponds to 1000 Hz).
(22) The smoothened noise image 204 is then inverted and normalized:
(23)
(24)
(25) If this smoothened normalized inverse of the noise image was used as the G.sub.min curve for an input signal of pure noise, the output would closely resemble white noise. In automotive environments, however, we expect some amount of higher noise in the low frequencies, with this amount rolling off to a lower value in the higher frequencies. Therefore, in order to maintain this natural roll off, but remove excessive noise in the low frequency region, we allow the noise to follow a noise curve of a particular type. This could be, for example, pink noise, brown noise, or any other arbitrary noise type. The preferred noise type depends on the specific application, but the current embodiment uses a brown noise curve (power spectrum is proportional to 1/f.sup.2).
(26) Any additional noise will be suppressed by allowing G.sub.min to go lower. To achieve this, we subtract our normalized inverse of the noise image from the normalized inverse of (brown) noise spectrum in the dB (log) domain, which is equivalent to division in the linear domain. First, the brown noise frequency spectrum is computed as follows:
(27)
where f(i) is the frequency (in Hz) that corresponds to the starting point of the frequency channel i. The inverse is then computed and the result is normalized:
(28)
(29)
(30) The G.sub.adjust curve is then computed:
(31)
(32) Note that G.sub.adjust is limited to a maximum value of 1.0 in the linear domain (0 dB) to maintain the parameter-controlled G.sub.min as the maximum value in the G.sub.min curve.
(33)
(34) In order to control the maximum level of noise suppression, if this G.sub.adjust curve exceeds a parameter-controlled range, it is limited to fit into that range:
(35)
and maxRange is the parameter-controlled maximum range, specified in dB. An example value for the range is 10 dB. Other suitable values could also be used.
(36) A G.sub.min curve is then computed by scaling the G.sub.adjust curve by the constant G.sub.min value.
G.sub.mincurve[i]=G.sub.min*G.sub.adjust[i], i=0,1, . . . , N1
(37) The curve is then interpolated from frequency channels to FFT bins. The remaining frequency channels (N and above) are set to the constant G.sub.min value.
(38) In this way, increased noise suppression occurs as is appropriate based on input noise characteristics. Since the noise suppression is based on the input noise characteristics, significantly less manual tuning of a hands-free audio system is required. As such, a consistent user experience of the audio system can be maintained for a similar vehicle cabin, even if various models of the vehicle are equipped with different engine types (e.g., gasoline vs. diesel engine).
(39) In a second embodiment, the same framework described in the first embodiment may be extended to smoothen out the background noise that is output from the noise suppression.
(40) In this embodiment, the adjustment curve is computed as the difference between the normalized inverse of the original noise image and the normalized inverse of smoothened noise image in the dB (log) domain, which is equivalent to division in the linear domain:
(41)
(42) Note that, in this case, G.sub.adjust is not limited, so the value can be greater than 1.0.
(43)
(44) The remaining computations described above in connection with the first embodiment for limiting the range and computing the G.sub.min curve may also be performed in the second embodiment.
(45) In a third embodiment, the two different G.sub.adjust curves described in the first embodiment and the second embodiment may be combined to achieve both goals in the output signal, namely, less low frequency noise and smoothened background noise.
(46) Specifically, the G.sub.adjust curves can be added in the dB (log) domain, which is equivalent to multiplication in the linear domain:
G.sub.adjust,combo[i]=G.sub.adjust,1[i]*G.sub.adjust,2[i], i=0,1, . . . , N1
(47) where G.sub.adjust,1 is the G.sub.adjust computed in accordance with the first embodiment and G.sub.adjust,2 is the G.sub.adjust computed in accordance with the second embodiment.
(48) The remaining computations described above in connection with the first embodiment for limiting the range and computing the G.sub.min curve may also be performed in the third embodiment.
(49) In accordance with embodiments of the invention excess low-frequency noise may be removed while maintaining speech quality and/or smoothening out background noise.