# Patent

## Title
Speech separation with microphone arrays

## Abstract

A system that facilitates blind source separation in a distributed microphone meeting environment for improved teleconferencing. Input sensor (e.g., microphone) signals are transformed to the frequency-domain and independent component analysis is applied to compute estimates of frequency-domain processing matrices. Modified permutations of the processing matrices are obtained based upon a maximum magnitude based de-permutation scheme. Estimates of the plurality of source signals are provided based upon the modified frequency-domain processing matrices and input sensor signals.
Optionally, segments during which the set of active sources is a subset of the set of all sources can be exploited to compute more accurate estimates of frequency-domain mixing matrices. Source activity detection can be applied to determine which speaker(s), if any, are active. Thereafter, a least squares post-processing of the frequency-domain independent components analysis outputs can be employed to adjust the estimates of the source signals based on source inactivity.

## Background
BACKGROUND
The availability of inexpensive audio input sensors (e.g., microphones) has dramatically increased the use of teleconferencing for both business and personal multi-party communication. By allowing individuals to effectively communicate between physically distant locations, teleconferencing can significantly reduce travel time and/or costs which can result in increased productivity and profitability.
With increased frequency, teleconferencing participants can connect devices such as laptops, personal digital assistants and the like with microphones (e.g., embedded) over a network to form an ad hoc microphone array which allows for multi-channel processing of microphone signals. Ad hoc microphone arrays differ from centralized microphone arrays in several aspects. First, the inter-microphone spacing is generally large which can lead to spatial aliasing. Additionally, since the various microphones are generally not connected to the same clock, network synchronization is necessary. Finally, each speaker is usually closer to the speaker's microphone than to the microphone of other participants which can result in a high input signal-to-interference ratio.
Conventional teleconferencing systems have proven frustrating for teleconferencing participants. For example, overlapped speech from multiple remote participants can result in poor intelligibility to a local listener. Overlapped speech can further cause difficulties for sound source localization as well as beam forming.
SUMMARY
The following presents a simplified summary in order to provide a basic understanding of novel embodiments described herein. This summary is not an extensive overview, and it is not intended to identify key/critical elements or to delineate the scope thereof. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
The disclosed architecture facilitates blind source separation in a distributed microphone meeting environment for improved teleconferencing. Separation of individual source signals from a mixture of source signals is commonly known as “blind source separation” since the separation is performed without prior knowledge of the source signals. Input sensors (e.g., microphones) provide signals that are transformed to the frequency-domain and independent component analysis is applied to compute estimates of frequency-domain processing matrices (e.g., mixing or separation matrices) for each frequency band. Based upon the frequency-domain processing matrices, relative energy attenuation experienced between a particular source signal and the plurality of input sensors is computed to obtain modified permutations of the processing matrices. Estimates of the plurality of source signals are provided based on the plurality of frequency domain sensor signals and the modified permutations of the processing matrices.
A computer-implemented audio blind source separation system includes a frequency transform component for transforming a plurality of sensor signals to a corresponding plurality of frequency-domain sensor signals. The system further includes a frequency domain blind source separation component for estimating a plurality of source signals per frequency band based on the plurality of frequency domain sensor signals and processing matrices computed independently for each of a plurality of frequency bands.
Optionally, segments during which a set of active sources (e.g., speakers) is a proper subset of a set of all sources (e.g., speakers) can be exploited to compute more accurate estimates of the frequency-domain processing matrices. Source activity detection can be applied to the signals estimated from the frequency domain blind source separation component to determine which sources (e.g., speaker(s)), if any, are active at a particular moment in time. Thereafter, a least squares post-processing of the frequency-domain independent component analysis processing matrices can be employed to adjust the estimates of the source signals based on source inactivity.
To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the annexed drawings. These aspects are indicative, however, of but a few of the various ways in which the principles disclosed herein can be employed and is intended to include all such aspects and their equivalents. Other advantages and novel features will become apparent from the following detailed description when considered in conjunction with the drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a computer-implemented audio blind source separation system.
FIG. 2 illustrates an exemplary two source arrangement for mixing of source signals.
FIG. 3 illustrates a least-squares post-processing method for obtaining an improved mixing matrix H(ω).
FIG. 4 illustrates least-squares post-processing method for obtaining an improved separation matrix W(ω).
FIG. 5 illustrates a teleconferencing system.
FIG. 6 illustrates another teleconferencing system.
FIG. 7 illustrates yet another teleconferencing system.
FIG. 8 illustrates a method of blindly separating a plurality of source signals.
FIG. 9 illustrates another method of blindly separating a plurality of source signals.
FIG. 10 illustrates a computing system operable to execute the disclosed architecture.
FIG. 11 illustrates an exemplary computing environment.



