# Patent

## Title
Efficient audio signal processing in the sub-band regime

## Abstract

A signal processing system enhances an audio signal. The audio signal is divided into audio sub-band signals. Some audio sub-band signals are excised. Other audio sub-band signals are processed to obtain enhanced audio sub-band signals. At least a portion of the excised audio sub-band signals are reconstructed. The reconstructed audio sub-band signals are synthesized with the enhanced audio sub-band signals to form an enhanced audio signal.

## Background
BACKGROUND OF THE INVENTION
1. Priority Claim
This application claims the benefit of priority from European Patent Application No. 07019281.0, filed Oct. 1, 2007, which is incorporated by reference.
2. Technical Field
This application relates to signal processing and, more particularly, to processing audio signals in a sub-band regime.
3. Related Art
Audio communication systems may operate in noisy environments. Noise may interfere with some communication systems, such as voice recognition systems and hands-free voice communication systems. When a voice recognition system operates in a noisy environment, the noise may interfere with the ability of the voice recognition computer to recognize a user's voice commands. Hands-free voice communication systems may also be susceptible to background noise and echo. Echo may occur when a system microphone picks up an audio signal played from a system loudspeaker.
To increase the quality of these communications, audio communication systems may process the audio signals to remove noise and/or echo components. This type of processing may be computationally complex. For example, memory demand and computation time may be relatively high for these processes. Therefore, a need exists for a more efficient way to process audio signals.
SUMMARY
A signal processing system enhances an audio signal. The audio signal is divided into audio sub-band signals. Some audio sub-band signals are excised. Other audio sub-band signals are processed to obtain enhanced audio sub-band signals. At least a portion of the excised audio sub-band signals are reconstructed. The reconstructed audio sub-band signals are synthesized with the enhanced audio sub-band signals to form an enhanced audio signal.
Other systems, methods, features, and advantages will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims.



BRIEF DESCRIPTION OF THE DRAWINGS
The system may be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
FIG. 1 shows a signal processing system.
FIG. 2 is one implementation of the signal processing system of FIG. 1.
FIG. 3 is a process that enhances an audio signal.
FIG. 4 is a process that uses a reference signal to enhance an audio signal.
FIG. 5 is a process that reconstructs excised sub-band signals.
FIG. 6 is a process that compensates for echo in a microphone signal.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
A signal processing system may enhance an audio signal. The system may process the audio signal in a sub-band regime by dividing the audio signal into multiple sub-band signals. A portion of the sub-band signals may be excised to increase signal processing efficiency, and a remaining portion of the sub-band signals may be processed to obtain an enhanced audio signal.
FIG. 1 shows a signal processing system 102 in communication with an audio communication system 104. The audio communication system 104 may be a voice recognition system, hands-free voice communication system, or other audio system. An audio detection device 106 may interface with the audio communication system 104. The audio detection device 106 may include one or more microphones or other devices that detect audio signals and transmit the detected signals to the audio communication system 104 for processing. The audio communication system 104 may also interface with one or more loudspeakers 108. The loudspeakers 108 may receive audio signals from the audio communication system 104 and make those signals audible for users in a vicinity of the loudspeakers 108.
In some implementations, the audio communication system 104 may interface with a communication network 110. The audio communication system 104 may transmit audio signals across the communication network 110 to one or more other communication systems. Also, the audio communication system 104 may receive audio signals from other communication systems through the communication network 110. In one implementation, a user of the audio communication system 104 may participate in a voice conversation with a remote party through the communication network 110. The audio detection device 106 may detect the user's speech, and the loudspeakers 108 may transmit speech received from the remote party.
The audio communication system 104 may operate in a noisy environment. The noise may include background noise, echo, or other interference. Echo may occur in the communication system 104 when the audio detection device 106 picks up an audio signal transmitted from the loudspeakers 108. The audio communication system 104 may use the signal processing system 102 to attenuate noise and obtain an enhanced audio signal.
FIG. 2 illustrates one implementation of the signal processing system 102. In FIG. 2, the signal processing system 102 may enhance an audio signal y(n). The audio signal y(n) may be part of a telephone conversation between a remote party and a near party. The near party may use a hands-free set that includes a loudspeaker (e.g., the loudspeaker 108 of FIG. 1) and a device that converts speech into an analog or digital signal (e.g., the audio detection device 106 of FIG. 1). A communication system at the near side (e.g., the communication system 104 of FIG. 1) may receive a signal x(n) from the remote party. The signal x(n) may be speech from the remote party. The communication system may convert the signal x(n) into an audible range through a loudspeaker.
The near party and the loudspeaker may be contained within a room (e.g., a vehicle compartment or other space). The room may be part of a loudspeaker-room-microphone (LRM) system 202. The LRM system 202 may be characterized by an impulse response h(n). Although the microphone of the LRM system 202 may be tuned to detect a speech signal s(n) of the near side speaker, the microphone may also detect background noise b(n) and an echo contribution d(n) caused by the loudspeaker output. Therefore, the audio signal generated by the microphone may be represented as y(n)=s(n)+b(n)+d(n).
The signal processing system 102 enhances the audio signal y(n) by processing the audio signal y(n) in a sub-band regime. To process the audio signal y(n) in the sub-band regime, the audio signal y(n) is filtered by an analysis filter bank gμ,ana 204 to obtain the audio sub-band signals ysb(n). The analysis filter bank 204 may include low-pass, band pass, and/or high-pass filters. In some implementations, the analysis filter bank 204 may be formed from one or more Discrete Fourier Transformation (DFT) filters, Discrete Cosine Transformation (DCT) filters, or Fast Fourier Transformation (FFT) filters. The analysis filter bank 204 may comprise a Hann or Hamming window. The analysis filter bank 204 divides the audio signal y(n) into M audio sub-band signals ysb(n). M represents the order of the DFT, DCT or FFT filters, for example, or the channel number of the analysis filter bank 204, in general.
After the audio signal y(n) is divided into multiple audio sub-band signals ysb(n), the audio sub-band signals ysb(n) may be passed to a filter 206. The filter 206 may serve to excise a portion of the audio sub-band signals ysb(n). The filter 206 may excise a subset of the audio sub-band signals ysb(n) leaving a remaining subset of audio sub-band signals ysb,g. The filter 206 may excise a predetermined number of the audio sub-band signals ysb(n), such as every other audio sub-band. In the implementation of FIG. 2, the filter 206 may excise each of the audio sub-band signals ysb(n) with an odd index number. Therefore, the remaining audio sub-band signals ysb,g may be the audio sub-band signals ysb(n) that have an even index number.
The remaining audio sub-band signals ysb,g may be filtered to enhance signal quality. In one implementation, a Wiener filter may attenuate noise components of the remaining audio sub-band signals ysb,g. In the implementation of FIG. 2, the remaining audio sub-band signals ysb,g are filtered by an echo compensation filter 208 that may be represented by the following equation:

