# Patent

## Title
System and method for adaptive classification of audio sources

## Abstract

Systems and methods for adaptively classifying audio sources are provided. In exemplary embodiments, at least one acoustic signal is received. One or more acoustic features based on the at least one acoustic signal are derived. A global summary of acoustic features based, at least in part, on the derived one or more acoustic features is determined. Further, an instantaneous global classification based on a global running estimate and the global summary of acoustic features is determined. The global running estimates may be updated and an instantaneous local classification based, at least in part, on the one or more acoustic features may be derived. One or more spectral energy classifications based, at least in part, on the instantaneous local classification and the one or more acoustic features may be determined. In some embodiments, the spectral energy classification is provided to a noise suppression system.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
The present application is related to U.S. patent application Ser. No. 11/825,563 filed Jul. 6, 2007 and entitled “System and Method for Adaptive Intelligent Noise Suppression,” U.S. patent application Ser. No. 11/343,524, filed Jan. 30, 2006 and entitled “System and Method for Utilizing Inter-Microphone Level Differences for Speech Enhancement,” and U.S. patent application Ser. No. 11/699,732 filed Jan. 29, 2007 and entitled “System And Method For Utilizing Omni-Directional Microphones For Speech Enhancement,” all of which are herein incorporated by reference.
BACKGROUND OF THE INVENTION
1. Field of Invention
The present invention relates generally to audio processing and more particularly to adaptive classification of audio sources.
2. Description of Related Art
Currently, there are many methods for reducing background noise in an adverse audio environment. One such method is to use a noise suppression system that always provides an output noise that is a fixed bound lower than the input noise. Typically, the fixed noise suppression is in the range of 12-13 dB. The noise suppression is fixed to this conservative level in order to avoid producing speech distortion, which will be apparent with higher noise suppression.
In order to provide higher noise suppression, dynamic noise suppression systems based on signal-to-noise ratios (SNR) have been utilized. Unfortunately, SNR, by itself, is not a very good predictor of an amount of speech distortion because of the existence of different noise types in the audio environment and the non-statutory nature of a speech source (e.g., people). SNR is a ratio of how much louder speech is than noise. The SNR may be adversely impacted when speech energy (i.e., the signal) fluctuates over a period of time. The fluctuation of the speech energy can be caused by changes of intensity and sequences of words and pauses.
Additionally, stationary and dynamic noises may be present in the audio environment. The SNR averages all of these stationary and non-stationary noises and speech. There is no consideration as to the statistics of the noise signal; only what the overall level of noise is.
In some prior art systems, a fixed classification threshold discrimination system may be used to assist in noise suppression. However, fixed classification systems are not robust. In one example, speech and non-speech elements may be classified based on fixed averages. However, if conditions change, such as when the speaker moves the microphone away from their mouth or noise suddenly gets louder, the fixed classification system will erroneously classify the speech and non-speech elements. As a result, speech elements may be suppressed and overall performance may significantly degrade.
SUMMARY OF THE INVENTION
Systems and methods for adaptively classifying audio sources are provided. In exemplary embodiments, at least one acoustic signal is received. One or more acoustic features based on the at least one acoustic signal are derived. A global summary of acoustic features based, at least in part, on the derived one or more acoustic features, is determined. Further, an instantaneous global classification based on a global running estimate and the global summary of acoustic features is determined. The global running estimates may be updated and an instantaneous local classification based on, at least in part, the one or more acoustic features may be derived. One or more spectral energy classifications based, at least in part, on the instantaneous local classification and the one or more acoustic features may be determined. In some embodiments, the spectral energy classification is provided to a noise suppression system.
In various embodiments, a frame of the primary acoustic signal may be classified based on a global inter-microphone level difference (ILD). The global ILD may be based on a weighting of a maximum energy at each frequency and a local ILD at each frequency. A frame may be classified based on a position of the global ILD relative to a plurality of global clusters. These global clusters may comprise a global (speech) source cluster, a global background cluster, and a global distractor cluster. Similarly, local classification for each frequency of the frame may be performed using local ILDs. In various embodiments, a cluster is an average.
A spectral energy classification may be determined based on the local and frame classifications. The resulting spectral energy classification may then be forwarded to a noise suppression system for use. The spectral energy classification may be used by a noise estimate module to determine a noise estimate for each frequency band and an overall noise spectrum for the acoustic signal. An adaptive intelligent suppression generator may use the noise spectrum and a power spectrum of the primary acoustic signal to estimate speech loss distortion (SLD). The SLD estimate may be used to derive control signals which adaptively adjust an enhancement filter. The enhancement filter may be utilized to generate a plurality of gains or gain masks, which may be applied to the primary acoustic signal to generate a noise suppressed signal.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an environment in which embodiments of the present invention may be practiced.
FIG. 2 is a block diagram of an exemplary audio device implementing embodiments of the present invention.
FIG. 3 is a block diagram of an exemplary audio processing engine.
FIG. 4 is a block diagram of an exemplary adaptive classifier.
FIG. 5 is a diagram illustrating an exemplary screenshot of a cluster tracker display.
FIG. 6 is a flowchart of an exemplary method for adaptive intelligent noise suppression.
FIG. 7 is a flowchart of an exemplary method for adaptive classification of audio sources in an adaptive intelligent noise suppression embodiment.