DETAILED DESCRIPTION
The disclosed systems and methods facilitate blind source separation in a distributed microphone meeting environment for improved teleconferencing. A frequency-domain approach to blind separation of speech which is tailored to the nature of the teleconferencing environment is employed.
Input sensor signals are transformed to the frequency-domain and independent component analysis is applied to compute estimates of frequency-domain processing matrices for each frequency band. A maximum-magnitude-based de-permutation scheme is used to obtain modified permutations of the processing matrices. Finally the estimates of the source signals are obtained by applying the de-permuted processing matrices (e.g., separation matrices and/or mixing matrices) to the input signals.
Optionally, the presence of single-source and, in general, any segments during which the set of active sources is a subset of the set of all speakers, can be exploited to compute more accurate estimates of frequency-domain processing matrices. For example, source activity detection can be applied to the estimated source signals obtained from the speech separation component to determine which speaker(s), if any, are active. Thereafter, a least squares post-processing of the frequency-domain independent components analysis processing matrices can be employed to adjust the estimates of the source signals based on speaker inactivity.
Reference is now made to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding thereof. It may be evident, however, that the novel embodiments can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate a description thereof.
Referring initially to the drawings, FIG. 1 illustrates a computer-implemented audio blind source separation system 100. The system 100 employs a frequency-domain approach to blind source separation of speech tailored to the nature of the teleconferencing environment.
It is well known that, speech mixtures received at an array of microphones are not instantaneous but convolutive. Referring briefly to FIG. 2, source1 s1(k) is received at both input sensor1 and at input sensor2. Similarly, source2 s2(k) is received at both input sensor2 and at input sensor1. The signal received at input sensor2 due to source1 is an additive mixture of many copies of source1 with various gains and delays. Thus, the signal received at input sensor1 x1(k) and input sensor2 x2(k) is a convolutive mixture of s1(k) and s2(k).
Turning back to FIG. 1, the system 100 performs source separation in the frequency-domain by decomposing the signals at the microphone array into narrowband frequency bins with processing performed on each bin. Initially, consider an array of M input sensors 110 (e.g., microphones) where the output of the mth input sensor 110 is denoted by xm(k) where k is a discrete-time sample index. Assuming N sources with signals sn(k) an output of the mth input sensor 110 is the convolutive mixture:

xm(k)=Σn=1NΣl=0Lh−1hmn(l)sn(k−l)+vm(k), m=1, . . . , M,  Eq. (1)

where hmn is the finite impulse response (FIR) channel from source n to input sensor m, Lh is the length of the longest impulse response, and vm(k) is the additive sensor noise at input sensor 110 m. It is generally assumed that the source signals are mutually independent. The task of blind source separation in such convolutive mixtures is to recover the source signals sn(k) given only the signals from the input sensors 110 (e.g., microphone recordings) xm(k). In one embodiment, the quantity of sources (N) is less than or equal to the quantity of input sensors 110 (M).

Separation of the signals can be achieved by applying a FIR filter to each input sensor's output and them summing across the sensors:

yn(k)=Σm=1MΣl=0Lw−1wnm(l)xm(k−l), n=1, . . . , N,  Eq. (2)

where yn(k) is the estimate of sn(k), wnm(k) is the filter applied to input sensor 110 m in order to separate source n, and Lw is the length of the longest separation filter.

Taking the Fourier transform of Equation (1) and rewriting in matrix notation, the instantaneous mixture model is:




  
    
      
        
          
            
              x
              ⁡
              
                (
                ω
                )
              
            
            =
            
              
                
                  
                    ∑
                    
                      n
                      =
                      1
                    
                    N
                  
                  ⁢
                  
                    
                      
                        h
                        
                          :
                          n
                        
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                    ⁢
                    
                      
                        S
                        n
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                
                +
                
                  v
                  ⁡
                  
                    (
                    ω
                    )
                  
                
              
              =
              
                
                  
                    H
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                  ⁢
                  
                    s
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
                +
                
                  v
                  ⁡
                  
                    (
                    ω
                    )
                  
                
              
            
          
          ⁢
          
            

          
          ⁢
          where
          ⁢
          
            

          
          ⁢
          
            x
            ⁡
            
              (
              ω
              )
            
          
          =
          
            
              [
              
                
                  
                    
                      
                        X
                        1
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                  
                    
                      
                        X
                        2
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                  
                    ⋯
                  
                  
                    
                      
                        X
                        M
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                
              
              ]
            
            T
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              h
              
                :
                n
              
            
            ⁡
            
              (
              ω
              )
            
          
          =
          
            
              [
              
                
                  
                    
                      
                        H
                        
                          1
                          ⁢
                          n
                        
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                  
                    
                      
                        H
                        
                          2
                          ⁢
                          n
                        
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                  
                    ⋯
                  
                  
                    
                      
                        H
                        Mn
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                
              
              ]
            
            T
          
        
        ⁢
        
          

        
        ⁢
        
          
            H
            ⁡
            
              (
              ω
              )
            
          
          =
          
            [
            
              
                
                  
                    
                      H
                      11
                    
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
                
                  
                    
                      H
                      12
                    
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
                
                  ⋯
                
                
                  
                    
                      H
                      
                        1
                        ⁢
                        N
                      
                    
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
              
              
                
                  
                    
                      H
                      21
                    
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
                
                  
                    
                      H
                      22
                    
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
                
                  ⋯
                
                
                  
                    
                      H
                      
                        2
                        ⁢
                        N
                      
                    
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
              
              
                
                  ⋮
                
                
                  ⋮
                
                
                  ⋰
                
                
                  ⋮
                
              
              
                
                  
                    
                      H
                      
                        M
                        ⁢
                        
                          
                        
                        ⁢
                        1
                      
                    
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
                
                  
                    
                      H
                      
                        M
                        ⁢
                        
                          
                        
                        ⁢
                        2
                      
                    
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
                
                  ⋯
                
                
                  
                    
                      H
                      MN
                    
                    ⁡
                    
                      (
                      ω
                      )
                    
                  
                
              
            
            ]
          
        
        ⁢
        
          

        
        ⁢
        
          
            s
            ⁡
            
              (
              ω
              )
            
          
          =
          
            
              [
              
                
                  
                    
                      
                        S
                        1
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                  
                    
                      
                        S
                        2
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                  
                    ⋯
                  
                  
                    
                      
                        S
                        N
                      
                      ⁡
                      
                        (
                        ω
                        )
                      
                    
                  
                
              
              ]
            
            T
          
        
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          3
          )
        
      
    
  