ĥμ(n)=[ĥμ,0(n),ĥμ,1(n), . . . ĥμ,N−1(n)]T.

The echo compensation filter 208 may have a length N (e.g., the number of filter coefficients for each sub-band μ) for modeling the impulse response of the LRM system 202. The echo compensation filter 208 may be an infinite impulse response filter (IIR), adaptable finite impulse response filter (FIR), or other filter to compensate for echo effects. In some applications, about 256/r to about 1000/r filter coefficients may be used, where r denotes the factor of down-sampling of the sub-band signals. In other implementations, a different number of filter coefficients may be used.

Some adaptation methods for the echo compensation filter 208 may be iterative methods (e.g., in full band):

ĥ(n+1)=ĥ(n)+Δĥ(n).

In one implementation, the adaptation method for the echo compensation filter 208 may be the normalized least mean square (NLMS) algorithm:




  
    
      h
      ^
    
    ⁡
    
      (
      
        n
        +
        1
      
      )
    
  
  =
  
    
      
        h
        ^
      
      ⁡
      
        (
        n
        )
      
    
    +
    
      
        κ
        ⁡
        
          (
          n
          )
        
      
      ⁢
      
        
          
            
              x
              ⁡
              
                (
                n
                )
              
            
            ⁢
            
              e
              ⁡
              
                (
                n
                )
              
            
          
          
            
              
              
                x
                ⁡
                
                  (
                  n
                  )
                
              
              
            
            2
          
        
        .
      
    
  




The vector of the reference signal may be represented by:

x(n)=[x(n), x(n−1), . . . , x(n−N+1)]T.

The error signal e(n) represents the difference of the audio signal (e.g., the signal detected by the microphone) and the output of the echo compensation filter 208. The error signal e(n) may be represented by:

e(n)=y(n)−{circumflex over (d)}(n)=y(n)−ĥT(n)x(n).

The corrector step is adjusted by means of the real number κ. Accordingly, in the sub-band regime the normalized least mean square (NLMS) algorithm may be:




  
    
      
        h
        ^
      
      sb
    
    ⁡
    
      (
      
        n
        +
        1
      
      )
    
  
  =
  
    
      
        
          h
          ^
        
        sb
      
      ⁡
      
        (
        n
        )
      
    
    +
    
      
        
          κ
          sb
        
        ⁡
        
          (
          n
          )
        
      
      ⁢
      
        
          
            
              
                x
                sb
              
              ⁡
              
                (
                n
                )
              
            
            ⁢
            
              
                e
                sb
                *
              
              ⁡
              
                (
                n
                )
              
            
          
          
            
              
              
                
                  x
                  sb
                
                ⁡
                
                  (
                  n
                  )
                
              
              
            
            2
          
        
        .
      
    
  




The asterisk denotes the complex conjugate and κsb(n) adjusts the corrector step. The vector of the reference signal may be represented by:

xsb(n)=[xsb(n), xsb(n−1), . . . , xsb(n−N+1)]T and

esb(n)=ysb(n)−{circumflex over (d)}sb(n)=ysb(n)−ĥsbH(n)xsb(n).

The upper index H denotes the Hermitian adjugate.

