Patent Publication Number: US-7912232-B2

Title: Method and apparatus for removing or isolating voice or instruments on stereo recordings

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims priority to U.S. provisional patent application Ser. Nos. 60/722,542, filed Sep. 30, 2005 and 60/738,366 filed Nov. 18, 2005, each of which is incorporated herein in its entirety by this reference thereto. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Technical Field 
     The invention relates to the processing of audio signals. More particularly, the invention relates to a method and apparatus for removing or isolating voice or instruments on stereo recordings, and further relates to a training-based method and apparatus for removing or isolating voice or instruments on stereo recordings. 
     2. Description of the Prior Art 
     There are many situations in which we have a stereo recording of many voice or music sources mixed together, but we wish to listen to only one of those sources. In music, we may want to remove the lead vocals to perform karaoke, so that a new singer can seem to sing with the rest of the instruments or voices on the recording. In speech, we may have a recording that contains many independent or quasi-independent voices, and we wish to listen to only one. Separating this one voice out has been called the cocktail party problem. 
     Existing systems that try to solve these problems suffer from several problems:
         There is much musical noise in the output, which sounds like beeps and tones added to the desired sound.   Sources that are much louder in one channel than the other are difficult to separate, and may not even be separable.   Some systems require that sources be independent, i.e. random relative to each other, and they thus perform poorly on music because musicians play together.   Some systems produce monophonic output, which is perceptually less desirable than stereo output. By producing monophonic output, they discard panning (loudness) and phase (delay) information between channels. Some systems discard both, some discard one, and some discard neither.   Some systems do not use all of the information between the two stereo channels, preventing them from achieving the best results.       

     We have several reasons to extract any voice or instrument on a recording. For example, we may then listen to it separately, re-mix or re-pan it on another recording, or analyze it using speech or pitch recognition software. 
     In the source separation community, the demixing of N sources from two channel (stereo) input is termed underdetermined source separation when N&gt;2. 
     Underdetermined sound source separation systems perform four steps in general:
         front end processing,   mixing parameter estimation,   demixing, and   front end inversion.       

     The invention herein disclosed focuses primarily on the demixing stage, which occurs after the mixing parameters are known. 
     SUMMARY OF THE INVENTION 
     A first embodiment of the invention provides a method and apparatus for attenuating or amplifying voice or other signals present on a stereo audio recording that uses frequency domain techniques to calculate a time- and frequency-dependent gain factor, based on the input panning and phase information in the recording, and optionally outputs the original recording&#39;s phase and/or panning information. 
     A further embodiment of the invention provides a method and apparatus for attenuating or amplifying voice or other signals present on a stereo audio recording that uses training-based frequency domain techniques to calculate a time- and frequency-dependent gain factor, based on the input panning, phase offset, and magnitude information in the recording, and optionally outputs the original recording&#39;s phase and/or panning information 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram for a spatial windowing system with N sources according to the invention; 
         FIG. 2  is a block diagram for a spatial windowing system, showing spatial windowing for source i according to the invention; 
         FIG. 3  shows the output phase for a weighted subtraction system when Θ i =π/4 according to the invention; 
         FIG. 4  shows the ƒ final  function for the “kill others” system according to the invention; 
         FIG. 5  shows the ƒ final  function for the “kill lots” system according to the invention; 
         FIG. 6  shows the ƒ final  function for the “binary ellipse” system according to the invention; 
         FIG. 7  shows the ƒ final  function for the “inverse” system according to the invention; and 
         FIG. 8  shows source  2  relative strength in combination number  5  (which contains sources  1  and  2 ) in frequency band  6  according to the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     A first embodiment of the invention provides a method and apparatus for attenuating or amplifying voice or other signals present on a stereo audio recording that uses frequency domain techniques to calculate a time- and frequency-dependent gain factor, based on the input panning and phase information in the recording, and optionally outputs the original recording&#39;s phase and/or panning information. 
     A further embodiment of the invention provides a method and apparatus for attenuating or amplifying voice or other signals present on a stereo audio recording that uses training-based frequency-band specific frequency domain techniques to calculate a time- and frequency-dependent gain factor, based on the input panning, phase offset, and magnitude information in the recording, and optionally outputs the original recording&#39;s phase and/or panning information. 
     The discussion herein commences with a description of the first embodiment of the invention, as outlined above, and then proceeds with a discussion of the further embodiment. It will be appreciated that, while the invention is discussed herein in connection with stereo audio recordings, that this discussion is for purposes of example only and is not intended to be limiting. Thus, a person skilled in the art will understand that the invention may be practiced with audio other than recorded audio and that the invention may be adapted for use with multi-channel schemes other than stereo. 
     Attenuating or Amplifying Voice of Other Signals Present on a Stereo Audio Recording 
     A key aspect of the invention is the recognition by the inventor that input data points that appear to be coming from the direction of one source are assigned to that source, with a lesser fraction of the energy assigned as the input data point&#39;s direction varies from that of the source. It should be noted that it is not true in 100% of cases that a lesser fraction of the energy assigned as the input data point&#39;s direction varies from that of the sources. This is an intuitive way to describe what generally happens in these systems. 
     This may be viewed as a nonlinear system that operates as follows (see  FIG. 1 ):
     1. Take a stereo audio signal  14   a ,  14   b  as input.   2. Perform a complex spectrogram (Short Time Fourier Transform, or STFT) decomposition  15  on each channel, obtaining both the magnitude and phase for each point (frame t and frequency ω). Call the complex-valued left and right channel spectrograms X 1 (ω, t) and X 2 (ω, t), respectively.   3. Estimate (detect  16 ) the panning parameter {circumflex over (Θ)}=arc tan(|X 2 /X 1 |) and the phase offset between channels   

             ϕ   =     ∠   ⁡     (       X   1       X   2       )             