and Xm(ω), Hmn(ω), Sn(ω), and Vm(ω) are the discrete-time Fourier transforms of xm(k) hmn(k) sn(k) and vm(k) respectively. H(ω) is known as the mixing matrix. In the frequency-domain, the separation model becomes:

y(ω)=W(ω)x(ω),  Eq. (4)

where y(ω)=[Y1(ω)Y2(ω) . . . YN(ω)]T is a vector of the Fourier transformed separated signals yn(k) and W(ω) is the separation matrix with [W(ω)]nm=Wnm(ω). Herein, H(ω) and W(ω) are referred to as processing matrices.

To enable frequency-domain processing, the time-domain input sensor 110 signals xm(k) are transformed to the frequency-domain by a frequency transform component 120. The frequency transform component transforms a plurality of input sensor 110 signals to a corresponding plurality of frequency-domain sensor signals. In one embodiment, the frequency transform component 120 employs the short-time Fourier transform:

Xm(ω,τ)=Σl=−∞∞xm(l)win(l−τ)e−jωl  Eq. (5)

where win(l) is a windowing function with win(l)=0, |l|>W, and τ is the time frame index. Similar definitions hold for Vm(ω, τ), Sn(ω, τ), x(ω, τ), v(ω, τ), s(ω, τ). Equations (3) and (4) become:

x(ω,τ)=H(ω,τ)s(ω,τ)+v(ω,τ),  Eq. (6)

y(ω,τ)=W(ω)x(ω,τ)  Eq. (7)

For each frequency ω, the complex-valued independent component analysis (ICA) procedure computes a matrix W(ω) such that the components of the output y(ω, τ) are mutually independent. This can be achieved, for example, through a complex version of the FastICA algorithm and/or a complex version of InfoMax along with a natural gradient procedure.
Assuming that the components of s(ω, τ) are mutually independent and that the microphone noise v(ω, τ) is zero, the separation matrix W(ω) selected by independent component analysis will be equal to the pseudo-inverse of the underlying mixing matrix H(ω) up to a permutation and scaling, namely, W(ω)=Λ(ω) P(ω) H+(ω) where Λ(ω)=diag(λ1, . . . , λN) is a diagonal matrix and P(ω) is a permutation matrix. Thus, y(ω, τ)=[λ1sΠω−1(1)(ω,τ), . . . , λNsΠω−1(N)(ω,τ)]T, where Πω(i)=j is the permutation mapping between the ith source and the jth separate signal at frequency ω. Moreover, denoting W+(ω)=H(ω)P−1(ω)Λ−1(ω)=[a:1 a:2 . . . a:N], it can be determined that a:n(ω)=h:Πω−1(n)(ω)/λn. The challenge in convolutive BSS is to determine P(ω) and Λ(ω) at each frequency.
The system 100 further includes a frequency domain blind source separation component 130 for computing estimates of a plurality of source signals yn(k) for each of a plurality of frequency bands based on the plurality of frequency-domain sensor signals transformed by the frequency transform component 120 and processing matrices computed independently for each of the plurality of frequency bands.
The system 100 additionally includes a maximum attenuation based de-permutation component 140 for obtaining modified permutations of the processing matrices based upon a maximum-magnitude based de-permutation scheme. In one embodiment, a permutation solving scheme applicable to distributed microphones can be employed in which magnitudes are taken into account. In this embodiment, methods based on source localization that utilize the phases of the columns a:n(ω) are not employed due to aliasing.
For ease of discussion, if u=[u1 u2 . . . UNu]T is a complex vector, then u′=[|u1| |u2| . . . |UNu|]T is the vector u with the phases of each element discarded. In this embodiment, in order to remove the scaling ambiguity that appears in the columns a′:n(ω), at each frequency, the magnitudes of the vectors a′:n(ω) are normalized to unit norm:




  
    
      
        
          
            
              
                a
                ^
              
              
                :
                n
              
              ′
            
            ⁡
            
              (
              ω
              )
            
          
          =
          
            
              
                
                  a
                  
                    :
                    n
                  
                  ′
                
                ⁡
                
                  (
                  ω
                  )
                
              
              
                
                
                  
                    a
                    
                      :
                      n
                    
                    ′
                  
                  ⁡
                  
                    (
                    ω
                    )
                  
                
                
              
            
            =
            
              
                
                  h
                  
                    :
                    
                      
                        ∏
                        ω
                        
                          -
                          1
                        
                      
                      ⁢
                      
                        (
                        n
                        )
                      
                    
                  
                  ′
                
                ⁡
                
                  (
                  ω
                  )
                
              
              
                
                
                  
                    h
                    
                      :
                      
                        
                          ∏
                          ω
                          
                            -
                            1
                          
                        
                        ⁢
                        
                          (
                          n
                          )
                        
                      
                    
                    ′
                  
                  ⁡
                  
                    (
                    ω
                    )
                  
                
                
              
            
          
        
        ,
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          8
          )
        
      
    
  