Because the filter 206 excises a portion of the audio sub-band signals ysb(n), the echo compensation filter 208 may operate on the sub-bands that correspond to the remaining audio sub-band signals ysb,g. If the filter 206 excised the odd sub-bands and passed the even sub-bands, then the echo compensation filter 208 may operate on only the even sub-bands as well. Therefore, the echo compensation filter 208 may save computational resources and time by not echo compensating the odd sub-bands.
To echo compensate only the sub-bands that are passed by the analysis filter bank 206, the signal processing system 102 may process the reference signal x(n) in a manner that is similar to the processing applied to the detected signal y(n). In one implementation, the reference signal x(n) may be passed through an analysis filter bank 210 to obtain reference sub-band signals xsb(n). Specifically, the analysis filter bank 210 divides the reference signal x(n) into multiple reference sub-band signals xsb(n). The analysis filter bank 210 may be substantially similar or identical to the analysis filter bank 204 used for dividing the detected signal y(n) into sub-bands. In one implementation, the analysis filter bank 210 may comprise a Hann or Hamming window.
After the reference signal x(n) is divided into multiple reference sub-band signals xsb(n), the reference sub-band signals xsb(n) are passed to a filter 212. The filter 212 serves to excise a portion of the reference sub-band signals xsb(n). The filter 212 may excise a subset of the reference sub-band signals xsb(n) leaving a remaining subset of reference sub-band signals xsb,g. In one implementation, the remaining reference sub-band signals xsb,g are equal in number to the remaining audio sub-band signals ysb,g. The filter 212 may excise the reference sub-band signals xsb(n) that correspond to the audio sub-band signals ysb(n) that were excised by the filter 204. In the implementation of FIG. 2, the filter 206 may excise each of the audio sub-band signals ysb(n) with an odd index number. Therefore, the filter 212 may excise each of the reference sub-band signals xsb(n) with an odd index number. The remaining reference sub-band signals xsb,g may be the reference sub-band signals ysb(n) that have an even index number. The remaining reference sub-band signals xsb,g may next be passed to the echo compensation filter 208 where error signals esb,g(n) are obtained. The error signals esb,g(n) represent echo compensated audio sub-band signals.
In one implementation, the detected sub-band signals and the reference sub-band signals may down-sampled by a factor r. The audio sub-band signals ysb(n) and the reference sub-band signals xsb,g(n) may be down-sampled with respect to the audio signal y(n) and the reference signal x(n), respectively, by the same down-sampling factor r. If, e.g., a Hann window is used for the analysis filter banks 204 and 210, then the length of the analysis filters may be equal to the number of sub-bands M. For a typical processing of the analysis and the synthesis filter bank by Discrete Fourier Transformation (DFT), for example, the lengths of the analysis and the synthesis filter banks may be the same and equal to the number of sub-bands M. In one implementation, a down-sampling factor of r=M/4 may be used, which allows for good re-synthesis of the audio sub-band signals. The spectra of the down-sampled reference sub-band signals may be represented by:




  
    
      X
      μ
    
    ⁡
    
      (
      
        e
        
          j
          ⁢
          
            
          
          ⁢
          Ω
        
      
      )
    
  
  =
  
    
      ∑
      
        m
        =
        0
      
      
        r
        -
        1
      
    
    ⁢
    
      
    
    ⁢
    
      
        X
        (
        
          e
          
            
              j
              ⁡
              
                [
                
                  
                    Ω
                    r
                  
                  -
                  
                    
                      2
                      ⁢
                      π
                    
                    r
                  
                
                ]
              
            
            ⁢
            m
          
        
        )
      
      ⁢
      
        
          G
          
            μ
            ,
            ana
          
        
        (
        
          e
          
            j
            ⁡
            
              [
              
                
                  Ω
                  r
                
                -
                
                  
                    
                      2
                      ⁢
                      π
                    
                    r
                  
                  ⁢
                  m
                
              
              ]
            
          
        
        )
      
    
  




for each sub-band μ.

By down-sampling the audio sub-band signals with respect to the audio signal detected by a microphone (e.g., with a sampling rate of about 8 kHz) the computational load may be reduced. An increase in the rate r may result in a reduction of the computational load. Due to the finite-slope filter flanks, r=M may be an upper limit for the sampling rate r, where M represents the number of sub-bands (e.g., the number of channels of the analysis filter banks 204 and 210).
In the implementation shown in FIG. 2, the error signals esb,g(n) are further processed for noise reduction and reduction of residual echoes by a post-filter 214. The post-filter 214 may be a Wiener filter. The residual echoes may be due to imperfect adaptation of the echo compensation filter 208. The filter characteristics of the post-filter 214 may be adapted based on the estimated auto power density of the error signals esb,g(n) and the perturbation that is still present in the error signals esb,g(n) (i.e., the echo compensated audio sub-band signals) in form of background noise and residual echoes.
The enhanced sub-band signals ŝsb,g(n) may be transferred from the post-filter 214 to a processor 216. The processor 216 serves to reconstruct at least some of the excised audio sub-band signals. Specifically, the processor 216 may reconstruct sub-band signals for the audio sub-band signals that were excised by the filter 206. In the implementation of FIG. 2, the filter 206 excised the audio sub-band signals with odd index numbers. Therefore, the processor 216 generates audio sub-band signals to replace the original audio sub-band signals that had odd index numbers. The processor 216 may use the remaining audio sub-band signals to reconstruct the excised audio sub-band signals.
In one implementation, reconstruction may be based on one previous and one following sub-band vector. From the vector of the audio signal y(n), where n is the discrete time index, a vector of some length M+2r (where r denotes the factor of down-sampling of the sub-band signals) is extracted:

y(n)=[y(n+r), y(n+r−1), . . . , y(n−M−r+1)]T 

where the upper index T denotes the transposition operation. Windowing may be performed by:





  F
  =
  
    [
    
      
    
    ⁢
    
      
        
          
            g
            0
          
        
        
          0
        
        
          0
        
        
          ...
        
        
          0
        
      
      
        
          0
        
        
          
            g
            1
          
        
        
          0
        
        
          ...
        
        
          0
        
      
      
        
          0
        
        
          0
        
        
          
            g
            2
          
        
        
          ...
        
        
          0
        
      
      
        
          ⋮
        
        
          ⋮
        
        
          ⋮
        
        
          ⋱
        
        
          ⋮
        
      
      
        
          0
        
        
          0
        
        
          0
        
        
          ...
        
        
          
            g
            
              M
              -
              1
            
          
        
      
    
    ⁢
    
      
    
    ]
  




where the diagonal coefficients g0, . . . , gM−1 are the coefficients of the 0th prototype filter (e.g., a Hann window) of the analysis filter bank that is given by:

gμ,ana=[gμ,0,ana,gμ,1,ana, . . . , gμ,Nana−1,ana]T.