DESCRIPTION OF EXEMPLARY EMBODIMENTS
The present invention provides exemplary systems and methods for adaptive classification of an audio source. Speech is typically louder than non-speech. Local observations (specific to one frequency) may be least reliable when speech and non-speech components of the signal are approximately equal. As a result, local observations are used when there is evidence that suggested the local observations are dominated by either speech or non-speech. This evidence may be provided by a more reliable global acoustic feature. When the global acoustic feature is speech, local acoustic features dominated by speech are more likely to be accurate. When the global acoustic feature is non-speech, the local acoustic features dominated by non-speech are more likely to be accurate.
In various embodiments, an acoustic feature may be measured independently at each frequency of at least one acoustic signal. The distribution of the acoustic feature may vary in a predictable way depending on whether the energy at that frequency is dominated by energy from a wanted (speech/signal) or unwanted (noise/distractor) source. The input energy spectrum may alternate between being dominated by higher-energy wanted energy (wanted speech) and being dominated by unwanted energy. A global energy weighted summary will likewise vary in a predictable way between two distributions and can be used to classify frames as wanted-dominated, unwanted-dominated, or indeterminate. Since the local observations of the acoustic feature are typically noisier than this global summary, the global summary may be used to determine whether the local observations are used to update the local estimates (e.g., clusters) of distributions of unwanted and wanted values. An update may be done when local and global measures agree. The spectrum may be classified based on the relation of the observations (and energy-weighted global summary) and the wanted and unwanted distributions (and global versions of the same).
Embodiments of the present invention may be practiced on any audio device that is configured to receive sound such as, but not limited to, cellular phones, phone handsets, headsets, and conferencing systems. Advantageously, exemplary embodiments are configured to provide improved noise suppression while minimizing speech degradation. While some embodiments of the present invention will be described in reference to operation on a cellular phone, the present invention may be practiced on any audio device.
Referring to FIG. 1, an environment in which embodiments of the present invention may be practiced is shown. A user acts as a speech source 102 to an audio device 104. The exemplary audio device 104 comprises two microphones: a primary microphone 106 relative to the audio source 102 and a secondary microphone 108 located a distance away from the primary microphone 106. In some embodiments, the microphones 106 and 108 comprise omni-directional microphones. In various embodiments, the audio device 104 comprises a cellular telephone or any other kind of device configured to receive acoustic signals.
While the microphones 106 and 108 receive sound (i.e., acoustic signals) from the audio source 102, the microphones 106 and 108 also pick up noise 110. Although the noise 110 is shown coming from a single location in FIG. 1, the noise 110 may comprise any sounds from one or more locations different than the audio source 102, and may include reverberations, echoes, and distractors. The noise 110 may be stationary, non-stationary, and/or a combination of both stationary and non-stationary noise.
In various embodiments of the present invention one or more acoustic factors (cues) regarding the acoustic. An acoustic feature is a feature that provides information about the likely sources of audio energy (e.g., associated with one or more acoustic signals). For example, the value of a given acoustic feature may be higher for speech than for non-speech.
For example, the acoustic feature may comprise time and/or frequency varying features. There may be any number of acoustic features determined based on one or more acoustic signals. In various embodiments, the use of multiple acoustic features may add robustness to some embodiments of the present invention.
Some embodiments of the present invention utilize level differences (e.g., energy differences) as an acoustic feature between the acoustic signals received by the two microphones 106 and 108. Because the primary microphone 106 is much closer to the speech source 102 than the secondary microphone 108, the intensity level is higher for the primary microphone 106 resulting in a larger energy level during a speech/voice segment, for example.
The level difference may then be used to discriminate speech and noise in the time-frequency domain. Further embodiments may use a combination of energy level differences and time delays to discriminate speech. Based on binaural cue decoding, speech signal extraction or speech enhancement may be performed.
Although a primary and a secondary acoustic signal is discussed in various examples, those skilled in the art will appreciate that there may be only one acoustic signal (e.g., the primary acoustic signal) or any number of acoustic signals. In one example, there is only a single acoustic signal and the acoustic feature may be a level difference associated with the single acoustic signal.
Similarly, those skilled in the art will appreciate that there may be any number of acoustic features determined based on one or more acoustic signals. In one example, one acoustic feature may comprise an inter-level difference (ILD). In another example, the acoustic feature may comprise a time difference or phase difference.
Referring now to FIG. 2, the exemplary audio device 104 is shown in more detail. In exemplary embodiments, the audio device 104 is an audio receiving device that comprises a processor 202, the primary microphone 106, the secondary microphone 108, an audio processing engine 204, and an output device 206. The audio device 104 may comprise further components necessary for audio device 104 operations. The audio processing engine 204 will be discussed in more details in connection with FIG. 3.
As previously discussed, the primary and secondary microphones 106 and 108, respectively, are spaced a distance apart in order to allow for an energy level differences between them. Upon reception by the microphones 106 and 108, the acoustic signals are converted into electric signals (i.e., a primary electric signal and a secondary electric signal). The electric signals may themselves be converted by an analog-to-digital converter (not shown) into digital signals for processing in accordance with some embodiments. In order to differentiate the acoustic signals, the acoustic signal received by the primary microphone 106 is herein referred to as the primary acoustic signal, while the acoustic signal received by the secondary microphone 108 is herein referred to as the secondary acoustic signal. It should be noted that embodiments of the present invention may be practiced utilizing only a single microphone (i.e., the primary microphone 106).
The output device 206 is any device which provides an audio output to the user. For example, the output device 206 may comprise an earpiece of a headset or handset, or a speaker on a conferencing device.
FIG. 3 is a detailed block diagram of the exemplary audio processing engine 204, according to one embodiment of the present invention. In exemplary embodiments, the audio processing engine 204 is embodied within a memory device and/or one or more integrated circuits. In operation, the acoustic signals received from the primary and secondary microphones 106 and 108 are converted to electric signals and processed through a frequency analysis module 302. In one embodiment, the frequency analysis module 302 takes the acoustic signals and mimics the frequency analysis of a cochlea (i.e., cochlear domain) simulated by a filter bank. In one example, the frequency analysis module 302 separates the acoustic signals into frequency bands. Alternatively, other filters such as short-time Fourier transform (STFT), sub-band filter banks, modulated complex lapped transforms, cochlear models, wavelets, etc., can be used for the frequency analysis and synthesis. Because most sounds (e.g., acoustic signals) are complex and comprise more than one frequency, a sub-band analysis on the acoustic signal may be performed to determine what individual frequencies are present in the acoustic signal during a frame (e.g., a predetermined period of time). According to one embodiment, the frame is 8 milliseconds long. Alternative embodiments may utilize other frame lengths.
After frequency analysis, the signals are forwarded to an energy module 304 which computes energy/power estimates during an interval of time for each frequency band (i.e., power estimates) of the acoustic signal. In embodiments utilizing two microphones, power spectrums of both the primary and secondary acoustic signals may be determined. The primary spectrum comprises the power spectrum from the primary acoustic signal (from the primary microphone 106), which contains both speech and noise. As a result, a primary spectrum (i.e., a power spectral density of the primary acoustic signal) across all frequency bands may be determined by the energy module 304. This primary spectrum may be supplied to an adaptive intelligent suppression (AIS) generator 312, an inter-microphone level difference (ILD) module 306, and an adaptive classifier 308. In exemplary embodiments, the primary acoustic signal is the signal which will be filtered in the AIS generator 312. Similarly, the energy module 304 may determine a secondary spectrum (i.e., a power spectral density of the secondary acoustic signal) across all frequency bands to be supplied to the ILD module 306 and the adaptive classifier 308. More details regarding the calculation of power estimates and power spectrums can be found in co-pending U.S. patent application Ser. No. 11/343,524 and co-pending U.S. patent application Ser. No. 11/699,732, which are incorporated by reference.
In two microphone embodiments, the power spectrums may be used by the ILD module 306 to determine a time and frequency varying ILD. Because the primary and secondary microphones 106 and 108 may be oriented in a particular way, certain level differences may occur when speech is active and other level differences may occur when noise is active. The ILD is then forwarded to the adaptive classifier 308 and the AIS generator 312. More details regarding the calculation of ILD may be can be found in co-pending U.S. patent application Ser. No. 11/343,524 and co-pending U.S. patent application Ser. No. 11/699,732.
In some embodiments, the ILD module 306 determines local ILDs. In one example, the ILD module 306 may determine a local ILD for each frequency band (i.e., power estimates) of the acoustic signal. A local ILD may be an observation of the ILD for a frequency band.
The exemplary adaptive classifier 308 is configured to differentiate noise and distractors (e.g., sources with a negative ILD) from speech in the acoustic signal(s) for each frequency band in each frame. In one example, a distractor may be generated when the secondary microphone 108 is closer to the speech source 102 than the primary microphone 106.
The adaptive classifier 308 is adaptive because features (e.g., speech, noise, and distractors) change and are dependent on acoustic conditions in the environment. For example, an ILD that indicates speech in one situation may indicate noise in another situation. Therefore, the adaptive classifier 308 adjusts classification boundaries based on the ILD and output spectral energy data based on the classification. The adaptive classifier 308 will be discussed in more details in connection with FIGS. 4 and 5 below. The results from the adaptive classifier 308 are then provided to a noise suppression system, which may comprise the noise estimate module 310, AIS generator 312, and masking module 314.
In some embodiments, the noise estimate is based on the acoustic signal from the primary microphone 106. The exemplary noise estimate module 310 is a component which can be approximated mathematically by