thus removing the scaling factor, which is constant over the entries of a fixed column a:n(ω). The resulting normalized column vectors reflect the relative energy attenuation experienced between source Πω−1(n) and the array of input sensors 110. Each source is identified by its own vector of relative attenuation values, which are independent of frequency and can be employed to solve the permutation ambiguity.

In the teleconferencing environment, the attenuation experienced by a speaker at the speaker's input sensor 110 will be significantly less than that experienced by the same speaker at the other participants' input sensor(s) 110. Accordingly, in one embodiment, a de-permutation approach that assigns the vector â′:n(ω) to the speaker identified by the largest element of â′:n(ω) is employed. Specifically, h′:j(ω)=Σi=1Npija′i(ω), where pij(ω)=1 if j=arg maxn â′:ni(ω) and pij(ω)=0 otherwise. Notice that with this approach (hereinafter referred to as “maximum-magnitude” or MM), if two columns exhibit a maximum at the same row, the synthesized signals will contain components from multiple source signals at a particular frequency. However a more detrimental swapping of the coefficients from different sources will not generally occur.
Optionally, the presence of segments during which the set of active sources (e.g., speakers) is a subset of the set of sources can be exploited to compute more accurate estimates of the frequency-domain mixing matrices. While blind techniques do not have knowledge of the on-times of the various sources, such information can be estimated from the separated signals.
While this embodiment is described with respect to modifying the processing matrices computed by the system 100, those skilled in the art will recognize that the source activity detection technique described herein can be employed with processing matrices of any suitable blind source separation system.
In order to exploit period(s) of source inactivity, initially it is noted that conventional independent component analysis-based convolutive blind source separation does not explicitly take noise associated with the input sensor 110 into account in its solution. Equation (6) can be rewritten to include F frames:

X(ω)=H(ω)S(ω)+V(ω),  Eq. (11)

where

X(ω)=[x(ω,1) . . . x(ω,F)],

S(ω)=[s(ω,1) . . . s(ω,F)],

V(ω)=[v(ω,1) . . . v(ω,F)].

An approximation factorization of input sensor 110 measurement X(ω) into matrices H(ω) and S(ω) is sought such that the squared error the input sensor noise ∥V(ω)∥2 is minimized. This is clearly trivial to achieve if there are no constraints on S(ω). For example, if there are N=M simultaneously active sources, then H(ω) can be set to equal I and S(ω) can be set to equal X(ω) to obtain zero error. However, if it is known that for some frames of S(ω) a subset of the sources are inactive, then the mixing matrix H(ω) becomes constrained. For example, if only sources n1 and n2 are active in frames τεA12, then the set of vectors {X(ω, τ): τεA12} determines the subspace spanned by the columns h:n1(ω) and h:n2(ω), while if only sources n1 and n3 are active in frames τεA13, then {X(ω, τ): τεA13} determines the subspace spanned by the columns h:n1(ω) and h:n3(ω). Intersecting these subspaces determines the column h:n1(ω) (up to scale). Thus this least squares approach can refine H(ω) using knowledge of the frames during which a subset of the sources are inactive.
Initially, an estimate of which speakers are inactive can be determined by applying source activity detection (SAD) to the independent component analysis outputs of Equation (7). In one embodiment, a simple energy-based threshold detection is employed. Averaging over the frequencies, the energy of separated speaker n during frame τ is computed as follows:




  
    
      
        
          
            E
            
              
                Y
                n
              
              ,
              τ
            
          
          =
          
            
              1
              
                2
                ⁢
                π
              
            
            ⁢
            
              
                ∫
                
                  -
                  π
                
                π
              
              ⁢
              
                
                  
                    
                    
                      
                        Y
                        n
                      
                      ⁡
                      
                        (
                        
                          ω
                          ,
                          τ
                        
                        )
                      
                    
                    
                  
                  2
                
                ⁢
                
                  d
                  w
                
              
            
          
        
        ,
      
    
    
      
        Eq
        .
        
          
        
        ⁢
        
          (
          12
          )
        
      
    
  




and then whether the source (e.g., speaker) is inactive during that frame is determined: speaker n during frame τ is inactive if EYn,τ≦δ, and, active otherwise, where δ is a SAD threshold parameter.

Continuing, an estimate of H(ω) as the pseudo-inverse of the ICA result (e.g., H(ω)=W(ω)+) is employed. Then S(ω) can be solved in Equation (11) to minimize ∥V(ω)∥2 under the constraint that Sn(ω, τ)=0 when source n is inactive in frame τ. Specifically, considering each column of S(ω) separately, let {tilde over (s)}(ω, τ) be the subvector of s(ω, τ) comprising only the active sources, and let {tilde over (H)}(ω) be the submatrix of H(ω) comprising only the corresponding columns. Then:

{tilde over (s)}(ω,τ)={tilde over (H)}+(ω)x(ω,τ)

minimizes the norm of v(ω, τ) under the speaker inactivity constraints. Performing this for all frames T minimizes the squared error ∥V(ω)∥2 under the inactivity constraints.

Continuing, S(ω) just determined can be fixed and re-solve for H(ω) in Equation (11) to minimize ∥V(ω)∥2 still further. Equation (11) can be transposed:

XT(ω)=ST(ω)HT(ω)+VT(ω),  Eq. (14)

and, as discussed previously, each column of HT(ω) can be solved separately: let hm:T be the mth column of HT(ω), let Xm(ω,:)T be the mth column of XT(ω), and let Vm(ω,:)T be the mth of VT(ω). Then the following minimizes the norm of Vm(ω,:)T:

hm:T=(ST)+(ω)Xm(ω,:)T 

Performing this for substantially all input sensors 110 m minimizes the squared error ∥V(ω)∥2 under the inactivity constraints.

Iterating this procedure (solving S(ω) for fixed H(ω)) and then solving H(ω) for fixed S(ω)) is a descent algorithm that minimizes the same metric ∥V(ω)∥2 in each step and hence it converges. This potentially improves the mixing matrix H(ω))=W+(ω) obtained by ICA, under the constraint that some of the sources are inactive in some of the frames. Note that if all sources are active in all frames, then the initial mixing matrix H(ω) determined from ICA remains unchanged by these iterations.
Once an improved mixing matrix (H(ω)) is obtained, an improved separation matrix W(ω)=H+(ω), and an improved source separation (7) are obtained, the newly separated sources can be used to re-estimate the inactive sources in each frame, and the procedure can be repeated until the squared error no longer decreases (e.g., within a threshold amount). Finally, in an outermost loop, the threshold δ can be gradually increased (becoming more aggressive in declaring sources to be inactive), until the squared error begins to rise sharply, indicating false negatives in the SAD.
While a post-processing procedure to minimize the norm of the error in the mixing model (11) has been described, a corresponding algorithm can also be employed to minimize the norm of an error in the separation model,

Y(ω)=W(ω)X(ω)+U(ω)

where U(ω) is the error under constraints that some components of Y(ω) are zero. Those skilled in the art will recognize that while the principles are similar, the resulting separation filters will be different.