at each spectrogram point. Using these data, and the fact that we may obtain delay values from phase offset values via δ=φ/ω where ω is the radian frequency of the STFT bin in question, estimate the mixing parameters  17  for all sources by applying any variety of techniques known to those skilled in the art. The mixing parameters may also be specified by the user.
     4. Based on the detected {circumflex over (Θ)} and φ for each spectrogram point and the mixing parameters, assign some fraction of the energy in that spectrogram point to each source i. The illustrations and terminology we provide use {circumflex over (Θ)} and φ, although in implementation it is equally valid to use {circumflex over (Θ)} and δ, with δ obtained using the relation above.   

     For each source, assign energy by multiplying the input magnitude STFT representations by a gain factor for each STFT time and frequency, thus creating two new STFT representations, i.e. one for each of the two stereo channels.
     5. For each source estimate spectrogram, use either the original input phase, or a special phase function described below. Also, re-pan sources using their original panning data, or make both spectrogram magnitudes the same. Both steps are described below.   6. Now there are two output spectrograms for each source, for a total of 2N.   7. Invert the spectrograms  18  to obtain the final output of N time domain stereo source signal estimates.   

     Note that the fourth step is a key feature of the novel system, the step that substantially defines the output. It is also the step that has been implemented in very different ways in different systems, and we presently explore it in more depth. 
     We may use the term “spatial window” to describe the function in step four that assigns a time- and frequency-dependent gain factor. Because the spatial window assigns a fraction of the energy in a spectrogram point to a source based on the panning parameter estimate {circumflex over (Θ)} and phase estimate φ, we may think of it as multiplying the input spectrograms by a masking function which is a function of {circumflex over (Θ)} and φ. There are N sources, each with such a function, so we may notate the window for the i th  source as ƒ i ({circumflex over (Θ)}, φ. Because this is a function of two variables, and there is one function for each source, we may view the spatial windows for a given system as a set of surfaces over two dimensions. The functions may also vary with frequency, thus creating additional sets of surfaces. In general, it is desirable for ƒ i  to include φ information because it has been shown that phase information may indicate which sources are sounding most loudly (see, for example, Aaron S. Master,  Stereo Music Source Separation via Bayesian Modeling . Ph.D. Dissertation, Stanford University (2006) available from http://www-ccrma.stanford.edu/˜asmaster/, hereinafter “Master”). 
     A flowchart for a typical spatial windowing system is shown in  FIG. 1 , where the large multiplication symbol or flowchart summing junction symbol  10  implies multiplying each of the two inputs  11   a ,  11   b  on the left by each of the N spatial window function values  12   a - 12   n  entering from above, thus generating 2N outputs  13   a - 13   n.    
     Such stereo spatially windowed output is not the only type of output that may be produced by spatial windowing systems. Other examples include:
         Just using the channel in which the targeted source is louder while ignoring the other one (see, for example, Nicoleta Roman, DeLiang Wang, and Guy J. Brown,  Speech segregation based on sound localization , Journal of the Acoustical Society of America, 114(4):2236-2252 (October 2003), hereinafter “Roman et al”);   Combining both output channels into a single source estimate (see, for example, Ozgur Yilmaz and Scott Rickard,  Blind separation of speech mixtures via time - frequency masking , IEEE Transactions on Signal Processing, 52(7):1830-1847 (July 20043), hereinafter “Yilmaz et al”); or   Re-panning the output to be located in the center (see, for example, J-K Lin, D. G. Grier, and J. D. Cowan,  Feature extraction approach to blind source separation , IEEE Workshop on Neural Networks for Signal Processing (NNSP), pages 398-405, Amelia Island Plantation, Fla., USA (September 1997)).       

     It is also useful, for purposes of explaining the current system, to think of the input in terms of the following representation, where we use 
     
       
         
           
             
               
                 
                   U 
                   = 
                   
                     
                       
                         
                            
                           
                             X 
                             1 
                           
                            
                         
                         2 
                       
                       + 
                       
                         
                            
                           
                             X 
                             2 
                           
                            
                         
                         2 
                       
                     
                   
                 
               
               
                 
                     
                 
               
             
             
               
                 
                   
                     X 
                     1 
                   
                   = 
                   
                     
                       
                         
                           
                              
                             
                               X 
                               1 
                             
                              
                           
                           2 
                         
                         + 
                         
                           
                              
                             
                               X 
                               2 
                             
                              
                           
                           2 
                         
                       
                     
                     ⁢ 
                     
                       ⅇ 
                       
                         j∠X 
                         1 
                       
                     
                     ⁢ 
                     
                       cos 
                       ⁡ 
                       
                         ( 
                         
                           Θ 
                           ^ 
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
             
               
                 
                   
                       
                   
                   ⁢ 
                   
                     = 
                     
                       U 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         ⅇ 
                         
                           j∠X 
                           1 
                         
                       
                       ⁢ 
                       
                         cos 
                         ⁡ 
                         
                           ( 
                           
                             Θ 
                             ^ 
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
             
               
                 
                   
                     X 
                     2 
                   
                   = 
                   
                     
                       
                         
                           
                              
                             
                               X 
                               1 
                             
                              
                           
                           2 
                         
                         + 
                         
                           
                              
                             
                               X 
                               2 
                             
                              
                           
                           2 
                         
                       
                     
                     ⁢ 
                     
                       ⅇ 
                       
                         j 
                         ⁡ 
                         
                           ( 
                           
                             ϕ 
                             + 
                             
                               ∠ 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 X 
                                 1 
                               
                             
                           
                           ) 
                         
                       
                     
                     ⁢ 
                     
                       sin 
                       ⁡ 
                       
                         ( 
                         
                           Θ 
                           ^ 
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
             
               
                 
                   
                       
                   
                   ⁢ 
                   
                     = 
                     
                       U 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         ⅇ 
                         
                           j 
                           ⁡ 
                           
                             ( 
                             
                               ϕ 
                               + 
                               
                                 ∠ 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 
                                   X 
                                   1 
                                 
                               
                             
                             ) 
                           
                         
                       
                       ⁢ 
                       
                         sin 
                         ⁡ 
                         
                           ( 
                           
                             Θ 
                             ^ 
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     We see then, that we represent each spectrogram sample in terms of its power, U, the detected panning parameter {circumflex over (Θ)}, the phase in the left channel ∠X 1 , and the phase offset between channels, φ. Given such a representation, spatial windowing may become more intuitive. The window may be seen as a simple scalar multiple applied to U, based on the values of φ and {circumflex over (Θ)}, with all other information in the input signal preserved. Such an interpretation is shown in  FIG. 2 , which also considers only one particular spatial window i, instead of N of them. This conceptualization is used in the current system, as we express the output in terms of the ƒ i  for each source multiplied by U. 
     Source Isolation vs. Elimination 
     Before proceeding further, we note that thus far we have assumed that the goal of each spatial window ƒ i  in the demixing system is to isolate a source. In other contexts, the goal may be the opposite, i.e. to suppress a source. It is possible to make a trivial conversion from an isolation mask to an elimination mask, and vice versa, by taking
 
(elimination mask)=1−(isolation mask)
 
or, more formally,
 
ƒ elimination (φ,{circumflex over (Θ)})=1−ƒ isolation (φ,{circumflex over (Θ)})
 
after normalizing the elimination mask to make its maximum value unity. We observe this technique in, for example, Jean Laroche,  Process for removing voice from stereo recordings  (June 2002); and Carlos Avendano,  Frequency domain source identification and manipulation in stereo mixes for enhancement, suppression, and re - panning applications , IEEE ASSP Workshop on the Applications of Signal Processing to Audio and Acoustics, pages 55-58, New Paltz, N.Y., USA (October 2003).
 
     This approach may, however, lead to undesired results. This is because a source isolation system might err on the side of including too few data points to prevent crosstalk errors from other sources. A source elimination system, on the other hand, might err on the side of eliminating too many data points, to be sure that no part of the eliminated source is audible. A system that aims to separate all sources equally well does not have the luxury of erring on one side or the other. 
     One other option in converting source elimination masks to isolation masks is to add up all the elimination masks for all sources except the target source. Then, applying this sum mask would leave behind only the target source. We use a variation on this approach in addition to other approaches below. 
     DESCRIPTION OF THE SPECIFIC EMBODIMENTS 
     We now describe the method for obtaining the time- and frequency-dependent gain factors used in the system, and for obtaining the output phase and panning values. We begin the discussion by describing how to choose gain factors to eliminate a source, and next describe the output phase and panning options. We then describe additional functions that produce other gain factors. 
     To establish the basis for the presently preferred embodiment, we assume that the sources are mixed using delay and scale parameters. This means that each source is scaled, i.e. made louder in one channel than the other, or the same in both channels, and delayed, i.e. sounds earlier in one channel than the other, or at the same time. Even if this assumption does not fully hold, as in the case of reverberation, the system still functions because the assumption approximately holds. Recalling the DFT pair δ(n−n 0 ) exp(−jωn 0 ), we may write such mixing as:
 
 X   1 =cos(Θ 1 ) S   1 +cos(Θ 2 ) S   2 + . . . +cos(Θ N ) s   N  
 
 X   2 =sin(Θ 1 ) S   1   e   −jωδ     1   +sin(Θ 2 ) S   2   e   −jωδ     2   + . . . +sin(Θ N ) S   N   e   −jωδ     N     (5)
 
where Θ i  is the panning parameter for source i, with full left being 0 and full right being π/2, and δ i  is the delay parameter for source i. If a source is not panned using delay information, then its corresponding δ i  is zero. Now, we may eliminate a source in DTFT space by a normalized weighted and delayed subtraction process. We use a system with output Y n :
 
 Y   n (ω, t )=sin(Θ i ) X   1 (ω, t )−cos(Θ i ) e   +jωδ     i     X   2 (ω, t ).  (6)
 
     It may be shown using trigonometry that this is
 
 Y   n (ω, t )=√{square root over (| X   1 | 2   +X   2 | 2 )}√{square root over (sin 2 (Θ+Θ i )−0.5 sin(2Θ)sin(2Θ i )(1+cos(φ−ωδ i )).)}{square root over (sin 2 (Θ+Θ i )−0.5 sin(2Θ)sin(2Θ i )(1+cos(φ−ωδ i )).)}{square root over (sin 2 (Θ+Θ i )−0.5 sin(2Θ)sin(2Θ i )(1+cos(φ−ωδ i )).)}{square root over (sin 2 (Θ+Θ i )−0.5 sin(2Θ)sin(2Θ i )(1+cos(φ−ωδ i )).)}  (7)
 
     Recalling our conceptualization of spatial windowing in  FIG. 2 , where the output Y n  should be expressed as a fraction of the input magnitude U, this leads to:
 
ƒ i ({circumflex over (Θ)},φ)=√{square root over (sin 2 (Θ+Θ i )−0.5 sin(2Θ)sin(2Θ i (1+cos(φ−ωδ i )).)}{square root over (sin 2 (Θ+Θ i )−0.5 sin(2Θ)sin(2Θ i (1+cos(φ−ωδ i )).)}{square root over (sin 2 (Θ+Θ i )−0.5 sin(2Θ)sin(2Θ i (1+cos(φ−ωδ i )).)}  (8)
 
     Now that we have this basic function for eliminating a source, we may apply it in a variety of ways. We discuss this below. We still use Y n  to refer to normalized weighted subtraction. 
     Output Phase for Weighted Subtraction 
     We presently consider the phase of the two output channels. In other sound source separation systems, the output phase for each of the two channels is copied from the inputs. This is indeed an option. Another option is to choose the phase corresponding to the phase when we eliminate a particular source using a normalized weighted subtraction obtained in Y n . This may be desirable because it makes the corresponding source perceptually less noticeable in the output. The phase is expressed simply as:
 
∠ out =∠(sin(Θ i ) X   1 (ω, t )−cos(Θ i ) e   +jωδ     i     X   2 (ω, t ))  (9)
 
     Imitating the ƒ i  plots above, we plot this as a function of Θ and φ in  FIG. 3 , for the case when Θ i =π/4. 
     We again note that the preceding mathematical setup and earlier conceptualization of spatial windowing in  FIG. 2  allows us to use this or other phases in a system of our own design because we have separated the output magnitude ƒ i  from the output phase. We allow both types of phase to be used in the current system. 
     Applying Phase, Panning, and ƒ i  Options Independently 
     We now see that we have three areas in which to choose options for the current system:
         ƒ i ;   output phase; and   output panning.       

     These may be used independently, as shown in  FIG. 2 . We now describe several ƒ i  options allowed by the current system.
         A system which uses ƒ final =(ƒ i ) p , where the power p is any real number, chosen to create more attenuation of the source. This ƒ final  value may be used in all further options below.   A system which applies normalized weighted subtraction to all sources except the target source, by taking the minimum of the individual spatial window functions ƒ i  for each, and may be written ƒ final =min (ƒ i )∀i≠target, where “target” is the source we wish to preserve. This method termed “KO” because it Kills Other sources. A corresponding ƒ final  for a center-right target source  3  with interferer sources  1  (strong left),  2  (center left), and  4  (strong right) is shown in  FIG. 4 , where the gain factor is plotted on a dB scale   A system which kills as many sources as possible in an ellipse around the target source in (Θ, φ) space. This is similar to the KO approach, but all sources on the ellipse are eliminated using corresponding ƒ i , even though they may not be present in the original mix. All points outside the ellipse receive a masking value of zero. This is called “KL” for kill lots of sources. The net effect of this method is a spatial window that isolates the source, but the functions that constitute the window each correspond to the artifact free normalized weighted subtraction algorithm. The corresponding ƒ final  for a target source  3  is shown in  FIG. 5 . Note that 28 sources on the edge of the ellipse were used to approximate the elimination of all sources on the edge of the ellipse. This was only done to save computational expense, and in practice any number of sources may be placed on the ellipse. Further, the ellipse shape may be generalized to include any arbitrary closed shape around the mixing parameters for a desired source. The important point is that all points on the border use an ƒ i  corresponding to the basic ƒ i  shape.   A system the uses the same ellipse as that just mentioned, but passes all points in that ellipse at unity. This is called the binary ellipse, and is intended as a comparison with the “kill lots” system, though we also introduce it as a novel option presently. The corresponding ƒ final  for the example target source  3  is shown in  FIG. 6 .   A system that simply uses ƒ final =(1−ƒ i ) as the spatial window, where ƒ i  is the masking function to eliminate the target source using normalized weighted subtraction. We call this the “inverse” system and the corresponding ƒ final  for the example target source  3  is shown in  FIG. 7 .       

     As suggested just above, we may also use various phase in the spectrogram before we invert it to obtain the time domain output. 
     The options include at least:
         Use the original detected input phase in the output for each channel.   Use the phase that resulted from any of the elimination of any source using Y n .   Use an interpolation between the two.       

     Finally, we may also use the original panning of the input sources by multiplying the U value by cos({circumflex over (Θ)}) in the left channel and sin({circumflex over (Θ)}) in the right channel. Or, we may simply use U·ƒ i  for both channels, effectively eliminating panning information. 
     If the objective in the system is source elimination without artifacts, we note that this can be done with the weighted subtraction algorithm. This can, in fact, be done by careful choice of options. To eliminate a source such as source  3 , for example, we choose ƒ 3 , using the phase for the source  3  elimination case, and no panning information. This results in an output that is identical in both channels to just using weighted subtraction. 
     However, by using the original input phase and/or panning information, the stereo image is enhanced greatly. We also particularly suggest the option where phase is obtained from the source elimination case, but the original panning information is retained. This gives the perceptual impression of stereo, but with almost no artifacts from the eliminated source. 
     The free choice of options has not been available before. We include, in Table 1 below, a list of the options required by previous systems. We also note that some systems allow ƒ final  to vary versus the frequency ω. That is also the case here, as the ƒ final  functions may be different for each frequency bin. 
                     TABLE 1                  Existing Systems: Underlying Issues                                                     Weighted                           Subtraction           Issue   Lindemann 1     Rickard 2     Avendano 3     (no mods)   Laroche 4                 Output   Stereo, using ⊖   Stereo,   Stereo, using ⊖   Mono   Mono       Magnitude       using ⊖                   (s)                           Output   Retain   Retain   Retain   ∠(X 1  − ωX 2 )   Retain       Phase(s)   ∠X 1 , ∠X 2     ∠X 1 , ∠X 2     ∠X 1 , ∠X 2         ∠X 1 , ∠X 2         f i  uses φ   Yes   Yes, iff   No   Yes   Yes               δ u  ≠ δ υ                     f i  varies   Yes   Yes   No   No   No       with ω                           f i  function   Trig Based   Binary   Gaussian   Subtraction   Subtraction                           with                           Nonlinearity       Goal or   Enhancement   Isolation   Enhancement,   Elimination   Enhancement       Application   (center       Elimination,       or Elimination           panned only)       Re-panning                 1 Eric Lindemann. Two microphone nonlinear frequency domain beam former for hearing aid noise reduction. In IEEE ASSP Workshop on the Applications of Signal Processing to Audio and Acoustics, pages 24-27, New Paltz, NY, USA, October 1995.         2 Ozgur Yilmaz and Scott Rickard. Blind separation of speech mixtures via time-frequency masking. IEEE Transactions on Signal Processing, 52(7): 1830-1847, July 2004.         3 Carlos Avendano. Frequency domain source identification and manipulation in stereo mixes for enhancement, suppression, and re-panning applications. In IEEE ASSP Workshop on the Applications of Signal Processing to Audio and Acoustics, pages 55-58, New Paltz, NY, USA, October 2003.         4 Jean Laroche. Process for removing voice from stereo recordings, U.S. Pat. No. 6,405,163, June 2002.            
Training
 
     Above, we described a system that uses functions ƒ i  to choose a gain factor for each input STFT point for each source. We now describe an embodiment in which we allow the system to obtain ƒ i  based on training data. A key aspect of this embodiment of the invention is that input data points that appear to be coming from the direction of one source are assigned to that source, with a lesser fraction of the energy assigned as the input data point&#39;s direction varies from that of the source. As will be discussed below, the decision about how much energy to allocate is informed by a separately conducted training process in which the system learns to make optimal decisions. As commented above, it is not true in 100% of cases that a lesser fraction of the energy assigned as the input data point&#39;s direction varies from that of the sources. This is an intuitive way to describe what generally happens as a result of the training. A general step-by-step approach is as follows.
     1. Take a stereo audio signal as input, and load training data into memory.   2. Perform a spectrogram decomposition on each channel of the input, thus obtaining both the magnitude and phase for each point (frame t and frequency ω). Call the left and right channel spectrograms X 1 (ω, t) and X 2 (ω, t) respectively.   3. Estimate the panning parameter {circumflex over (Θ)}=arc tan(|X 2 /X 1 |) at each spectrogram point and the phase offset between channels as   

             ϕ   =       ∠   ⁡     (       X   1       X   2       )       .           
Using these data, estimate the mixing parameters for all sources using any variety of techniques known to those skilled in the art. The mixing parameters may also be specified by the user.
     4. Based on the mixing parameters and on the detected {circumflex over (Θ)} and detected φ, the loudness of the input, and the frequency band in question, assign some fraction of the energy in each input spectrogram point to each source i. The loudness is defined as U=√{square root over (|X 1 | 2 +|X 2 | 2 )} and the frequency band is determined by which spectrogram bin is in question. We have found double-width Bark bands to be a good size for frequency bands, although other groupings such as octaves may also be used.   5. For each spectrogram, use either the original input phase, or a special phase function described above, obtained from taking a weighted subtraction of one input channel from the other. Also, re-pan sources using their original panning data, or make a both spectrogram magnitudes the same. Both of these steps were described above.   6. Now there are two output spectrograms for each source, for a total of 2N.   7. Invert the spectrograms to obtain the final output of N time domain stereo source signal estimates.
 
Allocation of Input Energy
   

     The fourth step above is a key aspect of the novel system, the step that substantially defines the output. It is also the step that has been implemented in very different ways in different systems, and we presently explore it in more depth. Because the spatial window assigns a fraction of the energy in a spectrogram point to a source based on the panning parameter estimate {circumflex over (Θ)}, phase estimate φ, and loudness U, we may think of it as multiplying the input spectrograms by a masking function which is a function of {circumflex over (Θ)} and φ. Now, there are N sources, each with such a function, so we may notate the window for the i th  source as ƒ i ({circumflex over (Θ)}, φ, U). The functions may also vary with frequency band F, so we may actually write ƒ i (F, {circumflex over (Θ)}, φ, U). Some systems have excluded phase offset information. However, it is desirable for ƒ i  to include φinformation because it has been shown that phase information may indicate which sources are sounding most loudly (see, for example, Aaron S. Master.  Stereo Music Source Separation via Bayesian Modeling . Ph.D. Dissertation Stanford University (2006) available from http://www-ccrma.stanford.edu/˜asmaster/). This system also pioneers the use of loudness information and frequency band information. These measures are useful because some sources are louder at various frequencies or are louder in general, and this leads to differences in detected loudness over various frequencies, or in general, when the sources are mixed. For example, the drums might be the loudest source in general, so ambiguous loud input should be assumed to be drums. At low frequencies, an electric bass might be louder than other instruments or voices, so loud data at low frequencies likely belongs to the electric bass. These differences can and should be exploited by a demixing system. 
     A flowchart for a typical demixing system is shown in  FIG. 1 , in which the large multiplication symbol or flowchart “summing junction symbol” implies multiplying each of the two inputs on the left by each of the N spatial window function value entering from above, generating 2N outputs. Such stereo output is not the only type of output that may be produced by spatial windowing systems. Other examples include, for example:
         Just using the channel in which the targeted source is louder while ignoring the other one (see, for example, Nicoleta Roman, DeLiang Wang, and Guy J. Brown,  Speech segregation based on sound localization , Journal of the Acoustical Society of America, 114(4):2236-2252 (October 2003));   Combining both output channels into a single source estimate (see, for example, Ozgur Yilmaz and Scott Rickard,  Blind separation of speech mixtures via time - frequency masking , IEEE Transactions on Signal Processing, 52(7):1830-1847 (July 20043)); or   Re-panning the output to be located in the center (see, for example, J-K Lin, D. G. Grier, and J. D. Cowan,  Feature extraction approach to blind source separation , IEEE Workshop on Neural Networks for Signal Processing (NNSP), pages 398-405, Amelia Island Plantation, Fla., USA (September 1997)).       

     It is also useful, for purposes of explaining the current system, to think of the input in terms of the loudness U=√{square root over (|X 1 | 2 +|X 2 | 2 )} as mentioned above (see Equations (1)-(4) above). 
     We represent each spectrogram sample, then, in terms of its power, U, the detected panning parameter {circumflex over (Θ)}, the phase in the left channel ∠X 1 , and the phase offset between channels, φ. Given such a representation, we may see the ƒ i  as a simple scalar multiple applied to U, based on the values of φ, {circumflex over (Θ)}, and U, with all other information in the input signal preserved. Such an interpretation is shown in  FIG. 2 , which also considers only one particular spatial window i, instead of N of them. Note that this plot does not show that ƒ i &#39;s dependence on U or the frequency band F. This conceptualization is used in the current system, as we express the output in terms of the ƒ i  for each source multiplied by U. 
     Training Algorithm 
     We noted above that the system uses training data to inform its ƒ i  functions. 
     The training process operates as follows:
     1. Begin with some training information about each source signal, which may include either similar time domain signals or frequency domain characteristics in terms of magnitude versus various frequency bands. It must also include the mixing parameters of the sources which, as mentioned above, can either be estimated using techniques known in the art or as specified by the user.   2. Convert non-spectrogram-domain training data to the spectrogram domain. To obtain spectrogram data from frequency band loudness information, copy all magnitudes of a frequency band to its corresponding bins and bring in random phase. To ensure that the data generalizes, add a sufficient number of randomized phase samples to either type of data. This may be done by copying the magnitude information and bringing in uniformly sampled phase information.   3. Do a mixing and detection procedure for every frequency band and every possible combination of sources. For example, if three sources are present, the combinations are source one only; source two only; source three only; sources one and two only; sources one and three only; sources two and three only; and sources one, two, and three.   (a) Mix the data in the spectrogram domain using the specified mixing parameters for each source present. There is likely no need to time-align sources, such as for sources playing together on the beat, because a quick check of some example training data showed that doing so had little effect.   (b) Estimate Θ, φ, and U for each training point as mentioned above. Also, record the relative strength of each source used in each of those training points.   (c) Set up a three-dimensional histogram which chops up each of the Θ, φ, and U spaces into bins. We found that 40, 13, and 12 bins were reasonable divisions of the respective parameters, though other values are possible. This leads to a histogram with a total of 40*13*12=6240 bins.   (d) Go through every one of the 6240 bins and, for each, find and record the number of training points that fall inside. These values are recorded in an array called “bighist.” Recalling that we also recorded the relative strength of each source for each training point, also record the median relative value of each source that falls inside. The median is a way of avoiding recording the distribution on all sources, which leads to an unmanageable data explosion, at least with current computation. A full distribution could also be recorded with very slow performance. Spot checking of data revealed that source data were generally concentrated in unimodal clusters well-represented by a median. If no training points fall inside, set the relative contribution of the sources there to zero. These value are recorded in an array called “sourcedata.”   4. We now have, for each point in the 3-D histogram, the popularity of each combination there, as well as the median source value of each source in the combination. We may now use this information either to estimate the “most likely” (ML) median source values for a given histogram bin, or the “expected median value” (EMV) of the sources for the bin. We describe both. For each histogram bin, do the following:
       To obtain the ML estimate, find the combination that was most popular in the histogram bin. It has the largest value of any combination in “bighist” for this histogram bin. Record the median values of the sources for that combination in the histogram bin from “sourcedata” as the ML estimate for the bin.   To obtain the EMV estimate, take an average of the median source values in each combination recorded in the histogram bin from “sourcedata”, weighted by the popularity of the combination in that histogram bin as recorded in “bighist.”   
       5. Now, for every bin of a 3-D histogram, we have estimates of the most likely median source value and the expected median source value of each source. We may represent these as fractions of the detected loudness, giving us the originally sought ƒ i .   6. These estimates are actually 4-D because they exist for each frequency band. Because of data sparseness, we may smooth the data across all four dimensions. We used a Hann window of length five to do this, although other windows and lengths are possible.   

     We include an example of “sourcedata” in  FIG. 8 . It shows the median relative value of an example source two in frequency band  6 , when it is in “combination 5” which includes sources one and two. We observe that the data are plotted over the three mentioned variables of the histogram. Because of this, we must show the relative magnitude of the source  2  by using larger circles to represent louder values. If the circle is the largest value shown, then the relative contribution of the source  2  to the detected loudness U is near 100%. 
     When new input is given to the system, the system can use the training data as follows:
     1. Perform a spectrogram decomposition of the input.   2. For each point in the spectrogram:   (a) Estimate the Θ, φ, and U triplet;   (b) For each such triplet, find its corresponding histogram bin; and   (c) Recalling that each histogram bin has an associated ML or MEV set of median source estimates, multiply the detected U by the desired estimates&#39; corresponding ƒ i . There are as many estimates as sources.   3. We now have a spectrogram for each source. Re-apply panning information if desired, use the original input&#39;s phase or a special phase function resulting from a subtracting a weighted version of X1 from a weighted version of X2, and invert the spectrograms to obtain time-domain signals.   

     Although the invention is described herein with reference to the preferred embodiment, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention. For example, any standard (known) audio filter may be used before or after the herein disclosed separation system. Audio filters may be used in conjunction with the invention herein, for example, to make some frequency ranges louder (emphasis) or quieter (de-emphasis). 
     While the invention is described herein in connection with voice and music, it will be appreciated by those skilled in the art that the invention may be used in any application involving an audio signal controlling more than one source of sound. For example:
         karaoke;   extracting main melody voice or instrument signals, transcribing a result in musical notes, and then using that recorded melody to facilitate melody-following, to form a searchable database of melodies, or to query such a database;   extracting main melody voice or instrument signals, and then transcribing a result in words, to facilitate lyrics-following, or lyrics-recognition;   extracting main melody voice, and then using a result for automatic singer voiceprint identification;   extracting main melody voice or instrument signals, and then using a result as input to a voice- or instrument-type recognition system;   coding extracted voices or instruments more efficiently using high-efficiency source-specific coders; and   extracting individual voices or other sound sources from an audio track that accompanies a film or video presentation, for example, to enhance or replace a particular actor&#39;s dialog or to enhance or replace sound effects or music.       

     Accordingly, the invention should only be limited by the Claims included below.