N(t,ω)=λ1(t,ω)E1(t,ω)+(1−λ1(t,ω))min[N(t−1,ω),E1(t,ω)]

according to one embodiment of the present invention. As shown, the noise estimate in this embodiment is based on minimum statistics of a current energy estimate of the primary acoustic signal, E1(t,ω), and a noise estimate of a previous time frame, N(t−1,ω). As a result, the noise estimation is performed efficiently and with low latency.

λ1(t,ω) in the above equation is derived from the ILD approximated by the ILD module 306, as




  
    
      λ
      I
    
    ⁡
    
      (
      
        t
        ,
        ω
      
      )
    
  
  =
  
    {
    
      
        
          
            ≈
            0
          
        
        
          if
        
        
          
            
              I
              ⁢
              
                
              
              ⁢
              L
              ⁢
              
                
              
              ⁢
              
                D
                ⁡
                
                  (
                  
                    t
                    ,
                    ω
                  
                  )
                
              
            
            <
            threshold
          
        
      
      
        
          
            ≈
            1
          
        
        
          if
        
        
          
            
              I
              ⁢
              
                
              
              ⁢
              L
              ⁢
              
                
              
              ⁢
              
                D
                ⁡
                
                  (
                  
                    t
                    ,
                    ω
                  
                  )
                
              
            
            >
            threshold
          
        
      
    
  




That is, when the ILD(t,ω) is smaller than a threshold value (e.g., threshold=0.5) less than what speech is expected to be, λ1 is small, and thus the noise estimate module 310 follows the noise closely. When ILD starts to rise (e.g., because speech is present within the large ILD region), λ1 increases. As a result, the noise estimate module 310 slows down the noise estimation process and the speech energy may not contribute significantly to the final noise estimate. Therefore, exemplary embodiments of the present invention may use a combination of minimum statistics and voice activity detection to determine the noise estimate. In various embodiments, the noise estimate module 310 uses the classified spectral energy of the noise as determined by the adaptive classifier 308. A noise spectrum (i.e., noise estimates for all frequency bands of an acoustic signal) is then forwarded to the AIS generator 312.

According to an exemplary embodiment of the present invention, the adaptive intelligent suppression (AIS) generator 312 derives time and frequency varying gains or gain masks used to suppress noise and enhance speech. In order to derive the gain masks, however, specific inputs are needed for the AIS generator 312. These inputs comprise the power spectral density of noise (i.e., noise spectrum), the power spectral density of the primary acoustic signal (i.e., primary spectrum), and the inter-microphone level difference (ILD).
Speech loss distortion (SLD) may be based on both the estimate of a speech level and the noise spectrum. The AIS generator 312 receives both the speech and noise spectrum of the primary spectrum from the energy module 304 as well as the noise spectrum from the noise estimate module 310. Based on these inputs and an optional ILD from the ILD module 306, a speech spectrum may be inferred; that is the noise estimates of the noise spectrum may be subtracted out from the power estimates of the primary spectrum. In exemplary embodiments, the noise estimate module 310 determines the noise spectrum based on the classifications of spectral energy received form the adaptive classifier 308. Subsequently, the AIS generator 312 may determine gain masks to apply to the primary acoustic signal. More details regarding the AIS generator 312 may be found in co-pending U.S. patent application Ser. No. 11/825,563 filed Jul. 6, 2007 and entitled “System and Method for Adaptive Intelligent Noise Suppression.”
The SLD is a time varying estimate. In exemplary embodiments, the system may utilize statistics from a predetermined, settable amount of time (e.g., two seconds) of the acoustic signal. If noise or speech changes over the next few seconds, the system may adjust accordingly.
In exemplary embodiments, the gain mask output from the AIS generator 312, which is time and frequency dependent, will maximize noise suppression while constraining the SLD. Accordingly, each gain mask is applied to an associated frequency band of the primary acoustic signal in a masking module 314.
Next, the masked frequency bands are converted back into time domain from the cochlea domain. The conversion may comprise taking the masked frequency bands and adding together phase shifted signals of the cochlea channels in a frequency synthesis module 316. Once conversion is completed, the synthesized acoustic signal may be output to the user.
In some embodiments, comfort noise generated by a comfort noise generator 318 may be added to the signal prior to output to the user. Comfort noise comprises a uniform, constant noise that is not usually discernable to a listener (e.g., pink noise). This comfort noise may be added to the acoustic signal to enforce a threshold of audibility and to mask low-level non-stationary output noise components. In some embodiments, the comfort noise level may be chosen to be just above a threshold of audibility and may be settable by a user. In exemplary embodiments, the AIS generator 312 may know the level of the comfort noise in order to generate gain masks that will suppress the noise to a level below the comfort noise.
It should be noted that the system architecture of the audio processing engine 204 of FIG. 3 is exemplary. Alternative embodiments may comprise more components, less components, or equivalent components and still be within the scope of embodiments of the present invention. Various modules of the audio processing engine 204 may be combined into a single module. For example, the functionalities of the frequency analysis module 302 and energy module 304 may be combined into a single module. As a further example, the functions of the ILD module 306 may be combined with the functions of the energy module 304 alone, or in combination with the frequency analysis module 302.
Referring now to FIG. 4, the exemplary adaptive classifier 308 is shown in more detail. According to exemplary embodiments, the adaptive classifier 308 differentiates (i.e., classifies) noise and distractors from speech and provides the results to the noise estimate module 310 in order to derive the noise estimate. Because the adaptive classifier 308 is a flexible classifier, the adaptive classifier 308 does not need to have a predefined fixed classification scheme. That is, the adaptive classifier 308 may track through any range. In exemplary embodiments, the adaptive classifier 308 comprises a cluster tracker 402 and a spectral energy classifier 404.
In various embodiments, speech is distinguished from noise or other unwanted sounds by extracting time and frequency varying features from the acoustic signal and comparing these features to estimates of expected values of those features for speech and noise. Runtime-varying factors (e.g., handset position, microphones not perfectly matched, noise sources not equidistant from both microphones, etc.) can significantly affect values of these features. Even with severe ILD distortion, however, certain ILD distribution patterns are applicable. For example, ILD sources close to the primary microphone 106 are usually higher than ILDs from distant sources (e.g., noise). In some examples, ILDs from a source close to the primary microphone 106 is usually clustered near a value of one when the SNR is high, and ILDs of distant sources (e.g., noise) typically cluster close to zero.
ILD distortion, in many embodiments, may be created by either fixed (e.g., from irregular or mismatched microphone response) or slowly changing (e.g., changes in handset, talker, or room geometry and position) causes. In these embodiments, the ILD distortion may be compensated for based on estimates for either build-time clarification or runtime tracking. Exemplary embodiments of the present invention provides the cluster tracker 402 to dynamically calculate these estimates at runtime providing a per-frequency dynamically changing estimate for a source (e.g., speech) and a noise (e.g., background) ILDs.
In order to track ILDs of two sound sources, a determination of how much a given ILD observation affects an ILD estimate of each source may performed by the cluster tracker 402. In exemplary embodiments, a given observation either affects the ILD estimate of at most one source (e.g., speech or noise source), or it may have no effect. This results in a “classification” that may be based on two assumptions. The first assumption is that speech may alternate between high and low levels of energy (e.g., when the user speaks and pauses between words). The second assumption is that an energy weighted average ILD (i.e., global ILD) may change significantly when energy in a spectrum alternates between speech-dominated and background-dominated over time.
Initially, a max module 406 of the cluster tracker 402 determines a maximum energy between channels at each frequency. In exemplary embodiments utilizing a primary and a secondary microphone 106 and 108, a primary and a secondary energy spectrum will be provided to the max module 406 by the energy module 304. The max module 406 determines which of the two energy spectrums has a higher energy estimate at each frequency. The higher energy estimate may be assumed to be a more accurate estimate of a total energy per frequency. As such, each frequency will have a local maximum energy estimate determined by the max module 406 resulting in a spectrum of local level maximum energy.
A spectrum of local ILDs calculated by the ILD module 306 is received by a weighting module 408 of the cluster tracker 402. The local maximum energy estimate for each frequency is applied to the local ILD for the same frequency by the weighting module 408. In exemplary embodiments, a global ILD (i.e., a global summary of an acoustic feature) may then be calculated based, at least in part, on summing the weighted local ILDs and dividing a result by a sum of the number of weights.
According to exemplary embodiments, the global ILD comprises a good indicator of a presence of a wanted signal (e.g., speech). For example, speech has a nature whereby high energy is concentrated in regions when speech is present. When speech is no longer present, then the global ILD may make a huge leap to a low value.
The global ILD may be a sum across frequencies of the product of the ILD at each frequency with the energy at that frequency, divided by the sum of the energies at all frequencies:




  
    
      ∑
      f
    
    ⁢
    
      I
      ⁢
      
        
      
      ⁢
      L
      ⁢
      
        
      
      ⁢
      
        D
        f
      
      ⁢
      
        E
        f
      
    
  
  
    
      ∑
      f
    
    ⁢
    
      E
      f
    
  




Based on the newly calculated global ILD, a frame type may be determined by a frame classifier 410. In various embodiments, the frame classifier 410 classifies a frame type (i.e., an instantaneous global classification) based on the global ILD (i.e., global summary of acoustic features) in comparison with global clusters (i.e., global running estimates). These global clusters represent an average running mean and variance for ILD observations for a source (i.e., a global source cluster), a background (i.e., a global background cluster), and a distractor (i.e., a global distractor cluster). A first pass of the frame classifier 410 may utilize initialized values for these global clusters to initial guess values or predetermined values. Subsequent values for the global clusters may be updated over time with, for example, a leaky integrator, when the global ILD is significantly above or below their mean.
The exemplary frame classifier 410 may compare the calculated global ILD to the tracked global clusters and classify the frame based on a position of the global ILD with respect to the global clusters (i.e., which global cluster is closest to the global ILD). For example, if the global ILD is closest to the global source cluster, then the associated frame is classified as a source frame by the frame classifier 410. Similarly if the global ILD is closest to the global background cluster, then the frame is classified as a background frame. If the result is ambiguous, then the frame may be classified as unknown by the frame classifier 410.
According to exemplary embodiments, the frame types may comprise source, background, and distractor. The distractor may comprise an intermittent, very low ILD observation. For example, a secondary source providing audio to the secondary microphone 108 may create a distractor. If the frame is classified as a distractor, the global average may not be updated with the current global ILD. Alternative embodiments may utilize other frame types or combinations of frame types.
The distractor classification is generally utilized to remove outlier sources that may otherwise adversely affect the global (or local) background cluster. In a spread microphone embodiment, distant sources will typically have an ILD close to zero. A negative ILD is rare, but possible, for example, when wind is blowing against the secondary microphone 108 or when the user talks into a wrong side of the audio device 104. In some embodiments, extremely low signals may not be considered outliers as that may be where noise originates. In these embodiments, the distractor classification may be disabled or not utilized.
The distractor classification may also be disabled in embodiments utilizing array processing instead of spread-mic ILDs. In array processing embodiments, background noise ILDs may be significantly higher or lower than zero. In situations where the background noise ILD is significantly lower than zero, the background ILD may be classified as a distractor. Because this may result in system degradation, the distractor classification may be disabled (e.g., fixing the distractor value to a value well outside of a range of any observation).
Using the current calculated global ILD, a global selective updater 412 may update the global average running mean and variance (i.e., global clusters) for the (speech) source, background, and distractors. According to one embodiment, if the frame is classified as a source, background, or distractor, the corresponding global cluster is considered active and is moved towards the global ILD. The source, background, or distractor global clusters that do not match the frame classification are considered inactive. Source and distractor global clusters that remain inactive for more than a predetermined period of time may move toward the background global cluster. If the background global cluster remains inactive for more than a predetermined period of time, the background global cluster may be moved towards a global average.
The global average comprises a running average of all global observations (e.g., source, background, and/or distractor). As such, the global average may be continuously updated. For example, if the ILD alternates between a low value and a high value, and low values stop occurring, the global average will start to rise. In some embodiments, the global average may be used to update the global background cluster if the background cluster has been inactive for a long period of time.
According to some embodiments, if source and background energy estimates remain sufficiently far apart (e.g., an estimated SNR remains high) and a recent range of source energy estimates remains small, the global background cluster may be frozen. That is, the global background cluster may not move.
Once the frame types are determined, the cluster tracker 402 performs frame verification using local values. In exemplary embodiments, a local selective updater 414 receives the local ILDs (e.g., for each frequency) from the ILD module 306. Similar to the global ILD, each local ILD may be classified as (speech) source, background, or distractor by comparing the each local ILD to local clusters (e.g., local source cluster, local background cluster, and local distractor cluster). Thus, a local classification may be made (i.e., an instantaneous local classification). On a first pass, the local clusters may be initialized, for example, to the corresponding global cluster values or to predetermined values.
In cases where the global and the local classifications are similar in value this may provide confirmation that the frame classification is valid. For example, a local ILD observation may be classified as source if it is significantly above a mean of the local source and background clusters. Similarly, the global ILD is significantly above the mean of the global source and background clusters. As such, the frame is verified to be a source frame for these local observations.
The local selective updater 414 may also update the local average running mean and variance (i.e., local clusters or local running estimates) for the source, background, and distractor local clusters using, for example, a leaky integrator. The process of updating the local active and inactive clusters is similar to the process of updating the global active and inactive clusters. In exemplary embodiments, if the local classification matches the (global) frame classification (e.g., both classifications are either source, background, or distractor), then the local classification is considered reliable, and the corresponding local cluster is updated.
In situations where there is not a match (e.g., when speech dominates most of the spectrum resulting in the frame classification as source but noise dominates a small part of the spectrum where the speech energy is weak), the local clusters are not updated. That is, the source, background, or distractor local clusters that do not match the frame classification are considered inactive. Source and distractor local clusters that remain inactive for more than a predetermined period of time may move toward the background local cluster. If the background local cluster remains inactive for more than a predetermined period of time, the background local cluster may be moved towards a local average. This local average comprises a running average of all local observations. As such, the local average is continuously updated.
In some embodiments, exceptional circumstances may occur that affect the cluster tracker 402. For example, a given cluster may not update for an extended period of time. This may occur if a user moves away from the handset. In this situation, the associated ILDs may drop to a very low level such that the source cluster is not updated. Conversely, if the ILD of background noise suddenly rises, the observation may be classified as source and the background cluster may not be updated. In these embodiments where source-dominated or background-dominated frames do not alternate frequently enough, an assumption may be made that the cluster tracker 402 has lost track of a true location of an un-updated cluster. As a result, an auto-centering process may be performed by the local selective updater 414, whereby inactive clusters are moved toward long-term ILD means. This process may be referred to as a cluster timeout.
However, a rare case may occur where speech is continuous enough to cause an invalid cluster timeout of the global background cluster. This may result in the background cluster rising which may cause noise leakage or speech suppression. In this situation, a background cluster freeze may be applied. In this embodiment, the local selective updater 414 may monitor statistics of the source clusters and disable the cluster timeout behavior if the source cluster remains stable and sufficiently distant from the background cluster.
In yet another exceptional circumstance, source and background clusters may migrate towards each other. For example, if a user is silent, the ILDs may not fall into either the range of the source cluster or the background cluster. To prevent convergence of the source and background clusters, a predetermined limit may be imposed to prevent the source and background cluster from coming to close to each other.
The output of the cluster tracker 402 is forwarded to the spectral energy classifier 404. In various embodiments, based on these local clusters and observations, the spectral energy classifier 404 classifies points in the energy spectrum as being speech or noise. As such, a local binary mask for each point in the energy spectrum is identified as either speech or noise. The results of the spectral energy classifier 404 (e.g., energy and amplitude spectrums) are then forwarded to the noise estimate module 310. Essentially, a current estimate of noise along with locations in the energy spectrum where the noise may be located are provided to the noise estimate module 310.
In an alternative embodiment, an example of an adaptive classifier 308 may track a minimum ILD in each frequency band using a minimum statistics estimator. The classification thresholds may be placed at a fixed distance (e.g., 3 dB) above the minimum ILD in each band. Alternatively, the thresholds may be placed a variable distance above the minimum ILD in each band, depending on the recently observed range of ILD values observed in each band. For example, if the observed range of ILDs is beyond 6 dB (decibels), a threshold may be placed such that it is midway between the minimum and maximum ILDs observed in each band over a certain specified period of time (e.g., 2 seconds).
Although the global and local ILD is discussed in FIG. 4, those skilled in the art will appreciate that any one or more acoustic features may be used within various embodiments described. For example, the global ILD and local ILD may be any global acoustic feature and any local acoustic feature. In some embodiments, the global acoustic feature may include two or more acoustic features (e.g., an ILD and time shift). In other embodiments, multiple cluster trackers 402 may utilize different acoustic features within the same system.
Further, although FIG. 4 describes frames, frames are not necessary or required. Those skilled in the art will appreciate that any samples and/or data may be used in place of frames and still be within the scope of present embodiments.
Referring now to FIG. 5, a diagram illustrating an exemplary screenshot of a cluster tracker display for an instantaneous observation is shown. The x-axis represents the ILD (e.g., low to high ILD), while the y-axis represents frequency (e.g., low to high frequency). Straight lines illustrated in the display represent global measurements, and wiggly lines are local (e.g., per frequency or tap) measurements.
A source/background discrimination line, derived based on local source and background clusters, is also provided. Any ILDs to the right of this discrimination line is considered source and any ILDs to the left of this discrimination line is considered noise (or distractor). The distractor may be located at a distance from the background and source clusters. As illustrated, the global ILD is positioned close to the global source cluster. Thus, the present observation will indicate a frame classification of (speech) source.
Referring now to FIG. 6, an exemplary flowchart 600 of an exemplary method for noise suppression utilizing an adaptive classifier 308 is shown. In step 602, audio signals are received by a primary microphone 106 and an optional secondary microphone 108. In exemplary embodiments, the acoustic signals are converted to a digital format for processing.
Frequency analysis is then performed on the acoustic signals by the frequency analysis module 302 in step 604. According to one embodiment, the frequency analysis module 302 utilizes a filter bank to determine individual frequency bands present in the acoustic signal(s).
In step 606, energy spectrums for acoustic signals received at both the primary and secondary microphones 106 and 108 are computed. In one embodiment, the energy estimate of each frequency band is determined by the energy module 304. In exemplary embodiments, the exemplary energy module 304 utilizes a present acoustic signal and a previously calculated energy estimate to determine the present energy estimate.
Once the energy estimates are calculated, inter-microphone level differences (ILDs) are computed in optional step 608. In one embodiment, the ILDs are calculated based on the energy estimates (i.e., the energy spectrum) of both the primary and secondary acoustic signals. In exemplary embodiments, the ILDs are computed by the ILD module 306.
Speech and noise components are adaptively classified in step 610. In exemplary embodiments, the adaptive classifier 308 analyzes the received energy estimates and, if available, the ILD to distinguish speech from noise in an acoustic signal. Step 610 will be discussed in more detail in connection with FIG. 7.
Subsequently, the noise spectrum is determined in step 612. According to embodiments of the present invention, the noise estimates for each frequency band is based on the acoustic signal received at the primary microphone 106. In some embodiments, the noise estimate may be based on the present energy estimate for the frequency band of the acoustic signal from the primary microphone 106 and a previously computed noise estimate. In determining the noise estimate, the noise estimation may be frozen or slowed down when the ILD increases, according to exemplary embodiments of the present invention.
In step 614, noise suppression is performed. Initially, gain masks may be calculated by the AIS generator 312. The calculated gain masks may be based on the primary power spectrum, the noise spectrum, and the ILD. According to one embodiment, a speech loss distortion (SLD) amount is estimated by first computing an internal estimate of long-term speech levels (SL), which may be based on the primary spectrum and the ILD. Once the SL estimate is determined, the SLD estimate may be calculated. Control signals may then be derived based on the SLD amount. Subsequently, a gain mask for a current frequency band may be generated based on a short-term signal and the noise estimate for the frequency band by an enhancement filter. If another frequency band of the acoustic signal requires the calculation of a gain mask, then the process is repeated until the entire frequency spectrum is accommodated.
Once the gain masks are calculated, the gain masks may be applied to the primary acoustic signal. In exemplary embodiments, the masking module 314 applies the gain masks. The masked frequency bands of the primary acoustic signal may then be converted back to the time domain. Exemplary conversion techniques apply an inverse frequency of the cochlea channel to the masked frequency bands in order to synthesize the masked frequency bands. In some embodiments, a comfort noise may be generated by the comfort noise generator 318. The comfort noise may be set at a level that is slightly above audibility. The comfort noise may then be applied to the synthesized acoustic signal.
The noise suppressed acoustic signal may then be output to the user in step 616. In some embodiments, the digital acoustic signal is converted to an analog signal for output. The output may be via a speaker, earpieces, or other similar devices, for example.
Referring now to FIG. 7, a flowchart of an exemplary method for adaptively classifying speech and noise components is provided. In exemplary embodiments, the methods of FIG. 7 are performed by an adaptive classifier 308 comprising at least a cluster tracker 402.
In step 702, a maximum energy for each frequency is determined. According to one embodiment, the max module 406 will compare an energy spectrum of a primary and second acoustic signal. A higher of the two energies at each frequency is then determined, thereby creating a maximum energy spectrum.
In some embodiments, a contribution of how much the ILD at a given part of the spectrum contributes to the global ILD is determined. In one example, the ILD observation at a given frequency is weighted by an amount of energy at that frequency. In another example, the ILD observation could be weighted based on amplitude, or given different weights depending on the ILD or the distribution of background ILDs. Those skilled in the art will appreciate that there may be many ways to determine the contribution of how much the ILD at a given part of the spectrum contributes to the global ILD.
A global ILD may then be calculated in step 704 based on the maximum energy spectrum. In exemplary embodiments, the weighting module 408 receiving local ILDs (at each frequency) from the ILD module 306 and apply the corresponding maximum energy to the local ILD at each frequency. The total is then divided by a sum of the number of weights to determine the global ILD.
Based on the global ILD, the frame is classified in step 706. According to exemplary embodiments, the frame classifier 410 will compare the global ILD against tracked global clusters. These global clusters represent the average running mean and variance for ILD observations for a speech source, background, and distractors (if enabled). According to one embodiment, the tracked global cluster that is closest to the global ILD will identify the frame. For example, if the source global cluster is closest to the global ILD, then the frame is classified as a source frame.
In step 708, the global clusters are updated. In exemplary embodiments, the global selective updater 412 updates global average running mean and variance of active. If the global cluster is active, the global cluster may be moved towards the global ILD. In some embodiments, inactive global clusters may also be updated. For example, if the background global cluster remains inactive for more than a predetermined period of time the background global cluster may be moved towards a global average.
In step 710, local classification is performed. According to exemplary embodiments, the local selective updater 414 receives the local ILDs from the ILD module 306 and compares the local ILDs to local clusters (e.g., local source, background, and distractor clusters). The local cluster closest to the local ILD identifies the local observation as being a source (e.g., speech), background, or distractor. A local observation that matches the frame classification provides verification of the frame classification.
The local clusters may be updated in step 712. Thus, the local selective updater 414 may update the local average running means and variance for the source, background, and distractor. The process of updating the local active and inactive clusters is similar to that of the global clusters.
In step 714, spectral energy is classified according to the results of the cluster tracker 402. In exemplary embodiments, the spectral energy classifier 404 classifies points in the energy spectrum as being speech, noise, and in some embodiments, distractor. The results are forwarded to the noise estimation module 310.
The above-described modules can be comprises of instructions that are stored on storage media. The instructions can be retrieved and executed by the processor 202. Some examples of instructions include software, program code, and firmware. Some examples of storage media comprise memory devices and integrated circuits. The instructions are operational when executed by the processor 202 to direct the processor 202 to operate in accordance with embodiments of the present invention. Those skilled in the art are familiar with instructions, processor(s), and storage media.
The present invention is described above with reference to exemplary embodiments. It will be apparent to those skilled in the art that various modifications may be made and other embodiments can be used without departing from the broader scope of the present invention. For example, embodiments of the present invention may be applied to any system (e.g., non speech enhancement system) as long as a noise power spectrum estimate is available. Therefore, these and other variations upon the exemplary embodiments are intended to be covered by the present invention.

## Claims

1. A method for processing acoustic signals, comprising:
receiving at least one acoustic signal;
deriving one or more acoustic features based on the at least one acoustic signal;
determining a global summary of acoustic features based, at least in part, on the derived one or more acoustic features;
determining an instantaneous global classification based on a global running estimate and the global summary of acoustic features;
updating the global running estimates;
deriving an instantaneous local classification based on at least the one or more acoustic features;
determining one or more spectral energy classifications based, at least in part, on the instantaneous local classification and the one or more acoustic features; and
providing the spectral energy classification.

2. The method of claim 1 wherein the one or more acoustic features are frequency specific.

3. The method of claim 1 wherein the one or more acoustic features comprises an inter-microphone level difference between a primary acoustic signal and a secondary acoustic signal of the at least one acoustic signal.

4. The method of claim 1 wherein the one or more acoustic features comprises a time difference within the at least one acoustic signal.

5. The method of claim 1 further comprising calculating a noise power spectrum based on the spectral energy classification.

6. The method of claim 5 further comprising generating an adaptive gain mask based on the noise power spectrum.

7. The method of claim 6 further comprising applying the adaptive gain mask to the primary acoustic signal.

8. The method of claim 1 further comprising generating and applying a comfort noise to a noise suppressed signal prior to output.

9. The method of claim 1 wherein determining the global summary of acoustic features comprises summing weighted local inter-microphone level differences.

10. The method of claim 1 wherein determining an instantaneous global classification comprises comparing the global summary of acoustic features to the global running estimates and classifying with respect to which global running estimate is closest to the global summary of acoustic features.

11. A non-transitory computer-readable storage medium having embodied thereon a program, the program providing instructions executable by a processor for processing acoustic signals, the method comprising:
receiving at least one acoustic signal;
deriving one or more acoustic features based on the at least one acoustic signal;
determining a global summary of acoustic features based, at least in part, on the derived one or more acoustic features;
determining an instantaneous global classification based on a global running estimate and the global summary of acoustic features;
updating the global running estimates;
deriving an instantaneous local classification based on at least the one or more acoustic features;
determining one or more spectral energy classifications based, at least in part, on the instantaneous local classification and the one or more acoustic features; and
providing the spectral energy classification.

12. The non-transitory computer-readable storage medium of claim 11 wherein the one or more acoustic features are frequency specific.

13. The non-transitory computer-readable storage medium of claim 11 wherein determining the global summary of acoustic features comprises summing weighted local inter-microphone level differences.

14. The non-transitory computer-readable storage medium of claim 11 wherein determining an instantaneous global classification comprises comparing the global summary of acoustic features to the global running estimates and classifying with respect to which global running estimate is closest to the global summary of acoustic features.