Referring to FIG. 3, a least-squares post-processing method for obtaining an improved mixing matrix H(ω) is illustrated. At 300, an input X(ω) is received, for example, from the system 100. At 304, an initial H(ω) and SAD threshold parameter 6 are selected. At 308, given the input X(ω) and mixing matrix H(ω), source signal output are computed (Y(ω)=H+(ω)X(ω)) and source activity detection is employed using the SAD threshold parameter δ to find a set of frames for which source n is inactive ({Bn}).
Next, at 312, ω is initialized (e.g., set to zero). At 316, given the input X(ω), the set of frames for which source n is inactive {Bn} and mixing matrix H(ω), S(ω) is found to minimize ∥V(ω)∥2. Similarly, at 320, given the input X(ω), the set of frames for which source n is inactive {Bn} and S(ω), H(ω) is found to minimize ∥V(ω)∥2.
At 324, a determination is made as to whether ∥V(ω)∥2 has converged. If the determination at 324 is NO, processing continues at 316. If the determination at 324 is YES, at 328, ω is incremented (e.g., to continue to the next frequency band).
At 332, a determination is made as to whether ω=π. If the determination at 332 is NO, processing continues at 316. If the determination at 332 is YES, at 336, the squared error (∥V(ω)∥2) is summed across τ and ω. At 340, a determination is made as to whether the summed squared error has converged. If the determination at 340 is NO, processing continues at 308.
If the determination at 340 is YES, at 344, a determination is made as to whether the summed squared error is greater than a noise threshold. If the determination at 344 is NO, at 348, the SAD threshold parameter (δ) is increased and processing continues at 308. If the determination at 344 is YES, the modified mixing matrix H(ω) is provided as an output.
Referring to FIG. 4, a least-squares post-processing method for obtaining an improved separation matrix W(ω) is illustrated. At 400, an input X(ω) is received, for example, from the system 100. At 404, an initial W(ω) and SAD threshold parameter δ are selected. At 408, given the input X(ω) and separation matrix W(ω), source signal output are computed (Y(ω)=W(ω)X(ω)) and source activity detection is employed using the SAD threshold parameter δ to find a set of frames for which source n is inactive ({Bn}).
Next, at 412, ω is initialized (e.g., set to zero). At 416, given the input X(ω), the set of frames for which source n is inactive {Bn} and separation matrix W(ω), S(ω) is found to minimize error in the separation model ∥U(ω)∥2. Similarly, at 420, given the input X(ω), the set of frames for which source n is inactive {Bn} and S(ω), W(ω) is found to minimize ∥U(ω)∥2.
At 424, a determination is made as to whether ∥U(ω)∥2 has converged. If the determination at 424 is NO, processing continues at 416. If the determination at 424 is YES, at 428, ω is incremented.
At 432, a determination is made as to whether ω=π. If the determination at 432 is NO, processing continues at 416. If the determination at 432 is YES, at 436, the squared error (∥U(ω)∥2) is summed across τ and ω. At 440, a determination is made as to whether the summed squared error has converged. If the determination at 440 is NO, processing continues at 408.
If the determination at 440 is YES, at 444, a determination is made as to whether the summed squared error is greater than a noise threshold. If the determination at 444 is NO, at 448, the SAD threshold parameter (δ) is increased and processing continues at 408. If the determination at 444 is YES, the modified separation matrix W(ω) is provided as an output.
Turning to FIG. 5, the system 100 can be a component of a teleconferencing system 500. The system 100 is located physically near input sensors 110 and receives signals xm(k) from the input sensors 110. The system 100 provides estimated source signals ym(k) to an output system 510. For example, the source signals ym(k) can be provided via the Internet, a voice-over-IP protocol, a proprietary protocol and the like. In this example, separation of the source signals is performed by the system 100 prior to transmission to the output system 510.
FIG. 6 illustrates a teleconferencing system 600 in which the system 100 is provided as a service (e.g., web service). The system 100 receives signals xm(k) from the input sensors 110 via a communication framework 610 (e.g., the Internet). The system 100 provides estimated source signals ym(k) to an output system 620, for example, via the communication framework 610.
FIG. 7 illustrates a teleconferencing system 700 in which the system 100 receives signals xm(k) from the input sensors 110 via a communication framework 710 (e.g., the Internet, intranet, etc.). The system 100 provides estimated source signals ym(k) to an output system 720.
FIG. 8 illustrates a method of blindly separating a plurality of source signals. While, for purposes of simplicity of explanation, the one or more methodologies shown herein, for example, in the form of a flow chart or flow diagram, are shown and described as a series of acts, it is to be understood and appreciated that the methodologies are not limited by the order of acts, as some acts may, in accordance therewith, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all acts illustrated in a methodology may be required for a novel implementation.
At 800, a plurality of input sensor signals is received. At 802, the input sensor signals are transformed to a corresponding plurality of frequency-domain sensor signals (e.g., via the short-time Fourier transform). At 804, an estimate of the plurality of source signals for each of a plurality of frequency bands is computed based upon the plurality of frequency-domain sensor signals. Further, processing matrices are computed independently for each of the plurality of frequency bands.
At 806, modified permutations of the processing matrices are obtained based upon a maximum magnitude based de-permutation scheme. At 808, estimates of the plurality of source signals is provided based upon the plurality of frequency domain source signals and the modified permutations of the processing matrices.
FIG. 9 illustrates another method of blindly separating a plurality of source signals. At 900, processing matrices are received. At 902, source activity information is determined specifying which of two or more sources are active at a plurality of times. At 904, the processing matrices are modified based upon a least-squares estimation of the processing matrices and source activity information. At 906, an estimate of source signals is provided based upon the modified processing matrices.
As used in this application, the terms “component” and “system” are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical and/or magnetic storage medium), an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers.
Referring now to FIG. 10, there is illustrated a block diagram of a computing system 1000 operable to execute the disclosed systems and methods. In order to provide additional context for various aspects thereof, FIG. 10 and the following discussion are intended to provide a brief, general description of a suitable computing system 1000 in which the various aspects can be implemented. While the description above is in the general context of computer-executable instructions that may run on one or more computers, those skilled in the art will recognize that a novel embodiment also can be implemented in combination with other program modules and/or as a combination of hardware and software.
Generally, program modules include routines, programs, components, data structures, etc., that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the inventive methods can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, hand-held computing devices, microprocessor-based or programmable consumer electronics, and the like, each of which can be operatively coupled to one or more associated devices.
The illustrated aspects may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.
A computer typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer and includes volatile and non-volatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media can comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital video disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer.
With reference again to FIG. 10, the exemplary computing system 1000 for implementing various aspects includes a computer 1002, the computer 1002 including a processing unit 1004, a system memory 1006 and a system bus 1008. The system bus 1008 provides an interface for system components including, but not limited to, the system memory 1006 to the processing unit 1004. The processing unit 1004 can be any of various commercially available processors. Dual microprocessors and other multi-processor architectures may also be employed as the processing unit 1004.
The system bus 1008 can be any of several types of bus structure that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. The system memory 1006 includes read-only memory (ROM) 1010 and random access memory (RAM) 1012. A basic input/output system (BIOS) is stored in the read-only memory 1010 such as ROM, EPROM, EEPROM, which BIOS contains the basic routines that help to transfer information between elements within the computer 1002, such as during start-up. The RAM 1012 can also include a high-speed RAM such as static RAM for caching data.
The computer 1002 further includes an internal hard disk drive (HDD) 1014 (e.g., EIDE, SATA), which internal hard disk drive 1014 may also be configured for external use in a suitable chassis (not shown), a magnetic floppy disk drive (FDD) 1016, (e.g., to read from or write to a removable diskette 1018) and an optical disk drive 1020, (e.g., reading a CD-ROM disk 1022 or, to read from or write to other high capacity optical media such as the DVD). The internal hard disk drive 1014, magnetic disk drive 1016 and optical disk drive 1020 can be connected to the system bus 1008 by a hard disk drive interface 1024, a magnetic disk drive interface 1026 and an optical drive interface 1028, respectively. The interface 1024 for external drive implementations includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
The drives and their associated computer-readable media provide nonvolatile storage of data, data structures, computer-executable instructions, and so forth. For the computer 1002, the drives and media accommodate the storage of any data in a suitable digital format. Although the description of computer-readable media above refers to a HDD, a removable magnetic diskette, and a removable optical media such as a CD or DVD, it should be appreciated by those skilled in the art that other types of media which are readable by a computer, such as zip drives, magnetic cassettes, flash memory cards, cartridges, and the like, may also be used in the exemplary operating environment, and further, that any such media may contain computer-executable instructions for performing novel methods of the disclosed architecture.
A number of program modules can be stored in the drives and RAM 1012, including an operating system 1030, one or more application programs 1032, other program modules 1034 and program data 1036. All or portions of the operating system, applications, modules, and/or data can also be cached in the RAM 1012. It is to be appreciated that the disclosed architecture can be implemented with various commercially available operating systems or combinations of operating systems.
A user can enter commands and information into the computer 1002 through one or more wired/wireless input devices, for example, a keyboard 1038 and a pointing device, such as a mouse 1040. Other input devices (not shown) may include an IR remote control, a joystick, a game pad, a stylus pen, touch screen, or the like. These and other input devices are often connected to the processing unit 1004 through an input device interface 1042 that is coupled to the system bus 1008, but can be connected by other interfaces, such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, etc.
A monitor 1044 or other type of display device is also connected to the system bus 1008 via an interface, such as a video adapter 1046. In addition to the monitor 1044, a computer typically includes other peripheral output devices (not shown), such as speakers, printers, etc.
The computer 1002 may operate in a networked environment using logical connections via wired and/or wireless communications to one or more remote computers, such as a remote computer(s) 1048. The remote computer(s) 1048 can be a workstation, a server computer, a router, a personal computer, portable computer, microprocessor-based entertainment appliance, a peer device or other common network node, and typically includes many or all of the elements described relative to the computer 1002, although, for purposes of brevity, only a memory/storage device 1050 is illustrated. The logical connections depicted include wired/wireless connectivity to a local area network (LAN) 1052 and/or larger networks, for example, a wide area network (WAN) 1054. Such LAN and WAN networking environments are commonplace in offices and companies, and facilitate enterprise-wide computer networks, such as intranets, all of which may connect to a global communications network, for example, the Internet.
When used in a LAN networking environment, the computer 1002 is connected to the LAN 1052 through a wired and/or wireless communication network interface or adapter 1056. The adapter 1056 may facilitate wired or wireless communication to the LAN 1052, which may also include a wireless access point disposed thereon for communicating with the wireless adapter 1056.
When used in a WAN networking environment, the computer 1002 can include a modem 1058, or is connected to a communications server on the WAN 1054, or has other means for establishing communications over the WAN 1054, such as by way of the Internet. The modem 1058, which can be internal or external and a wired or wireless device, is connected to the system bus 1008 via the serial port interface 1042. In a networked environment, program modules depicted relative to the computer 1002, or portions thereof, can be stored in the remote memory/storage device 1050. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.
The computer 1002 is operable to communicate with any wireless devices or entities operatively disposed in wireless communication, for example, a printer, scanner, desktop and/or portable computer, portable data assistant, communications satellite, any piece of equipment or location associated with a wirelessly detectable tag (e.g., a kiosk, news stand, restroom), and telephone. This includes at least Wi-Fi and BluetoothTM wireless technologies. Thus, the communication can be a predefined structure as with a conventional network or simply an ad hoc communication between at least two devices.
Wi-Fi, or Wireless Fidelity, allows connection to the Internet from a couch at home, a bed in a hotel room, or a conference room at work, without wires. Wi-Fi is a wireless technology similar to that used in a cell phone that enables such devices, for example, computers, to send and receive data indoors and out; anywhere within the range of a base station. Wi-Fi networks use radio technologies called IEEE 802.11x (a, b, g, etc.) to provide secure, reliable, fast wireless connectivity. A Wi-Fi network can be used to connect computers to each other, to the Internet, and to wired networks (which use IEEE 802.3 or Ethernet).
Wi-Fi networks can operate in the unlicensed 2.4 and 5 GHz radio bands. IEEE 802.11 applies to generally to wireless LANs and provides 1 or 2 Mbps transmission in the 2.4 GHz band using either frequency hopping spread spectrum (FHSS) or direct sequence spread spectrum (DSSS). IEEE 802.11a is an extension to IEEE 802.11 that applies to wireless LANs and provides up to 54 Mbps in the 5 GHz band. IEEE 802.11a uses an orthogonal frequency division multiplexing (OFDM) encoding scheme rather than FHSS or DSSS. IEEE 802.11b (also referred to as 802.11 High Rate DSSS or Wi-Fi) is an extension to 802.11 that applies to wireless LANs and provides 11 Mbps transmission (with a fallback to 5.5, 2 and 1 Mbps) in the 2.4 GHz band. IEEE 802.11g applies to wireless LANs and provides 20+ Mbps in the 2.4 GHz band. Products can contain more than one band (e.g., dual band), so the networks can provide real-world performance similar to the basic 10BaseT wired Ethernet networks used in many offices.
Referring briefly to FIGS. 1 and 10, audio source signals can be received by an input sensor 110 (e.g., microphone) and forwarded to the frequency transform component 120 via the bus 1008 and processing unit 1004.
Referring now to FIG. 11, there is illustrated a schematic block diagram of an exemplary computing environment 1100 that facilitates audio blind source separation. The environment 1100 includes one or more client(s) 1102. The client(s) 1102 can be hardware and/or software (e.g., threads, processes, computing devices). The client(s) 1102 can house cookie(s) and/or associated contextual information, for example.
The environment 1100 also includes one or more server(s) 1104. The server(s) 1104 can also be hardware and/or software (e.g., threads, processes, computing devices). The servers 1104 can house threads to perform transformations by employing the architecture, for example. One possible communication between a client 1102 and a server 1104 can be in the form of a data packet adapted to be transmitted between two or more computer processes. The data packet may include a cookie and/or associated contextual information, for example. The environment 1100 includes a communication framework 1106 (e.g., a global communication network such as the Internet) that can be employed to facilitate communications between the client(s) 1102 and the server(s) 1104.
Communications can be facilitated via a wired (including optical fiber) and/or wireless technology. The client(s) 1002 are operatively connected to one or more client data store(s) 1008 that can be employed to store information local to the client(s) 1002 (e.g., cookie(s) and/or associated contextual information). Similarly, the server(s) 1004 are operatively connected to one or more server data store(s) 1010 that can be employed to store information local to the servers 1004.
What has been described above includes examples of the disclosed architecture. It is, of course, not possible to describe every conceivable combination of components and/or methodologies, but one of ordinary skill in the art may recognize that many further combinations and permutations are possible. Accordingly, the novel architecture is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.

