Embodiments of the present invention relate to signal processing, and more particularly, to digital signal processing to attenuate noise.
Cell phone conversations are sometimes degraded due to ambient noise. For example, ambient noise at the talker's location may affect the voice quality of the talker as perceived by the listener. It would be desirable to reduce ambient noise in such communication applications.
Generally stated, embodiments of the present invention make use of the two signals provided by the mouth and ambient microphones to process the signal from the mouth microphone so as to attenuate ambient noise. It is expected that ambient noise will be present at substantially the same power levels at the locations of the ambient and mouth microphones, but that the voice of the user will have a much higher power level at the location of the mouth microphone than for the ambient microphone. Embodiments of the present invention exploit this assumption to provide frequency domain filtering, where those frequency components identified has having mainly a voice contribution are emphasized relative to the other frequency components.
Embodiments of the present invention are not limited to cell phones, but may find applications in other systems.
Referring to
A/D modules in
The BUF modules for the discrete time series a(n) and m(n) represent buffers to store a fixed number of samples of a(n) and m(n). The fixed number of samples may be taken to be the size of the analysis window applied to these discrete time series. WINDOW modules apply an analysis window to their respective discrete time series, where the analysis window is a set of weights, where each discrete time sample in a BUF module is multiplied by one of the weights.
For example, at some particular time, the samples of m(n) stored in its BUF module may be represented by m(n), n=n0, n0+1, . . . , n0+N−1, where N is the number of samples. Denoting the set of window weights by W(i), i=0,1, . . . , . . . N−1, the output of WINDOW module is the set of N numbers:
{m(n0)W(0), m(nb+1)W(1), . . . , m(n0N−1)W(N−1)}.
The above set of numbers after analysis windowing may be referred to as a frame. Frames may be computed at the rate of one frame for each N samples of m(n), or overlapping may be used, where frames are computed at the rate of one frame for each N/r samples of m(n), where r is an integer that divides into N. The resulting sequence of frames may be represented by
FFT modules in
DET module partitions, for each frame index f, the index set {0,1, . . . , K−1} into disjoint partitions P(j; f), j=0,1, . . . , J(f)−1, where j is a partition index and J(f) denotes the number of partitions for frame index f, where
For each partition there is one index k*(j; f) ∈ P(j; f) such that
|M(k*(j; f); f)+A(k*(j;f); f)|
is a maximum over the partition P(j; f).
Embodiments may construct these partitions in various ways. For some embodiments, the partitions may be constructed as follows. For a given frame index f, all frequency bin indices k* are found for which
|M(k*−1; f)+A(k*−1; f)|≤|M(k*; f)+A(k*; f)|,
|M(k*+1; f)+A(k*+1; f)|≤|M(k*; f)+A(k*; f)|. (1)
Once the set of all such frequency bin indices is determined, each one indicating a local maximum of the function |M(k; f)+A(k; f)| in frequency bin space, the frequency bin index set is partitioned so that each partition boundary is half-way, or closest to half-way, between two adjacent such indices.
Other embodiments may construct partitions in other ways. For example, partitions may be constructed based upon local maximums of the function A(k; f). More generally, partitions may be constructed based upon local maximums of a functional of the functions A(k; f) and M(k; f). For example, in Eq. (1), the functional is the addition operator applied to the functions A(k; f) and M(k; f).
It should be noted that the statements in the previous paragraph regarding the frequency bin indices are interpreted in modulo K arithmetic. For example, k*−1 in the earlier displayed equation is to be read as (k*−1)mod(K). Similarly, the “half-way” frequency bin index between any two frequency bin indices for local maximums is interpreted with respect to modulo K arithmetic. Accordingly, the various partitions are contiguous if one imagines the frequency bin index set forming a circle, where 0 is adjacent to both 1 and K−1.
Other embodiments may choose the partitions in other ways, and may define the local maximum in different ways. For example, the relationship ≤ in Eq. (1) may be replaced with <, whereas the relationship < may be replaced with ≤.
It is convenient to denote the indices for the local maximums by k*(j; f), j=0,1, . . . , J(f)−1. That is, for j=0,1, . . . , J(f)−1, k*(j; f) ∈ P(j; f) and |M(k*; f)+A(k*; f)| is a maximum over the partition P(j; f).
GAIN module makes use of the information provided by DET module to compute gains for each partition. In some embodiments, the gain for partition P(j; f), denoted by G(j; f), is provided by a function F(R) of the ratio
For some embodiments, the function F(R) may be
where T is a threshold. For some other embodiments, the function F(R) may be
The above equations may be generalized so that the numeral 1 is replaced by some scalar, denoted as G0, where G0 is independent of j. That is, the function F(R) may be
or may be
For some embodiments, the threshold T may be on the order of 1/10 to 1/100. In some other embodiments, it may also be higher, such as for example ½ or ¼. In practice, when an embodiment is used in a cell phone, it is expected that the mouth microphone is much closer to the speaker's mouth than the ambient microphone. Consequently, when the cell phone is in use and the user is speaking into the mouth microphone, it is expected that for a frequency bin km for which there is energy contribution from the user's voice, the magnitude of M(km; f) is much larger than the magnitude of A(km; f), whereas for a frequency bin ka for which there is relatively little energy contribution from the user's voice, the magnitude of M(ka; f) is not much larger than, or perhaps comparable to, the magnitude of A(ka; f). Consequently, for cell phone applications, by setting the threshold to a relatively small number, the frequency bins containing mainly voice energy are easily distinguished from the frequency bins for which the user's voice signal has a relatively small energy content.
Multiplier 202 multiplies M(k; f) by a gain for each frame index f and each frequency bin index k. The result of this product is denoted as {tilde over (M)}(k; f) in
The gain used for multiplication may be G(j; f), where for each partition index j, each M(k; f) such that k belongs to P(j; f) is multiplied by G(j; f). However, it is expected that with this choice of gain, the resulting signal {circumflex over (m)}(t) may be of poor quality, with large amounts of so-called “musical noise”. This is expected because sonic frequency components may result in a ratio R that varies substantially from frame to frame, sometimes being above the threshold T, and at other times being below T. This results in some frequency components “popping” in and out when {circumflex over (m)}(t) is formed, resulting in “chirps” that quickly fade in and out.
This problem may be minimized in some embodiments by smoothing the computed gains G(j; f). For example, an “attack-release” smoothing method may be applied as follows. For each frame index f, and for each frequency bin index k, M(k; f) is multiplied by a smoothed gain Ĝ(k; f) to form the product {circumflex over (M)}(k; f)=M(k; f)Ĝ(k; f), where Ĝ(k; f) is given by
where G(l; f) is the gain for the partition P(l; f) to which k belongs, i.e., k ∈ P(l; f), and where βa and βr are positive numbers less than one.
The number βa is an “attack” smoothing control weight, applied when the computed gain G(j; f) increases from one frame to the next, and the number βr is a “release” control weight, applied when the gain G(j; f) decreases from one frame to the next. Typically, βa is chosen relatively small, so that the smoothed gain Ĝ(k; f) slowly increases if G(j; f) increases from one frame to the next; and βr is chosen close to one, so that the smoothed gain Ĝ(k; f) rapidly decreases if the gain G(j; f) decreases from one frame to the next. With this choice for these weights, it is expected that musical-noise components are attenuated because their corresponding gains G(j; f) do not have enough time to rise before they dip back down, whereas voice components most likely will not be seriously affected because their corresponding gains G(j; f) usually remain relatively large for many consecutive frames. For some embodiments, βa may be adjusted during an initialization period, so that when the user starts speaking into the in microphone, the beginning of the utterance is not seriously affected by the slow rise time of the smoothed gain.
Other embodiments may smooth the gains G(j; f) using other types of smoothing algorithms.
Various modifications may be made to the disclosed embodiments without departing from the scope of the invention as claimed below. For example, is to be understood that some of the modules or functional blocks described in the embodiments may be grouped together into various larger modules, or some of the modules may comprise various sub-modules. Furthermore, various modules may be realized by application specific integrated circuits, processors running software, programmable field arrays, logic with firmware, or some combination thereof.
For some embodiments, the threshold value T is constant, but for other embodiments, the threshold value T may vary. For example, the threshold value may be a function of the frame index, the frequency bin index, or both.
It is to be understood that the scope of the invention is not limited by the placement of the first and second transducers relative to a speech source. Furthermore, it is to be understood that the scope of the invention is not limited to any particular distance, orientation, or directionality characteristic (or combination thereof) of the first and second transducers, where these characteristics may be selected to help differentiate between a first signal and a second signal, such as for example to differentiate ambient noise from a desired voice signal.
Throughout the description of the embodiments, various mathematical relationships are used to describe relationships among one or more quantities. For example, a mathematical relationship may express a relationship by which a quantity is derived from one or more other quantities by way of various mathematical operations, such as addition, subtraction, multiplication, division, etc. For example, the DFT or FFT may be performed on a frame of a time sampled signal. These numerical relationships and transformations are in practice not satisfied exactly, and should therefore be interpreted as “designed for” relationships and transformations. For example, it is understood that such transformations as a DFT or FFT cannot be done with infinite precision. One of ordinary skill in the art may design various working embodiments to satisfy various mathematical relationships or numerical transformations, but these relationships or numerical transformations can only be met within the tolerances of the technology available to the practitioner.
Accordingly, in the following claims, it is to be understood that claimed mathematical relationships or transformations can in practice only be met within the tolerances or precision of the technology available to the practitioner, and that the scope of the claimed subject matter includes those embodiments that substantially satisfy the mathematical relationships or transformations so claimed.
This Application is a Continuation of U.S. patent application Ser. No. 15/233,806, filed on Aug. 10, 2016, which is a Continuation of U.S. patent application Ser. No. 11/399,062, filed Apr. 5, 2006, which applications are incorporated by reference herein in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | 15233806 | Aug 2016 | US |
Child | 16142670 | US | |
Parent | 11399062 | Apr 2006 | US |
Child | 15233806 | US |