The analysis filter banks may operate in the frequency (Ω) domain and the frequency response of a prototype low-pass filter may be given by:




  
    
      G
      
        0
        ,
        ana
        ,
        ideal
      
    
    ⁡
    
      (
      
        e
        jΩ
      
      )
    
  
  =
  
    {
    
      
        
          
            
              1
              ,
              
                
              
              ⁢
              
                
                  for
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                    Ω
                    
                  
                
                ≤
                
                  
                    2
                    ⁢
                    π
                  
                  M
                
              
              ,
            
            ⁢
            
              
            
          
        
      
      
        
          
            any
            ,
            
              
            
            ⁢
            
              
                for
                ⁢
                
                  
                
                ⁢
                
                  
                    2
                    ⁢
                    π
                  
                  M
                
              
              <
              
                
                Ω
                
              
              <
              
                
                  2
                  ⁢
                  π
                
                r
              
            
            ,
          
        
      
      
        
          
            
              0
              ,
              
                
              
              ⁢
              
                
                  for
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                    Ω
                    
                  
                
                ≥
                
                  
                    2
                    ⁢
                    π
                  
                  r
                
              
            
            ⁢
            
              
            
          
        
      
    
  




The other filters (sub-band index μ=1, . . . , M−1) may be obtained by frequency shifting. After supplementation of the window matrix F with M×r zeros (zero padding) on the left-hand and right-hand sides F0=[0M×r F 0M×r], a windowed signal portion of the length M may be obtained by F0 y(n). After transformation (e.g., by a DFT) the actual sub-band vector (at time n) may be obtained. The DFT may be formulated by the transformation matrix:




  T
  =
  
    
      [
      
        
          
            1
          
          
            1
          
          
            1
          
          
            ...
          
          
            1
          
        
        
          
            1
          
          
            
              e
              
                
                  -
                  j
                
                ⁢
                
                  1
                  M
                
                ⁢
                2
                ⁢
                π
              
            
          
          
            
              e
              
                
                  -
                  j
                
                ⁢
                
                  2
                  M
                
                ⁢
                2
                ⁢
                π
              
            
          
          
            ...
          
          
            
              e
              
                
                  -
                  j
                
                ⁢
                
                  
                    M
                    -
                    1
                  
                  M
                
                ⁢
                2
                ⁢
                π
              
            
          
        
        
          
            1
          
          
            
              e
              
                
                  -
                  j
                
                ⁢
                
                  2
                  M
                
                ⁢
                2
                ⁢
                π
              
            
          
          
            
              e
              
                
                  -
                  j
                
                ⁢
                
                  4
                  M
                
                ⁢
                2
                ⁢
                π
              
            
          
          
            ...
          
          
            
              e
              
                
                  -
                  j
                
                ⁢
                
                  
                    2
                    ⁢
                    
                      (
                      
                        M
                        -
                        1
                      
                      )
                    
                  
                  M
                
                ⁢
                2
                ⁢
                π
              
            
          
        
        
          
            ⋮
          
          
            ⋮
          
          
            ⋮
          
          
            ⋱
          
          
            ⋮
          
        
        
          
            1
          
          
            
              e
              
                
                  -
                  j
                
                ⁢
                
                  
                    M
                    -
                    1
                  
                  M
                
                ⁢
                2
                ⁢
                π
              
            
          
          
            
              e
              
                
                  -
                  j
                
                ⁢
                
                  
                    2
                    ⁢
                    
                      (
                      
                        M
                        -
                        1
                      
                      )
                    
                  
                  M
                
                ⁢
                2
                ⁢
                π
              
            
          
          
            ...
          
          
            
              e
              
                
                  -
                  j
                
                ⁢
                
                  
                    
                      (
                      
                        M
                        -
                        1
                      
                      )
                    
                    ⁢
                    
                      (
                      
                        M
                        -
                        1
                      
                      )
                    
                  
                  M
                
                ⁢
                2
                ⁢
                π
              
            
          
        
      
      ]
    
    .
  




The sub-band signal may be down-sampled by the factor r and, thus, the down-sampled sub-band signal at time n may be obtained by:

ysb(n)=TF0y(nr).

By means of the respective window matrices for the previous (n−1) and subsequent (n+1) sub-band vectors:

F−1=[F0M×2r] and F1=└0M×2rF┘, 

the following signal vectors may be obtained:

ysb(n−1)=TF−1y(nr) and ysb(n+1)=TF1y(nr).

In order to extract odd sub-band vectors only the matrix:




  
    E
    u
  
  =
  
    [
    
      
        
          0
        
        
          1
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          ...
        
        
          0
        
        
          0
        
      
      
        
          0
        
        
          0
        
        
          0
        
        
          1
        
        
          0
        
        
          0
        
        
          ...
        
        
          0
        
        
          0
        
      
      
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          1
        
        
          ...
        
        
          0
        
        
          0
        
      
      
        
          ⋮
        
        
          ⋮
        
        
          ⋮
        
        
          ⋮
        
        
          ⋮
        
        
          ⋮
        
        
          ⋱
        
        
          ⋮
        
        
          ⋮
        
      
      
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          0
        
        
          ...
        
        
          0
        
        
          1
        
      
    
    ]
  




is defined to obtain sub-bands for odd sub-band indices:

ysb,u(n)=Euytb(n)=EuTF0y(nr).

Similarly, extraction of sub-band signals with even indices results from

ysb,g(n−i)=Egysb(n−i)=EgTF−iy(nr);i=±1,

with the extraction matrix:





  
    E
    g
  
  =
  
    
      [
      
        
          
            1
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            ...
          
          
            0
          
          
            0
          
        
        
          
            0
          
          
            0
          
          
            1
          
          
            0
          
          
            0
          
          
            0
          
          
            ...
          
          
            0
          
          
            0
          
        
        
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            1
          
          
            ...
          
          
            0
          
          
            0
          
        
        
          
            ⋮
          
          
            ⋮
          
          
            ⋮
          
          
            ⋮
          
          
            ⋮
          
          
            ⋮
          
          
            ⋱
          
          
            ⋮
          
          
            ⋮
          
        
        
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            0
          
          
            ...
          
          
            1
          
          
            0
          
        
      
      ]
    
    .
  




Reconstruction of the odd sub-band vectors may be achieved by interpolation of even sub-band vectors. At time n a reconstructed odd sub-band vector ŷsb,u(n) may be calculated from an actual (time is n) even sub-band signal vector ysb,g(n) and a previous (time is n−1) and a sub-sequent (time is n+1) even sub-band vector:

ŷsb,u(n)=C1ysb,g(n+1)+C0ysb,g(n)+C−1ysb,g(n−1)

with the interpolation matrices C1, C0, C−1. In principle, averaging by more than two adjacent (in time) signal vectors may be performed, e.g.,

ŷsb,u(n)=C2ysb,g(n+2)+C1ysb,g(n+1)+C−1ysb,g(n−1)+C−2ysb,g(n−2).

With the above expression for sub-band signals with even indices one gets for the interpolation with C1, C0, and C−1:




  
    
      
        
          
            
              y
              ^
            
            
              
                s
                ⁢
                
                  
                
                ⁢
                b
              
              ,
              u
            
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            
              C
              1
            
            ⁢
            
              E
              g
            
            ⁢
            
              TF
              1
            
            ⁢
            
              y
              ⁡
              
                (
                nr
                )
              
            
          
          +
          
            
              C
              0
            
            ⁢
            
              E
              g
            
            ⁢
            
              TF
              0
            
            ⁢
            
              y
              ⁡
              
                (
                nr
                )
              
            
          
          +
          
            
              C
              
                -
                1
              
            
            ⁢
            
              E
              g
            
            ⁢
            
              TF
              
                -
                1
              
            
            ⁢
            
              y
              ⁡
              
                (
                nr
                )
              
            
          
        
      
    
  
  
    
      
        =
        
          
            [
            
              
                
                  C
                  1
                
                ⁢
                
                  E
                  g
                
                ⁢
                
                  TF
                  1
                
              
              +
              
                
                  C
                  0
                
                ⁢
                
                  E
                  g
                
                ⁢
                
                  TF
                  0
                
              
              +
              
                
                  C
                  
                    -
                    1
                  
                
                ⁢
                
                  E
                  g
                
                ⁢
                
                  TF
                  
                    -
                    1
                  
                
              
            
            ]
          
          ⁢
          
            y
            ⁡
            
              (
              nr
              )
            
          
        
      
    
  




This expression may be represented by:

ŷsb,u(n)=CgesDEgTFgesy(nr)

with Cges=[C1 C0 C−1] and the block diagonal matrix:





  
    D
    
      
        E
        g
      
      ⁢
      T
    
  
  =
  
    [
    
      
        
          
            
              E
              g
            
            ⁢
            T
          
        
        
          0
        
        
          0
        
      
      
        
          0
        
        
          
            
              E
              g
            
            ⁢
            T
          
        
        
          0
        
      
      
        
          0
        
        
          0
        
        
          
            
              E
              g
            
            ⁢
            T
          
        
      
    
    ]
  




and the total window matrix





  
    F
    ges
  
  =
  
    
      [
      
        
          
            
              F
              1
            
          
        
        
          
            
              F
              0
            
          
        
        
          
            
              F
              
                -
                1
              
            
          
        
      
      ]
    
    .
  




In one implementation, to find a reconstruction for the previously excised sub-band vector, the L2−norm of the difference vector may be minimized:

∥ysb,u(n)−ŷsb,u(n)∥2, i.e., ∥EuTF0y(nr)−CgesDEgTFgesy(nr)∥2.

The minimization may be achieved in a sufficiently good approximation by determining Cges such that each row of the matrix Eu TF0−Cges DEgT Fges, has a minimal L2−norm. This may be achieved by the Moore-Penrose-pseudo inverse:

(DEgTFges)′ of the matrix (DEgT Fges).

Thus, Cges may be expressed by Cges=EuTF0(DEgTFges)′, under the assumption that (DEgTFges) (DEgTFges)H is invertable (where the upper index H denotes the Hemite conjugate, i.e., the adjoint matrix). The Moore-Penrose-pseudo inverse may be calculated from:

(DEgTFges)′=(DEgTFges)H[(DEgTFges)(DEgTFges)H]−1.

A direct use of the interpolation matrices C−1 and C1 may demand high computer capacities. Therefore, approximates of these matrices C−1 and C1 by their respective main and secondary diagonals may be used.
The output signals after echo compensation and/or other processing for noise reduction, dereverberation, etc., for the sub-bands that are not excised may be denoted by ŝμ(n), where μ is the sub-band index. ŝμ(n) may be determined for all sub-bands (including the reconstruction of the previously excised sub-band vectors) by the following equation:




  
    
      
        s
        ~
      
      μ
    
    ⁡
    
      (
      n
      )
    
  
  =
  
    {
    
      
        
          
            
              
                
                  ∑
                  
                    k
                    =
                    
                      -
                      1
                    
                  
                  1
                
                ⁢
                
                  
                
                ⁢
                
                  
                    
                      
                        s
                        ~
                      
                      
                        μ
                        -
                        1
                      
                    
                    ⁡
                    
                      (
                      
                        n
                        -
                        k
                      
                      )
                    
                  
                  ⁢
                  
                    
                      C
                      k
                    
                    ⁡
                    
                      (
                      
                        μ
                        ,
                        μ
                      
                      )
                    
                  
                
              
              +
              
                
                  ∑
                  
                    k
                    =
                    
                      -
                      1
                    
                  
                  1
                
                ⁢
                
                  
                
                ⁢
                
                  
                    
                      
                        s
                        ~
                      
                      
                        μ
                        +
                        1
                      
                    
                    ⁡
                    
                      (
                      
                        n
                        -
                        k
                      
                      )
                    
                  
                  ⁢
                  
                    
                      C
                      k
                    
                    ⁡
                    
                      (
                      
                        μ
                        ,
                        
                          μ
                          +
                          1
                        
                      
                      )
                    
                  
                
              
            
            ,
          
        
        
          
            
              
            
            ⁢
            
              
                if
                ⁢
                
                  
                    
                  
                  ⁢
                  
                    
                  
                
                ⁢
                
                  mod
                  ⁡
                  
                    (
                    
                      μ
                      ,
                      2
                    
                    )
                  
                
              
              =
              1
            
            ⁢
            
              
            
          
        
      
      
        
          
            
          
        
        
          
            
          
        
      
      
        
          
            
              
                
                  
                    s
                    ~
                  
                  μ
                
                ⁡
                
                  (
                  
                    n
                    -
                    1
                  
                  )
                
              
              ,
              
                
              
              ⁢
              else
            
            ⁢
            
              
            
          
        
        
          
            
          
        
      
    
  




where Ck(n1, n2) denotes the element in the n1th row and the n2th column of the matrix Ck. This implies that even sub-bands are taken with a delay of one time increment (n−1).

Reconstruction of a previously excised sub-band signal may be based on more than one preceding and subsequent sub-band signal (n−1 and n+2). In particular, a different number of preceding and subsequent sub-band signals may be used for the interpolation (C0≠0).
A set (e.g., a complete set) of sub-band signals {tilde over (s)}sb(n) may be input into a synthesis filter bank 218 to synthesize the enhanced sub-band signals ŝsb,g(n) with the reconstructed sub-band signals. The synthesis filter bank 218 may correspond to the analysis filter bank 204 used to divide the detected signal y(n) into the audio sub-band signals ysb(n). The synthesis filter bank 218 combines the enhanced sub-band signals with the reconstructed sub-band signals to form a full-band enhanced microphone signal {tilde over (s)}(n). The synthesis filter bank 218 may include a Hann or Hamming window. The analysis filter banks 204 and 210 may down-sample the sub-band signals by a factor r. The synthesis filter bank 218 may up-sample the down-sampled reconstructed and enhanced microphone sub-band signals ŝsb,g(n) by the same factor as the down-sampling factor r. The synthesis filter bank 218 may be represented by:

gμ,syn=└gμ,0,syn, . . . , gμ,Nsyn−1,syn┘T 

For one application including M=256 sub-bands and down-sampling rates of r=64 and r=72, for example, computational time and memory demand may be reduced by about 50% as compared to standard DFT processing. The time for signal processing (delay time) may only be a few milliseconds above the time delay of standard processing by means of polyphase filter banks. Also, the delay time may be below the threshold according to the Global System for Mobile communications (GSM) standards of 39 ms in vehicle cabins. Moreover, the adaptation velocity of the echo compensation filter 208 may only be slightly different standard processing.
FIG. 3 is a process that enhances an audio signal by processing the signal in the sub-band regime. At act 302, an audio signal is obtained. The audio signal may be a speech signal representing an utterance by a local speaker. A microphone or other detection device may detect the audio signal. Alternatively, the audio signal may be detected by a microphone array to obtain a number of microphone signals that may by processed by beamforming. In this case, the signal processing described in the following acts may be applied to each of the microphone signals obtained by the microphones of the microphone array. At act 304, the audio signal is divided into audio sub-band signals. Some or all of these audio sub-band signals may be subsequently processed to enhance the quality.
After dividing the audio signal into audio sub-band signals, a portion of the audio sub-band signals may be excised at act 306. In one implementation, all microphone sub-band signals yμ with an odd index may be excised and only microphone sub-band signals yμ with an even index με{0, 2, 4, . . . , M−2} may be maintained. In another implementation, all microphone sub-band signals yμ with an even index may be excised and only microphone sub-band signals yμ with an odd index με{1, 3, 5, . . . , M−1} may be maintained. By excising about half of the audio sub-band signals, the processing and memory demands may accordingly be reduced by about half.
In another implementation, the audio sub-band signals are selectively excised. The system may excise audio sub-band signals above or below a predetermined frequency threshold. In particular, selected audio sub-band signals may be excised in one frequency range of the sub-band signals, while the sub-band signals in other frequency ranges are not excised or are excised to a lesser degree. In another implementation, a greater percentage of the audio sub-band signals that are above or below a predetermined frequency threshold may be excised. For example, a first percentage of audio sub-band signals may be excised in a first frequency range, while a second percentage of audio sub-band signals may be excised in a second frequency range. The first percentage may be the same or different than the second percentage. Also, the percentages are adjustable and may be as high as 100% or as low as 0%.
In one implementation, a predetermined number of audio sub-band signals may be excised only from a high frequency range (e.g., above some threshold, such as above 1 kHz, 1.5 kHz, or 2 kHz) while keeping all (or substantially all) of the audio sub-band signals in a lower frequency range. Thereby, a variety of compromises between saving computational costs and achieving high signal quality may be achieved.
At act 308, the remaining audio sub-band signals may be enhanced. The remaining sub-band signals may be processed for echo compensation, dereverberation, noise reduction, and/or another signal enhancement technique. At act 310, at least a portion of the previously excised sub-band signals are reconstructed. In one implementation, excised audio sub-band signals may be reconstructed from the remaining audio sub-band signals. At act 312, the reconstructed sub-band signals are synthesized with the enhanced sub-band signals to generate a full-band enhanced audio signal.
FIG. 4 is a process that uses a reference signal to enhance an audio signal. At act 402, a reference signal is obtained. In one implementation, the reference signal represents a noise component that may exist in a detected signal. In another implementation, the reference signal is a signal that represents possible echo components that may exist in a detected signal. Specifically, the reference signal may be an audio signal that is transmitted from a system loudspeaker and may be detected by a system microphone.
At act 404, the reference signal is divided into reference sub-band signals. After dividing the reference signal into reference sub-band signals, a portion of the reference sub-band signals may be excised. In one implementation, the reference sub-band signals may be excised to the same degree as the audio sub-band signals. At act 406, it is determined which of the audio sub-band signals were excised at act 306 of FIG. 3. In one implementation, the microphone sub-band signals with an odd index number were excised and the microphone sub-band signals with an even index number were maintained. In another implementation, the microphone sub-band signals with an even index number were excised and the microphone sub-band signals with an odd index number were maintained. In yet another implementation, a different excising scheme was implemented.
At act 408, a subset of the reference sub-band signals are excised. The excised subset may correspond to the subset of the audio sub-band signals that were excised. If the audio sub-band signals with odd index numbers were excised, then the reference sub-band signals with odd index numbers may also be excised at act 408. Therefore, the remaining subset of the reference sub-band signals may correspond to the remaining subset of the audio sub-band signals.
At act 410, the remaining reference sub-band signals are used to enhance the remaining audio sub-band signals. In one implementation, the remaining reference sub-band signals may represent a noise or echo component that may be present in the remaining audio sub-band signals. Therefore, the remaining reference sub-band signals may be used to attenuate the noise or echo components present in the remaining audio sub-band signals. In one implementation, the filter coefficients of an echo compensation filter may be adapted based on the remaining reference sub-band signals and sub-band error signals. The remaining audio sub-band signals may then be filtered by the adapted filter coefficients to reduce echo contributions in the remaining audio sub-band signals. Specifically, estimated echo contributions may be subtracted from the remaining audio sub-band signals.
FIG. 5 is a process that reconstructs excised sub-band signals. At act 502, enhanced audio sub-band signals are received. The enhanced audio sub-band signals may be enhanced versions of the audio sub-band signals that were not excised at act 306 of FIG. 3. At act 504, the excised sub-band signals are identified. For example, locations of excised sub-band signals may be identified within the full-band spectrum. At act 506, one or more of the remaining sub-band signals are selected for use to reconstruct the excised sub-band signals.
At act 508, the excised sub-band signal is reconstructed based on the selected remaining sub-band signals. An excised sub-band signal may be reconstructed by averaging multiple remaining audio sub-band signals. The reconstruction generates an audio sub-band signal to replace the identified excised audio sub-band signal. The excised sub-band signals may be reconstructed from one, two, or more remaining sub-band signals. In one implementation, an excised sub-band signal may be reconstructed by averaging remaining audio sub-band signals that are adjacent in time to the excised audio sub-band signal. In another implementation, an excised audio sub-band signal from a particular time may be reconstructed by interpolation of remaining audio sub-band signals from the particular time and remaining audio sub-band signals that are adjacent in time.
The reconstruction may be a weighted average of multiple remaining sub-band signals. In an implementation where two sub-band signals are averaged to reconstruct an excised sub-band signal, a first weighting factor may be applied to the first sub-band signal and a second weighting factor may be applied to the second sub-band signal. The relative weights of the multiple sub-band signals may be controlled or adjusted to reconstruct the excised sub-band signals.
In one implementation, at least at one time (n) the audio sub-band signals for the predetermined sub-bands for which audio sub-band signals were excised may be reconstructed for the predetermined sub-bands by averaging the remaining audio sub-band signals that are adjacent in time (n+k, n−k), where n is the discrete time index and k is an integer, k≧1; k=1, 2, etc. Thus, the term adjacent may include the closest adjacent signals (in time) as well as some number of neighbors. A reconstructed audio sub-band signal at frequency bin j may be calculated by averaging enhanced (e.g., echo/noise compensated) remaining audio sub-band signals at frequency bins j+1 and j−1. If a predetermined number of microphone sub-band signals are excised all over the set of sub-bands (μ=1, . . . , M) averaging may be performed also all over the entire range of sub-bands. Alternatively, it may be preferred to reconstruct a part of the excised microphone sub-band signals only. Reconstruction may be variably performed according to the actual application. Averaging may include different weights (interpolation matrices) for the audio sub-band signals at times n+1, n and n−1 (and further adjacent values, when used).
In another implementation, the excised microphone sub-band signals at time n may be reconstructed by interpolation of remaining microphone sub-band signals at the time n and remaining microphone sub-band signals adjacent in time (e.g., one or more previous signal vectors and/or subsequent signal vectors). Accurate reconstruction with tolerable artifacts may thereby be achieved. To achieve a significant reduction of the need for computational resources, the interpolation may be performed by interpolation matrices which are approximated by their main diagonals and secondary diagonals, respectively.
FIG. 6 is a process that compensates for echo in a microphone signal. At act 602, a verbal utterance is detected by a microphone. The microphone then generates a microphone signal that represents the verbal utterance. At act 604, microphone sub-band signals are obtained. Specifically, the microphone signal may be divided into multiple microphone sub-band signals. At act 606, a predetermined number of the microphone sub-band signals are excised.
At act 608, the remaining microphone sub-band signals are echo compensated. Specifically, the echo compensation may attempt to attenuate echo components in the remaining microphone sub-band signals. Echo compensated microphone sub-band signals may be further processed for noise reduction. Moreover, the microphone sub-band signals may be de-correlated by a time-invariant de-correlation filter (e.g., a filter of the first or second order) or by an adaptive de-correlation means in order to improve the convergence speed of the adaptation process of the filter coefficients of the echo compensation filter.
At act 610, the excised sub-band signals may be reconstructed based on the echo compensated sub-band signals. At act 612, the sub-band signals are synthesized to obtain an enhanced microphone signal. The echo compensated sub-band signals may be combined with the reconstructed sub-band signals to obtain the full-band enhanced microphone signal.
Each of the processes described may be encoded in a computer readable medium such as a memory, programmed within a device such as one or more circuits, one or more processors or may be processed by a controller or a computer. If the processes are performed by software, the software may reside in a memory resident to or interfaced to a storage device, a communication interface, or non-volatile or volatile memory in communication with a transmitter. The memory may include an ordered listing of executable instructions for implementing logic. Logic or any system element described may be implemented through optic circuitry, digital circuitry, through source code, through analog circuitry, or through an analog source, such as through an electrical, audio, or video signal. The software may be embodied in any computer-readable or signal-bearing medium, for use by, or in connection with an instruction executable system, apparatus, or device. Such a system may include a computer-based system, a processor-containing system, or another system that may selectively fetch instructions from an instruction executable system, apparatus, or device that may also execute instructions.
A computer-readable medium, machine-readable storage medium, propagated-signal medium, and/or signal-bearing medium may comprise any device that contains, stores, communicates, propagates, or transports software for use by or in connection with an instruction executable system, apparatus, or device. The machine-readable medium may selectively be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. A non-exhaustive list of examples of a machine-readable medium would include: an electrical connection having one or more wires, a portable magnetic or optical disk, a volatile memory such as a Random Access Memory “RAM,” a Read-Only Memory “ROM,” an Erasable Programmable Read-Only Memory (EPROM or Flash memory), or an optical fiber. A machine-readable medium may also include a tangible medium upon which software is printed, as the software may be electronically stored as an image or in another format (e.g., through an optical scan), then compiled, and/or interpreted or otherwise processed. The processed medium may be stored in a computer and/or machine memory.
While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.

## Claims

1. A method for audio signal processing, comprising:
dividing an audio signal into audio sub-band signals;
excising a subset of the audio sub-band signals;
processing a remaining subset of the audio sub-band signals to obtain enhanced audio sub-band signals;
reconstructing at least a portion of the subset of the audio sub-band signals that were excised; and
synthesizing the enhanced audio sub-band signals with the reconstructed audio sub-band signals to form an enhanced audio signal.

2. The method of claim 1, where the act of reconstructing comprises reconstructing an excised audio sub-band signal from one or more of the enhanced audio sub-band signals.

3. The method of claim 1, where the act of reconstructing comprises averaging a first sub-band signal of the enhanced audio sub-band signals and a second sub-band signal of the enhanced audio sub-band signals to generate an audio sub-band signal to replace one of the excised audio sub-band signals.

4. The method of claim 3, where the act of averaging comprises applying a first weighting factor to the first sub-band signal and a second weighting factor to the second sub-band signal.

5. The method of claim 1, where the act of reconstructing comprises reconstructing an excised audio sub-band signal by averaging remaining audio sub-band signals that are adjacent in time to the excised audio sub-band signal.

6. The method of claim 1, where the act of reconstructing comprises reconstructing excised audio sub-band signals from a particular time by interpolation of remaining audio sub-band signals from the particular time and remaining audio sub-band signals that are adjacent in time.

7. The method of claim 1, where the act of excising comprises excising a first percentage of audio sub-band signals in a first frequency range and excising a second percentage of audio sub-band signals in a second frequency range, where the first percentage is different than the second percentage.

8. The method of claim 1, where the act of synthesizing comprises:
up-sampling the enhanced audio sub-band signals;
up-sampling the reconstructed audio sub-band signals; and
combining the up-sampled enhanced audio sub-band signals and the up-sampled reconstructed audio sub-band signals to form the enhanced audio signal.

9. The method of claim 1, where the act of processing comprises:
dividing a reference signal into reference sub-band signals;
excising a subset of the reference sub-band signals that is equal in number to the excised subset of the audio sub-band signals;
adapting filter coefficients of an echo compensation filter based on a remaining subset of the reference sub-band signals; and
using the adapted filter coefficients to remove echo components from at least a portion of the remaining subset of the audio sub-band signals.

10. A method for audio signal processing, comprising:
dividing an audio signal into audio sub-band signals;
excising a subset of the audio sub-band signals;
processing a remaining subset of the audio sub-band signals to obtain enhanced audio sub-band signals;
reconstructing at least a portion of the subset of the audio sub-band signals that were excised; and
synthesizing the enhanced audio sub-band signals with the reconstructed audio sub-band signals to form an enhanced audio signal;
wherein here the act of processing comprises:
dividing a reference signal into reference sub-band signals;
excising a subset of the reference sub-band signals that is equal in number to the excised subset of the audio sub-band signals;
adapting filter coefficients of an echo compensation filter based on a remaining subset of the reference sub-band signals; and
using the adapted filter coefficients to remove echo components from at least a portion of the remaining subset of the audio sub-band signals.