## Claims

1. A computer-implemented audio blind source separation system, comprising:
a frequency transform component for transforming a plurality of sensor signals to a corresponding plurality of frequency domain sensor signals, the plurality of sensor signals received from a plurality of input sensors; and,
a frequency domain blind source separation component for estimating a plurality of source signals for each of a plurality of frequency bands based on the plurality of frequency domain sensor signals and processing matrices computed independently for each of the plurality of frequency bands; and
a maximum attenuation based de-permutation component for obtaining modified permutations of the processing matrices based upon a maximum-magnitude based de-permutation scheme,
wherein the system provides estimates of the plurality of source signals based on the plurality of frequency domain sensor signals and the modified permutations of the processing matrices.

2. The system of claim 1, wherein the frequency domain blind source separation component further employs independent component analysis to compute the processing matrices.

3. The system of claim 1, wherein the processing matrices comprise mixing matrices.

4. The system of claim 1, wherein the processing matrices comprise separation matrices.

5. The system of claim 1, wherein the system further employs source activity detection.

6. The system of claim 5, wherein the system further modifies the processing matrices based upon the source activity detection and a least squares estimation of the plurality of source signals.

7. The system of claim 6, wherein the system modifies the processing matrices more than once based upon the source activity detection and the least squares estimation of the plurality of source signals.

8. The system of claim 1, wherein the frequency transform component employs a short-time Fourier transform for transforming the plurality of sensor signals to the corresponding plurality of frequency domain sensor signals.

9. The system of claim 1, wherein a quantity of sources is less than or equal to a quantity of input sensors.

10. The system of claim 1, wherein at least one of the plurality of input sensors is an embedded microphone.

11. A computer-implemented method of blindly separating a plurality of source signals, comprising:
receiving a plurality of input sensor signals;
transforming the input sensor signals to a corresponding plurality of frequency-domain sensor signals using a short-time Fourier transform; and
computing estimates of the plurality of source signals for each of a plurality of frequency bands based upon the plurality of frequency-domain sensor signals and processing matrices computed independently for each of the plurality of frequency bands; and
obtaining modified permutations of the processing matrices based upon a maximum magnitude based de-permutation scheme.

12. The method of claim 11, wherein the processing matrices comprise separation matrices.

13. The method of claim 11, wherein the processing matrices comprise mixing matrices.

14. The method of claim 11, further comprising providing estimates of the plurality of source signals based on the plurality of frequency domain sensor signals and the modified permutations of the processing matrices.

15. A computer-implemented method of blindly separating a plurality of source signals, comprising:
determining source activity information specifying which two or more sources are active at a plurality of times; and,
modifying processing matrices based upon a least squares estimation of the processing matrices and the source activity information.

16. The method of claim 15, further comprising providing an estimate the source signals based upon the modified processing matrices.

17. The method of claim 15, wherein the processing matrices comprise separation matrices.

18. The method of claim 15, wherein the processing matrices comprise mixing matrices.

19. The method of claim 15, wherein modifying the processing matrices based on source activity information is performed more than once.

20. The method of claim 15, wherein the processing matrices are received from an audio blind source separation system.