Patent Publication Number: US-2022230652-A1

Title: Source separation

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of copending International Application No. PCT/EP2020/077716, filed Oct. 2, 2020, which is incorporated herein by reference in its entirety, and additionally claims priority from European Application No. 19201575.8, filed Oct. 4, 2019, which is also incorporated herein by reference in its entirety. 
    
    
     The present examples refer to methods and apparatus for obtaining a plurality of output signals associated with different sources (e.g. audio sources). The present examples also refer to methods and apparatus for signal separation. The present examples also refer to methods and apparatus for teleconferencing. Techniques for separation (e.g., audio source separation) are also disclosed. Techniques for fast time domain stereo audio source separation (e.g. using fractional delay filters) are also discussed. 
     BACKGROUND OF THE INVENTION 
       FIG. 1  shows the setup of microphones indicated with  50   a . The microphones  50   a  may include a first microphone mic 0  and a second microphone mica which are here shown at a distance of 5 cm (50 mm) from each other. Other distances are possible. Two different sources (source 0  and source 1 ) are here shown. As identified by angles β 0  and β 1 , they are placed in different positions (here also in different orientations with respect to each other). 
     A plurality of input signals M 0  and M 1  (from the microphones, also collectively indicated as a multi-channel, or stereo, input signal  502 ), are obtained from the sound source 0  and source 1 . While source 0  generates the audio sound indexed as S 0 , source 1  generates the audio sound indexed as S 1 . 
     The microphone signals M 0  and M 1  may be considered, for example, as input signals. It is possible to consider a multi-channel with more than 2 channels instead of stereo signal  502 . 
     The input signals may be more than two in some examples (e.g. other additional input channels besides M 0  and M 1 ), even though here only two channels are mainly discussed. Notwithstanding, the present examples are valid for any multi-channel input signal. In examples, it is also not necessary that the signals M 0  and M 1  are directly obtained by a microphone, since they may be obtained, for example, from a stored audio file. 
       FIGS. 2 a    and  4  show the interactions between the sources source 0  and source 1  and the microphones mic 0  and mic 1 . For example, the source 0  generates an audio sound S 0 , which primarily reaches the microphone mic 0  and also reaches the microphone mic 1 . The same applies to source 1 , whose generated audio source S 1  primarily reaches the microphone mic 1  and also reaches the microphone mic 0 . We see from  FIGS. 2 a    and  4  that the sound S 0  needs less time to reach at the microphone mic 0 , than the time needed for reaching microphone mic 1 . Analogously, the sound S 1  needs less time to arrive at mic 1 , than the time it takes to arrive at mic 0 . The intensity of the signal S 0 , when reaching the microphone mic 1 , is in general attenuated with respect to when reaching mic 0 , and vice versa. 
     Accordingly, in the multi-channel input signal  502 , the channel signals M 0  and M 1  are such that the signals S 0  and S 1  from the sound source 0  and source 1  are combinations of each other. Separation techniques are therefore pursued. 
     SUMMARY 
     An embodiment may have an apparatus for obtaining a plurality of output signals, associated with different sound sources, on the basis of a plurality of input signals, in which signals from the sound sources are combined, wherein the apparatus is configured to combine a first input signal, or a processed version thereof, with a delayed and scaled version of a second input signal, to obtain a first output signal; wherein the apparatus is configured to combine a second input signal, or a processed version thereof, with a delayed and scaled version of the first input signal, to obtain a second output signal; wherein the apparatus is configured to determine, using a random direction optimization: a first scaling value, which is used to obtain the delayed and scaled version of the first input signal; a first delay value, which is used to obtain the delayed and scaled version of the first input signal; a second scaling value, which is used to obtain the delayed and scaled version of the second input signal; and a second delay value, which is used to obtain the delayed and scaled version of the second input signal, wherein the random direction optimization is such that candidate parameters form a candidates&#39; vector, the candidates&#39; vector being iteratively refined by modifying the candidates&#39; vector in random directions, wherein the random direction optimization is such that a metrics indicating the similarity, or dissimilarity, between the first and second output signals is measured, and the first and second output signals are selected to be those measurements associated with the candidate parameters associated with metrics indicating lowest similarity, or highest dissimilarity, wherein the metrics is processed as a Kullback-Leibler divergence. 
     According to another embodiment, a method for obtaining a plurality of output signals associated with different sound sources on the basis of a plurality of input signals, in which signals from the sound sources are combined, may have the steps of: combining a first input signal, or a processed version thereof, with a delayed and scaled version of a second input signal, to obtain a first output signal; combining a second input signal, or a processed version thereof, with a delayed and scaled version of the first input signal, to obtain a second output signal; determining, using a random direction optimization, at least one of: a first scaling value, which is used to obtain the delayed and scaled version of the first input signal; a first delay value, which is used to obtain the delayed and scaled version of the first input signal; a second scaling value, which is used to obtain the delayed and scaled version of the second input signal; and a second delay value, which is used to obtain the delayed and scaled version of the second input signal, wherein the random direction optimization is such that candidate parameters form a candidates&#39; vector, the candidates&#39; vector begin iteratively refined by modifying the candidates&#39; vector in random directions, wherein the random direction optimization is such that a metrics indicating the similarity, or dissimilarity, between the first and second output signals is measured, and the first and second output signals are selected to be those measurements associated with the candidate parameters associated with the metrics indicating lowest similarity, or highest dissimilarity, wherein the metrics is processed as a Kullback-Leibler divergence. 
     Another embodiment may have a non-transitory digital storage medium having a computer program stored thereon to perform the inventive method for obtaining a plurality of output signals associated with different sound sources on the basis of a plurality of input signals, in which signals from the sound sources are combined, when said computer program is run by a computer. 
     Here below, text in square brackets and round brackets indicates non-limiting examples. 
     In accordance to an aspect, there is provided an apparatus [e.g. a multichannel or stereo audio source separation apparatus] for obtaining a plurality of output signals [S′ 0 , S′ 1 ] associated with different sound sources [source 0 , source 1 ] on the basis of a plurality of input signals [e.g. microphone signals], in which signals from the sound sources [source 0 , source 1 ] are combined,
         wherein the apparatus is configured to combine a first input signal [M 0 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 1 ·z −d1 ·M 1 ] of a second input signal [e.g. M 1 ] [e.g. by subtracting the delayed and scaled version of the second input signal from the first input signal, e.g. by S′ 0 =M 0 (z)−a 1 ·z −d1 ·M 1 (z)], to obtain a first output signal [S′ 0 ];       

     wherein the apparatus is configured to combine a second input signal [M 1 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 0 ·z −d0·M   0 ] of the first input signal [M 0 ] [e.g. by subtracting the delayed and scaled version of the first input signal from the second input signal, e.g. by S′ 1 =M 1 (z)−a 0 ·z −d0 ·M 0 (z)], to obtain a second output signal [S′ 1 ]; 
     wherein the apparatus is configured to determine, using a random direction optimization [e.g. by performing one of operations defined in other claims, for example; and/or by finding the delay and attenuation values which minimize an objective function, which could be, for example that in formulas (6) and/or (8)]:
         a first scaling value [a 0 ], which is used to obtain the delayed and scaled version [a 0 ·z −d0·M   0 ] of the first input signal [M 0 ];   a first delay value [do], which is used to obtain the delayed and scaled version [a 0 ·z −d0·M   0 ] of the first input signal [M 0 ];   a second scaling value [a 1 ], which is used to obtain the delayed and scaled version [a 1 ·z −d1 ·M 1 ] of the second input signal [M 1 ]; and   a second delay value [d 1 ], which is used to obtain the delayed and scaled version of the second input signal [a 1 ·z −d1 ·M 1 ].       

     The delayed and scaled version [a 1 ·z −d1 ·M 1 ] of the second input signal [M 1 ], may be combined with the first input signal [M 0 ], is obtained by applying a fractional delay to the second input signal [M 1 ]. 
     The delayed and scaled version [a 0 ·z −d0·M   0 ] of the first input signal [M 0 ], may be combined with the second input signal [M 1 ], is obtained by applying a fractional delay to the first input signal [M 0 ]. 
     The apparatus may sum a plurality of products [e.g., as in formula (6) or (8)] between:
         a respective element [P i (n), with i being 0 or 1] of a first set of normalized magnitude values [e.g., as in formula (7)], and   a logarithm of a quotient formed on the basis of:
           the respective element [P(n) or P 1 (n)] of the first set of normalized magnitude values; and   a respective element [Q(n) or Q 1 (n)] of a second set of normalized magnitude values,   
           in order to obtain a value [DKL(P∥Q) or D(P0,P1) in formulas (6) or (8)] describing a similarity [or dissimilarity] between a signal portion [s 0 ′(n)] described by the first set of normalized magnitude values [P 0 (n), for n=1 to . . . ] and a signal portion [s 1 ′(n)] described by the second set of normalized magnitude values [P 1 (n), for n=1 to . . . ].       

     The random direction optimization may be such that candidate parameters form a candidates&#39; vector [e.g., with four entries, e.g. corresponding to a 0 , a 1 , d 0 , d 1 ], wherein the vector is iteratively refined [e.g., in different iterations, see also claims  507   ff .] by modifying the vector in random directions. 
     The random direction optimization may be such that candidate parameters form a candidates&#39; vector [e.g., with four entries, e.g. corresponding to a 0 , a 1 , d 0 , d 1 ], wherein the vector is iteratively refined [e.g., in different iterations, see also below] by modifying the vector in random directions. 
     The random direction optimization may be such that a metrics and/or a value indicating the similarity (or dissimilarity) between the first and second output signals is measured, and the first and second output measurements are selected to be those measurements associated to the candidate parameters associated to the value or metrics indicating lowest similarity (or highest dissimilarity). 
     At least one of the first and second scaling values and first and second delay values may be obtained by minimizing the mutual information or related measure of the output signals. 
     In accordance to an aspect, there is provided an apparatus for obtaining a plurality of output signals [S′ 0 , S′ 1 ] associated with different sound sources [source 1 , source 2 ] on the basis of a plurality of input signals [e.g. microphone signals][M 0 , M 1 ], in which signals from the sound sources [source 1 , source 2 ] are combined,
         wherein the apparatus is configured to combine a first input signal [M 0 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 1 ·z −d1 ·M 1 ] of a second input signal [M 1 ], to obtain a first output signal [S′ 0 ], wherein the apparatus is configured to apply a fractional delay [d 1 ] to the second input signal [M 1 ] [wherein the fractional delay (d 1 ) may be indicative of the relationship and/or difference between the delay (e.g. delay represented by H 1,0 ) of the signal (H 1,0 ·S 1 ) arriving at the first microphone (mic 0 ) from the second source (source 1 ) and the delay (e.g. delay represented by H 1,1 ) of the signal (H 1,1 ·S 1 ) arriving at the second microphone (mic 1 ) from the second (source 1 )][in examples, the fractional delay d 1  may be understood as approximating the exponent of the z term of the result of the fraction H 1,0 (z)/H 1,1 (z)];   wherein the apparatus is configured to combine a second input signal [M 1 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 0 ·z −d0 ·M 0 ] of the first input signal [M 0 ], to obtain a second output signal [S′ 1 ], wherein the apparatus is configured to apply a fractional delay [d 0 ] to the first input signal [M 0 ] [wherein the fractional delay (d 0 ) may be indicative of the relationship and/or difference between the delay (e.g. delay represented by H 0,0 ) of the signal (H 0,0 ·S 0 ) arriving at the first microphone (mic 0 ) from the first source (source 0 ) and the delay (e.g. delay represented by H 0,1 ) of the signal (H 0,1 ·S 0 ) arriving at the second microphone (mic 1 ) from the first source (source 0 )][in examples, the fractional delay d 0  may be understood as approximating the exponent of the z term of the result of the fraction H 0,1 (z)/H 0,0 (z)];   wherein the apparatus is configured to determine, using an optimization:
           a first scaling value [a 0 ], which is used to obtain the delayed and scaled version [a 0 ·z −d0 ·M 0 ] of the first input signal [M 0 ];   a first fractional delay value [d 0 ], which is used to obtain the delayed and scaled version [a 0 ·z −d0 ·M 0 ] of the first input signal [M 0 ];   a second scaling value [a 1 ], which is used to obtain the delayed and scaled version [a 1 ·z −d1 ·M 1 ] of the second input signal [M 1 ]; and   a second fractional delay value [d 1 ], which is used to obtain the delayed and scaled version [a 1 ·z −d1 ·M 1 ] of the second input signal [M 1 ].   
               

     The optimization may be a random direction optimization. 
     The apparatus may sum a plurality of products [e.g., as in formula (6) or (8)] between:
         a respective element [P i (n), with i being 0 or 1] of a first set of normalized magnitude values [e.g., as in formula (7)], and   a logarithm of a quotient formed on the basis of:
           the respective element [P(n) or P i (n)] of the first set of normalized magnitude values; and   a respective element [Q(n) or Q 1 (n)] of a second set of normalized magnitude values,   
           in order to obtain a value [DKL(P∥Q) or D(P0,P1) in formulas (6) or (8)] describing a similarity [or dissimilarity] between a signal portion [s 0 ′(n)] described by the first set of normalized magnitude values [P 0 (n), for n=1 to . . . ] and a signal portion [s 1 ′(n)] described by the second set of normalized magnitude values [P 1 (n), for n=1 to . . . ].       

     In accordance to an aspect, there is provided an apparatus [e.g. a multichannel or stereo audio source separation apparatus] for obtaining a plurality of output signals [S′ 0 , S′ 1 ] associated with different sound sources [source 0 , source 1 ] on the basis of a plurality of input signals [e.g. microphone signals][M 0 , M 1 ], in which signals from the sound sources are combined [e.g. by subtracting a delayed and scaled version of a second input signal from a first input signal and/or by subtracting a delayed and scaled version of a first input signal from a second input signal],
         wherein the apparatus is configured to combine a first input signal [M 0 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 1 ·z −d1 ·M 1 ] of a second input signal [M 1 ] [e.g. by subtracting the delayed and scaled version of the second input signal from the first input signal], to obtain a first output signal [S′ 0 ],   wherein the apparatus is configured to combine a second input signal [M 1 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 0 ·z −d0 ·M 0 ] of the first input signal [M 0 ] [e.g. by subtracting the delayed and scaled version of the first input signal from the second input signal], to obtain a second output signal [S′ 1 ],   wherein the apparatus is configured to sum a plurality of products [e.g., as in formula (6) or (8)] between:   a respective element [P i (n), with i being 0 or 1] of a first set of normalized magnitude values [e.g., as in formula (7)], and   a logarithm of a quotient formed on the basis of:
           the respective element [P(n) or P 1 (n)] of the first set of normalized magnitude values; and   a respective element [Q(n) or Q 1 (n)] of a second set of normalized magnitude values,   
           in order to obtain a value [DKL(P∥Q) or D(P0,P1) in formulas (6) or (8)] describing a similarity [or dissimilarity] between a signal portion [s 0 ′(n)] described by the first set of normalized magnitude values [P 0 (n), for n=1 to . . . ] and a signal portion [s 1 ′(n)] described by the second set of normalized magnitude values [P 1 (n), for n=1 to . . . ].       

     The apparatus may determine:
         a first scaling value [a 1 ], which is used to obtain the delayed and scaled version of the first input signal [M 0 ],   a first delay value [d 0 ], which is used to obtain the delayed and scaled version of the first input signal,   a second scaling value [a 1 ], which is used to obtain the delayed and scaled version of the second input signal, and   a second delay value [d 1 ], which is used to obtain the delayed and scaled version of the second input signal, using an optimization [e.g. on the basis of a “modified KLD computation”]       

     The first delay value [d 0 ] may be a fractional delay. The second delay value [d 1 ] is a fractional delay. 
     The optimization may be a random direction optimization. 
     The apparatus may perform at least some of the processes in the time domain. The apparatus may perform at least some of the processes in the z transform or frequency domain. 
     The apparatus may be configured to:
         combine the first input signal [M 0 ], or a processed [e.g. delayed and/or scaled] version thereof, with the delayed and scaled version [a 1 ·z −d1 ·M 1 ] of the second input signal [M 1 ] in the time domain and/or in the z transform or frequency domain;   combine the second input signal [M 1 ], or a processed [e.g. delayed and/or scaled] version thereof, with the delayed and scaled version [a 0 ·z −d0·M   0 ] of the first input signal [M 0 ] in the time domain and/or in the z transform or frequency domain.       

     The optimization may be performed in the time domain and/or in the z transform or frequency domain. 
     The fractional delay (d 0 ) applied to the second input signal [M 1 ] may be indicative of the relationship and/or difference or arrival between: 
     the signal [S 0 ·H 0,0 (z)] from the first source [source 0 ] received by the first microphone [mic 0 ]; and 
     the signal [S 0 ·H 0,1 (z)] from the first source [source 0 ] received by the second microphone [mic 1 ]. 
     The fractional delay (d 1 ) applied to the first input signal [M 0 ] may be indicative of the relationship and/or difference or arrival between: 
     the signal [S 1 ·H 1,1 (z)] from the second source [source 1 ] received by the second microphone [mic 1 ]; and 
     the signal [S 1 ·H 1,0 (z)] from the second source [source 1 ] received by the first microphone [mic 0 ]. 
     The apparatus may perform an optimization [e.g., the optimization such that different candidate parameters [a 0 , a 1 , d 0 , d 1 ] are iteratively chosen and processed, and a metrics [e.g., as in formula (6) or (8)] [e.g. on the basis of a “modified KLD computation”][e.g., objective function] is measured for each of the candidate parameters, wherein the metrics is a similarity metrics (or dissimilarity metrics), so as to choose the first input signal [M 0 ] and the second input signal [M 0 ]) obtained by using the candidate parameters [a 0 , a 1 , d 0 , d 1 ] which associated to the metrics indicating the lowest similarity (or largest dissimilarity). [the similarity may be imagined as a statistic dependency between the first and second input signals (or values associated thereto, such as those in formula (7)), and/or the dissimilarity may be imagined as a statistic independency between the first and second input signals (or values associated thereto, such as those in formula (7)] 
     For each iteration, the candidate parameters may include a candidate delay (d 0 ) [e.g., a candidate fractional delay] to be applied to the second input signal [M 1 ], the candidate delay (d 0 ) being associable to a candidate relationship and/or candidate difference or arrival between:
         the signal [S 0 ·H 0,0 (z)] from the first source [source 0 ] received by the first microphone [mic 0 ]; and   the signal [S 0 ·H 0,1 (z)] from the first source [source 0 ] received by the second microphone [mic 0 ].       

     For each iteration, the candidate parameters include a candidate delay (d 1 ) [e.g., a candidate fractional delay] to be applied to the first input signal [M 0 ], the candidate delay (d 1 ) being associable to a candidate relationship and/or candidate difference or arrival between:
         the signal [S 1 ·H 1,1 (z)] from the second source [source 1 ] received by the second microphone [mic 1 ]; and   the signal [S 1 ·H 1,0 (z)] from the second source [source 1 ] received by the first microphone [mic 0 ].       

     For each iteration, the candidate parameters may include a candidate relative attenuation value [a 0 ] to be applied to the second input signal [M 1 ], the candidate relative attenuation value [a 0 ] being indicative of a candidate relationship and/or candidate difference between:
         the amplitude of the signal [S 0 ·H 0,0 (z)] received by the first microphone [mic 0 ] from the first source [source 0 ]; and   the amplitude of the signal [S 0 ·H 0,1 (z)] received by the second microphone [mic 1 ] from the first source [source 0 ].       

     For each iteration, the candidate parameters may include a candidate relative attenuation value [a 1 ] to be applied to the first input signal [M 0 ], the candidate relative attenuation value [a 1 ] being indicative of a candidate relationship and/or candidate difference between:
         the amplitude of the signal [S 1 ·H 1,1 (z)] received by the second microphone [mic 1 ] from the second source [source 1 ]; and   the amplitude of the signal [S 1 ·H 1,0 (z)] received by the first microphone [mic 0 ] from the second source [source 1 ].       

     The apparatus may change at least one candidate parameter for different iterations by randomly choosing at least one step from at least one candidate parameter for a preceding iteration to at least one candidate parameter for a subsequent iteration [e.g., random direction optimization]. 
     The apparatus may choose the at least one step [e.g., coeffvariation in line 10 of algorithm 1] randomly [e.g., random direction optimization]. 
     The at least one step may be weighted by a preselected weight [e.g. coeffweights in line 5 of algorithm 1]. 
     The at least one step is limited by a preselected weight [e.g. coeffweights in line 5 of algorithm 1]. 
     The apparatus may be so that the candidate parameters [a 0 , a 1 , d 0 , d 1 ] form a candidates&#39; vector, wherein, for each iteration, the candidates&#39; vector is perturbed [e.g., randomly] by applying a vector of uniformly distributed random numbers [e.g., each between −0.5 and +0.5], which are element-wise multiplied by (or added to) the elements of the candidates&#39; vector. [it is possible to avoid gradient processing] [e.g., random direction optimization]. 
     For each iteration, the candidates&#39; vector is modified (e.g., perturbed) for a step [e.g., which is each between −0.5 and +0.5]. 
     The apparatus may be so that the numeric of iterations is limited to a predetermined maximum number, the predetermined maximum number being between 10 and 30 (e.g., 20, as in subsection 2.3, last three lines). 
     The metrics may be processed as a Kullback-Leibler divergence. 
     The metrics may be based on:
         for each of the first and second signals [M 0 , M 1 ], a respective element [P i (n), with i being 0 or 1] of a first set of normalized magnitude values [e.g., as in formula (7)]. [a trick may be: considering the normalized magnitude values of the time domain samples as probability distributions, and after that measuring the metrics (e.g., as the Kullback-Leibler divergence, e.g. as obtained though formula (6) or (8))]       

     For at least one of the first and second input signals [M 0 , M 1 ], the respective element [P i (n)] may be based on the candidate first or second outputs signal [S′ 0 , S′ 1 ] as obtained from the candidate parameters [e.g., like in formula (7)]. 
     For at least one of the first and second input signals [M 0 , M 1 ], the respective element [P i (n)] may be based on the candidate first or second outputs signal [S′ 0 , S′ 1 ] as obtained from the candidate parameters [e.g., like in formula (7)]. 
     For at least one of the first and second input signals [M 0 , M 1 ], the respective element [P i (n)] may be obtained as a fraction between: 
     a value [e.g., absolute value] associated to a candidate first or second output signal [S′ 0 (n), S′ 1 (n)] [e.g., in absolute value]; and 
     a norm [e.g., 1-norm] associated to the previously obtained values of the first or second output signal [S′ 0 ( . . . n−1), S′ 1 ( . . . n−1)]. 
     For at least one of the first and second input signals [M 0 , M 1 ], the respective element [P i (n)] may be obtained by 
     
       
         
           
             
               
                 
                   
                     
                       P 
                       i 
                     
                     ( 
                     n 
                     ) 
                   
                   = 
                   
                     
                       
                         ❘ 
                         &#34;\[LeftBracketingBar]&#34; 
                       
                       
                         
                           s 
                           i 
                           ′ 
                         
                         ( 
                         n 
                         ) 
                       
                       
                         ❘ 
                         &#34;\[RightBracketingBar]&#34; 
                       
                     
                     
                       
                          
                         
                           
                             ❘ 
                             &#34;\[LeftBracketingBar]&#34; 
                           
                           
                             s 
                             i 
                             ′ 
                           
                           
                             ❘ 
                             &#34;\[RightBracketingBar]&#34; 
                           
                         
                          
                       
                       ⁢ 
                       1 
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
     (Here, “s′ i  (n)” and “s′ i ” are written without capital letters by virtue of not being, in this case, z transforms). 
     The metrics may include a logarithm of a quotient formed on the basis of:
         the respective element [P(n) or P i (n)] of the first set of normalized magnitude values; and   a respective element [Q(n) or Q 1 (n)] of a second set of normalized magnitude values,   in order to obtain a value [DKL(P∥Q) or D(P0,P1) in formulas (6) or (8)] describing a similarity [or dissimilarity] between a signal portion [s 0 ′(n)] described by the first set of normalized magnitude values [P 0 (n), for n=1 to . . . ] and a signal portion [s 1 ′(n)] described by the second set of normalized magnitude values [P i (n), for n=1 to . . . ].       

     The metrics may be obtained in form of: 
     
       
         
           
             
               
                 
                   
                     
                       D 
                       
                         K 
                         ⁢ 
                         L 
                       
                     
                     ( 
                     
                       P 
                       ⁢ 
                       
                         
                           ❘ 
                           &#34;\[LeftBracketingBar]&#34; 
                         
                         
                           ❘ 
                           &#34;\[RightBracketingBar]&#34; 
                         
                       
                       ⁢ 
                       Q 
                     
                     ) 
                   
                   = 
                   
                     
                       ∑ 
                       n 
                     
                     
                       
                         P 
                         ⁡ 
                         ( 
                         n 
                         ) 
                       
                       ⁢ 
                       
                         log 
                         ⁡ 
                         ( 
                         
                           
                             P 
                             ⁡ 
                             ( 
                             n 
                             ) 
                           
                           
                             Q 
                             ⁡ 
                             ( 
                             n 
                             ) 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
     wherein P(n) is an element associated to the first input signal [e.g., P 1 (n) or element of the first set of normalized magnitude values] and Q(n) is an element associated to the second input signal [e.g., P 2 (n) or element of the second set of normalized magnitude values]. 
     The metrics may be obtained in form of: 
     
       
         
           
             
               
                 
                   
                     D 
                     ⁡ 
                     ( 
                     
                       
                         P 
                         0 
                       
                       , 
                         
                       
                         P 
                         1 
                       
                     
                     ) 
                   
                   = 
                   
                     - 
                     
                       
                         ∑ 
                         n 
                       
                       
                         [ 
                         
                           
                             
                               
                                 P 
                                 0 
                               
                               ( 
                               n 
                               ) 
                             
                             ⁢ 
                             
                               log 
                               ⁡ 
                               ( 
                               
                                 
                                   
                                     P 
                                     0 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                                 
                                   
                                     P 
                                     1 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               ) 
                             
                           
                           + 
                           
                             
                               
                                 P 
                                 1 
                               
                               ( 
                               n 
                               ) 
                             
                             ⁢ 
                             
                               log 
                               ⁡ 
                               ( 
                               
                                 
                                   
                                     P 
                                     1 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                                 
                                   
                                     P 
                                     0 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               ) 
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
     
     wherein P 1 (n) is an element associated to the first input signal [e.g., P 1 (n) or element of the first set of normalized magnitude values] and P 2 (n) is an element associated to the second input signal [e.g., element of the second set of normalized magnitude values]. 
     The apparatus may perform the optimization using a sliding window [e.g., the optimization may take into account TD samples of the last 0.1 s . . . 1.0 s]. 
     The apparatus may transform, into a frequency domain, information associated to the obtained first and second output signals (S′ 0 , S′ 1 ). 
     The apparatus may encode information associated to the obtained first and second output signals (S′ 0 , S′ 1 ). 
     The apparatus may store information associated to the obtained first and second output signals (S′ 0 , S′ 1 ). 
     The apparatus may transmit information associated to the obtained first and second output signals (S′ 0 , S′ 1 ). 
     The apparatus of any of the preceding claims may include at least one of a first microphone (mic 0 ) for obtaining the first input signal [M 0 ] and a second microphone (mic 1 ) for obtaining the second input signal [M 1 ]. [e.g., at a fixed distance] 
     An apparatus for teleconferencing may be provided, including the apparatus as above and equipment for transmitting information associated to the obtained first and second output signals (S′ 0 , S′ 1 ). 
     A binaural system is disclosed including the apparatus as above. 
     An optimizer is disclosed for iteratively optimizing physical parameters associated to physical signals, wherein the optimizer is configured, at each iteration, to randomly generate a current candidate vector for evaluating whether the current candidate vector performs better than a current best candidate vector,
         wherein the optimizer is configured to evaluate an objective function associated to a similarity, or dissimilarity, between physical signals, in association to the current candidate vector,   wherein the optimizer is configured so that, in case the current candidate vector causes the objective function to be reduced with respect to the current best candidate vector, to render, as the new current best candidate vector, the current candidate vector.       

     The physical signal may include audio signals obtained by different microphones. 
     The parameters may include a delay and/or a scaling factor for an audio signal obtained at a particular microphone. 
     The objective function is a Kullback-Leibler divergence. The Kullback-Leibler divergence may be applied to a first and a second sets of normalized magnitude values. 
     The objective function may be obtained by summing a plurality of products [e.g., as in formula (6) or (8)] between:
         a respective element [P i (n), with i being 0 or 1] of a first set of normalized magnitude values [e.g., as in formula (7)], and   a logarithm of a quotient formed on the basis of:
           the respective element [P(n) or P 1 (n)] of the first set of normalized magnitude values; and   a respective element [Q(n) or Q 1 (n)] of a second set of normalized magnitude values,   
           in order to obtain a value [DKL(P∥Q) or D(P0,P1) in formulas (6) or (8)] describing a similarity [or dissimilarity] between a signal portion [s 0 ′(n)] described by the first set of normalized magnitude values [P 0 (n), for n=1 to . . . ] and a signal portion [s 1 ′(n)] described by the second set of normalized magnitude values [P 1 (n), for n=1 to . . . ].       

     The objective function may be obtained as 
     
       
         
           
             
               
                 
                   
                     D 
                     ⁡ 
                     ( 
                     
                       
                         P 
                         0 
                       
                       , 
                       
                         P 
                         1 
                       
                     
                     ) 
                   
                   = 
                   
                     - 
                     
                       
                         ∑ 
                         n 
                       
                       
                         [ 
                         
                           
                             
                               
                                 P 
                                 0 
                               
                               ( 
                               n 
                               ) 
                             
                             ⁢ 
                             
                               log 
                               ⁡ 
                               ( 
                               
                                 
                                   
                                     P 
                                     0 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                                 
                                   
                                     P 
                                     1 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               ) 
                             
                           
                           + 
                           
                             
                               
                                 P 
                                 1 
                               
                               ( 
                               n 
                               ) 
                             
                             ⁢ 
                             
                               log 
                               ⁡ 
                               ( 
                               
                                 
                                   
                                     P 
                                     1 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                                 
                                   
                                     P 
                                     0 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               ) 
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     
                       D 
                       
                         K 
                         ⁢ 
                         L 
                       
                     
                     ( 
                     
                       P 
                       ⁢ 
                       
                         
                           ❘ 
                           &#34;\[LeftBracketingBar]&#34; 
                         
                         
                           ❘ 
                           &#34;\[RightBracketingBar]&#34; 
                         
                       
                       ⁢ 
                       Q 
                     
                     ) 
                   
                   = 
                   
                     
                       ∑ 
                       n 
                     
                     
                       
                         P 
                         ⁡ 
                         ( 
                         n 
                         ) 
                       
                       ⁢ 
                       
                         log 
                         ⁡ 
                         ( 
                         
                           
                             P 
                             ⁡ 
                             ( 
                             n 
                             ) 
                           
                           
                             Q 
                             ⁡ 
                             ( 
                             n 
                             ) 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
     wherein P i (n) or P(n) is an element associated to the first input signal [e.g., P 1 (n) or element of the first set of normalized magnitude values] and P 2 (n) or Q(n) is an element associated to the second input signal. 
     In accordance to an example, there is provided a method for obtaining a plurality of output signals [S′ 0 , S′ 1 ] associated with different sound sources [source 0 , source 1 ] on the basis of a plurality of input signals [e.g. microphone signals][M 0 , M 1 ], in which signals from the sound sources [source 0 , source 1 ] are combined,
         the method comprising:   combining a first input signal [M 0 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 1 ·z −d1 ·M 1 ] of a second input signal [M 1 ] [e.g. by subtracting the delayed and scaled version of the second input signal from the first input signal, e.g. by S′ 0 =M 0 (z)−a 1 ·z −d1 ·M 1 (z)], to obtain a first output signal [S′ 0 ];   combining a second input signal [M 1 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 0 ·z −d0 ·M 0 ] of the first input signal [M 0 ] [e.g. by subtracting the delayed and scaled version of the first input signal from the second input signal, e.g. by S′ 1 =M 1 (z)−a 0 ·z −d0 ·M 0 (z)], to obtain a second output signal [S′ 1 ];   determining, using a random direction optimization [e.g. by performing one of operations defined in other claims, for example; and/or by finding the delay and attenuation values which minimize an objective function, which could be, for example that in formulas (6) and/or (8)]:
           a first scaling value [a 0 ], which is used to obtain the delayed and scaled version [a 0 *z −d0 *M 0 ] of the first input signal [M 0 ];   a first delay value [d 0 ], which is used to obtain the delayed and scaled version [a 0 *z −d0 *M 0 ] of the first input signal [M 0 ];   a second scaling value [a 1 ], which is used to obtain the delayed and scaled version [a 1 *z −d1 *M 1 ] of the second input signal [M 1 ]; and   a second delay value [d 1 ], which is used to obtain the delayed and scaled version of the second input signal [a 1 *z −d1 *M 1 ].   
               

     In accordance to an example, there is provided a method method for obtaining a plurality of output signals [S′ 0 , S′ 1 ] associated with different sound sources [source 1 , source 2 ] on the basis of a plurality of input signals [e.g. microphone signals][M 0 , M 1 ], in which signals from the sound sources [source 1 , source 2 ] are combined,
         the method including   combining a first input signal [M 0 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 1 *z −d1 *M 1 ] of a second input signal [M 1 ], to obtain a first output signal [S′ 0 ], wherein the method is configured to apply a fractional delay [d 1 ] to the second input signal [M 1 ] [wherein the fractional delay (d 1 ) may be indicative of the relationship and/or difference between the delay (e.g. delay represented by H 1,0 ) of the signal (H 1,0 *S 1 ) arriving at the first microphone (mic 0 ) from the second source (source 1 ) and the delay (e.g. delay represented by H 1,1 ) of the signal (H 1,1 *S 1 ) arriving at the second microphone (mic 1 ) from the second (source 1 )][in examples, the fractional delay d 1  may be understood as approximating the exponent of the z term of the result of the fraction H 1,0 (z)/H 1,1 (z)];       

     combining a second input signal [M 1 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 0 *z −d0 *M 0 ] of the first input signal [M 0 ], to obtain a second output signal [S′ 1 ], wherein the method is configured to apply a fractional delay [d 0 ] to the first input signal [M 0 ] [wherein the fractional delay (d 0 ) may be indicative of the relationship and/or difference between the delay (e.g. delay represented by H 0,0 ) of the signal (H 0,0 *S 0 ) arriving at the first microphone (mic 0 ) from the first source (source 0 ) and the delay (e.g. delay represented by H 0,1 ) of the signal (H 0,1 *S 0 ) arriving at the second microphone (mics) from the first source (source 0 )][in examples, the fractional delay d 0  may be understood as approximating the exponent of the z term of the result of the fraction H 0,1 (z)/H 0,0 (z)];
         determining, using an optimization:
           a first scaling value [a 0 ], which is used to obtain the delayed and scaled version [a 0 *z −d0 *M 0 ] of the first input signal [M 0 ];   a first fractional delay value [d 0 ], which is used to obtain the delayed and scaled version [a 0 *z −d0 *M 0 ] of the first input signal [M 0 ];   a second scaling value [a 1 ], which is used to obtain the delayed and scaled version [a 1 *z −d1 *M 1 ] of the second input signal [M 1 ]; and   a second fractional delay value [d 1 ], which is used to obtain the delayed and scaled version [a 1 *z −d1 *M 1 ] of the second input signal [M 1 ].   
               

     In accordance to an example, there is provided a method for obtaining a plurality of output signals [S′ 0 , S′ 1 ] associated with different sound sources [source 0 , source 1 ] on the basis of a plurality of input signals [e.g. microphone signals][M 0 , M 1 ], in which signals from the sound sources are combined [e.g. by subtracting a delayed and scaled version of a second input signal from a first input signal and/or by subtracting a delayed and scaled version of a first input signal from a second input signal],
         combining a first input signal [M 0 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 1 *z −d1 *M 1 ] of a second input signal [M 1 ] [e.g. by subtracting the delayed and scaled version of the second input signal from the first input signal], to obtain a first output signal [S′ 0 ],   combining a second input signal [M 1 ], or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version [a 0 *z −d0 *M 0 ] of the first input signal [M 0 ] [e.g. by subtracting the delayed and scaled version of the first input signal from the second input signal], to obtain a second output signal [S′ 1 ],   summing a plurality of products [e.g., as in formula (6) or (8)] between:   a respective element [P i (n), with i being 0 or 1] of a first set of normalized magnitude values [e.g., as in formula (7)], and   a logarithm of a quotient formed on the basis of:
           the respective element [P(n) or P 1 (n)] of the first set of normalized magnitude values; and   a respective element [Q(n) or Q 1 (n)] of a second set of normalized magnitude values,   
           in order to obtain a value [DKL(P∥Q) or D(P0,P 1 ) in formulas (6) or (8)] describing a similarity [or dissimilarity] between a signal portion [s 0 ′(n)] described by the first set of normalized magnitude values [P 0 (n), for n=1 to . . . ] and a signal portion [s 1 ′(n)] described by the second set of normalized magnitude values [P 1 (n), for n=1 to . . . ].       

     In accordance to an example, there is provided a method of any of the preceding method claims, configured to use equipment as above or below. 
     A non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform a method according to any of the preceding method claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Embodiments of the present invention will be detailed subsequently referring to the appended drawings, in which: 
         FIG. 1  shows a layout of microphones and sources useful to understand the invention; 
         FIG. 2 a    shows a functioning technique according to the present invention; 
         FIG. 2 b    shows a signal block diagram of convulsive mixing and mixing process; 
         FIG. 3  shows performance evaluation of BSS algorithm applied to simulated data; 
         FIG. 4  shows a layout of microphones and sound sources useful to understand the invention; 
         FIG. 5  shows an apparatus according to the invention; 
         FIGS. 6 a , 6 b  and 6 c    show results obtainable with the invention; and 
         FIG. 7  shows elements of the apparatus of  FIG. 5 . 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     It has been understood that by applying the techniques such as those discussed above and below, a signal may be processed so as to arrive at a plurality of signals S 1 ′ and S 0 ′ separated with each other. Therefore, the result is that the output signal S 1 ′ is not affected (or negligibly or minimally affected) from the sound S 0 , while the output signal S 1 ′ is not affected (or minimally or negligibly affected) by the effects of the sound S 1  onto the microphone mic 0 . 
     An example is provided by  FIG. 2 b   , showing a model of the physical relationships between the generated sounds S 0  and S 1  and the signal  502  as collectively obtained from the microphones M 0  and M 1 . The results are here represented in the z transform (which in some cases is not indicated for the sake of brevity). As can be seen from block  501 , the sound signal S 0  is subjected to a transfer function H 0,0 (z) which is summed to the sound signal S 1  (modified by a transfer function H 1,0 (z)). Accordingly, the signal M 0 (z) is obtained at microphone mic 0  and keeps into account, unwantedly, the sound signal S 1 (z). Analogously, the signal M 1 (z) as obtained at the microphone mic 1  includes both a component associated to the sound signal S 1 (z) (obtained through a transfer function H 1,1 (z)) and a second, unwanted component caused by the sound signal S 0 (z) (after having been subjected to the transfer function H 0,1 (z)). This phenomenon is called crosstalk. 
     In order to compensate for the crosstalk, the solution indicated at block  510  may be exploited. Here, the multi-channel output signal  504  includes:
         a first output signal S 0 ′(z) (representing the sound S 0  collected at microphone mic 0  but polished from the crosstalk), which includes at least the two components:
           the input signal M 0  and   a subtractive component  503   1  (which is a delayed and/or scaled version of the signal M 1  and which may be being obtained by subjecting the signal M 1  to the transfer function −a 1 ·z −d     1   )   
           an output signal S 1 ′ (z) (representing the sound S 1  collected at microphone mic 1  but polished from the crosstalk) which includes:
           the input signal M 1  and   a subtractive component  503   0  (which is a delayed and/or scaled version of the first input signal M 0  as obtained at the microphone mic 0  and which may be obtained by subjecting the signal M 0  to the transfer function −a 0 ·z −d     0   ).   
               

     The mathematical explanations are provided below, but it may be understood that the subtractive components  503   1  and  503   0  at block  510  compensate for the unwanted components caused at block  501 . It is therefore clear that block  510  permits to obtain a plurality ( 504 ) of output signals (S′ 0 , S′ 1 ), associated with different sound sources (source d , source 1 ), on the basis of a plurality ( 502 ) of input signals [e.g. microphone signals][(M 0 , M 1 ), in which signals (S 0 , S 1 ) from the sound sources (source 0 , source 1 ) are (unwantedly) combined ( 501 ). The block  510  may be configured to combine ( 510 ) the first input signal (M 0 ), or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version ( 503   1 ) [a 1 ·z −d1 ·M 1 ] of the second input signal (M 1 ) [e.g. by subtracting the delayed and scaled version of the second input signal from the first input signal, e.g. by S′ 0 (z)=M 0 (z)−a 1 ·z −d1 ·M 1 (z)], to obtain a first output signal (S′ 0 ); wherein the block is configured to combine ( 510 ) a second input signal (M 1 ), or a processed [e.g. delayed and/or scaled] version thereof, with a delayed and scaled version ( 503   0 ) [a 0 ·z −d0 ·M 0 ] of the first input signal [M 0 ] [e.g. by subtracting the delayed and scaled version of the first input signal from the second input signal, e.g. by S′ 1 (z)=M 1 (z)−a 0 ·z −d0 ·M 0 (z)], to obtain a second output signal [S′ 1 ]. 
     While the z transform is particularly useful in this case, it is notwithstanding possible to make use of other kinds of transforms or to directly operate in the time domain. 
     Basically, it may be understood that a couple of scaling values a 0  and a 1  modify the amplitude of the subtractive components  503   1  and  503   0  to obtain a scaled version of the input signals, and the delays d 0  and d 1  may be understood as fractional delays. In examples, the fractional delay d 0  may be understood as approximating the exponent of the z term of the result of the fraction H 0,1 (z)/H 0,0 (z)]. The fractional delay d 1  may be indicative of the relationship and/or difference between the delay (e.g. delay represented by H 1,0 ) of the signal (H 1,0 ·S 1 ) arriving at the first microphone (mic 0 ) from the second source (source 1 ) and the delay (e.g. delay represented by H 1,1 ) of the signal (H 1,1 ·S 1 ) arriving at the second microphone (mic 1 ) from the second (source 1 ). In examples, the fractional delay d 1  may be understood as approximating the exponent of the z term of the result of the fraction H 1,0 (z)/H 1,1 (z)]. The fractional delay d 0  may be indicative of the relationship and/or difference between the delay (e.g. delay represented by H 0,0 ) of the signal (H 0,0 ·S 0 ) arriving at the first microphone (mic 0 ) from the first source (source 0 ) and the delay (e.g. delay represented by H 0,1 ) of the signal (H 0,1 ·S 0 ) arriving at the second microphone (mic 1 ) from the first source (source 0 )][in examples, the fractional delay d 0  may be understood as approximating the exponent of the z term of the result of the fraction H 0,1 (z)/H 0,0 (z)]. 
     As it will be explained subsequently, it is possible to find the most advantageous values (also collectively indicated with the reference numeral  564 ), in particular:
         a first scaling value [a 0 ], e.g., which is used to obtain the delayed and scaled version  503   0  [a 0 ·z −d0 ·M 0 ] of the first input signal [ 502 , M 0 ];   a first fractional delay value [d 0 ], e.g., which is used to obtain the delayed and scaled version  503   0 [a 0 ·z −d0 ·M 0 ] of the first input signal [ 502 , M 0 ];   a second scaling value [a 1 ], e.g., which is used to obtain the delayed and scaled version  503   1  [a 1 ·z −d1 ·M 1 ] of the second input signal [ 502 , M 1 ]; and   a second fractional delay value [d 1 ], e.g., which is used to obtain the delayed and scaled version  503   1  [a 1 ·z −d1 ·M 1 ] of the second input signal [ 502 , M 1 ].       

     Techniques for obtaining the most advantageous scaling values a 0  and a 1  and delay values d 0  and d 1  are here discussed, particularly with reference to  FIG. 5 . As can be seen from  FIG. 5 , a stereo or multiple channel signal  502  (including the inputs signals M 0 (z) and M 1 (z)) is obtained. As can be seen, the method may be iterative, in the sense that it is possible to cycle along multiple iterations for obtaining the best values of the scaling values and the delay values to be adopted. 
       FIG. 5  shows an output  504  formed by signals S 0 ′(z) and S 1 ′(z) which are optimized, e.g. after multiple iterations.  FIG. 5  shows the mixing block  510 , which may be the block  510  of  FIG. 2   b.    
     The multichannel signal  510  (including its channel components, i.e. the multiple input signals S 0 ′(z) and S 1 ′(z)) is thus obtained by making use of scaling values a 0  and a 1  and delay values d 0  and d 1 , which are more and more optimized along the iterations. 
     At block  520 , normalizations are performed to the signals S 0 ′(z) and S 1 ′(z). An example of normalization is provided by formula (7), represented as the following quotient: 
     
       
         
           
             
               
                 
                   
                     
                       P 
                       i 
                     
                     ( 
                     n 
                     ) 
                   
                   = 
                   
                     
                       
                         ❘ 
                         &#34;\[LeftBracketingBar]&#34; 
                       
                       
                         
                           s 
                           i 
                           ′ 
                         
                         ( 
                         n 
                         ) 
                       
                       
                         ❘ 
                         &#34;\[RightBracketingBar]&#34; 
                       
                     
                     
                       
                          
                         
                           
                             ❘ 
                             &#34;\[LeftBracketingBar]&#34; 
                           
                           
                             s 
                             i 
                             ′ 
                           
                           
                             ❘ 
                             &#34;\[RightBracketingBar]&#34; 
                           
                         
                          
                       
                       ⁢ 
                       1 
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
     Here, i=0,1, indicating that there is a normalized value P 0 (n) for the input signal M 0  and a normalized value P 1 (n) for the input signal M 1 . The index n is the time index of the time domain input signal. Here, s i ′(n) is the time domain sample index (it is not a z transform) of the signal M i  (with i=0, 1). |s i ′(n)| indicates that the magnitude (e.g. absolute value) of s i ′(n) obtained and is therefore positive or, at worse, 0. This implies that the numerator in formula (7) is positive or, at worse, 0. ∥|s i ′|∥ 1  indicates that the denominator in formula (7) is formed by the 1-norm of the vector s i ′. The 1-norm ∥| . . . |∥ 1  indicates the sum of the magnitudes |s i ′(n)|, where n goes over the signal samples, e.g. up to the present index (e.g., the signal samples may be taken within a predetermined window from a past index to the present index). Hence, ∥|s i ′|∥ 1  (which is the denominator in formula (7)) is positive (or is 0 in some cases). Moreover, it is |s i ′(n)|≤∥|s i ′|∥ 1 , which implies that 0≤P i (n)≤1 (i=0,1). Further, also the following is verified: 
     
       
         
           
             
               
                 ∑ 
                 n 
               
               
                 
                   
                     s 
                     i 
                     ′ 
                   
                   ( 
                   n 
                   ) 
                 
                 
                   
                      
                     
                       
                         ❘ 
                         &#34;\[LeftBracketingBar]&#34; 
                       
                       
                         s 
                         i 
                         ′ 
                       
                       
                         ❘ 
                         &#34;\[RightBracketingBar]&#34; 
                       
                     
                      
                   
                   1 
                 
               
             
             = 
             1 
           
         
       
     
     It has been therefore noted that P 0 (n) and P 1 (n) can be artificially considered as probabilities since, by adopting equation (7), they verify:
         1. P i (n)≥0, ∀n   2. Σ n=0   ∞ P i (n)=1
 
with i=0,1 (further discussion is provided here below). “∞” is used for mathematical formalism, but can approximated over the considered signal.
       

     It is noted that other kinds of normalizations may be provided, and not only those obtained through formula (7). 
       FIG. 5  shows block  530  which is input by the normalized values  522  and outputs a similarity value (or the similarity value)  532 , giving information between the first and second input values M 0  and M 1 . Block  530  may be understood as a block which measures a metrics that gives an indication of how much the input signals M 0  and M 1  are similar (or dissimilar) to each other. 
     It has been understood that the metrics chosen for indicating the similarity or dissimilarity between the first and second input values may be the so-called Kullback-Leibler Divergence (KLD). This can be obtained using formulas (6) or (8): 
     
       
         
           
             
               
                 
                   
                     
                       D 
                       
                         K 
                         ⁢ 
                         L 
                       
                     
                     ( 
                     
                       P 
                       ⁢ 
                       
                         
                           ❘ 
                           &#34;\[LeftBracketingBar]&#34; 
                         
                         
                           ❘ 
                           &#34;\[RightBracketingBar]&#34; 
                         
                       
                       ⁢ 
                       Q 
                     
                     ) 
                   
                   = 
                   
                     
                       ∑ 
                       n 
                     
                     
                       
                         P 
                         ⁡ 
                         ( 
                         n 
                         ) 
                       
                       ⁢ 
                       
                         log 
                         ⁡ 
                         ( 
                         
                           
                             P 
                             ⁡ 
                             ( 
                             n 
                             ) 
                           
                           
                             Q 
                             ⁡ 
                             ( 
                             n 
                             ) 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
       
         
           
             
               
                 
                   
                     D 
                     ⁡ 
                     ( 
                     
                       
                         P 
                         0 
                       
                       , 
                       
                         P 
                         1 
                       
                     
                     ) 
                   
                   = 
                   
                     - 
                     
                       
                         ∑ 
                         n 
                       
                       
                         [ 
                         
                           
                             
                               
                                 P 
                                 0 
                               
                               ( 
                               n 
                               ) 
                             
                             · 
                             
                               log 
                               ⁡ 
                               ( 
                               
                                 
                                   
                                     P 
                                     0 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                                 
                                   
                                     P 
                                     1 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               ) 
                             
                           
                           + 
                           
                             
                               
                                 P 
                                 1 
                               
                               ( 
                               n 
                               ) 
                             
                             · 
                             
                               log 
                               ⁡ 
                               ( 
                               
                                 
                                   
                                     P 
                                     1 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                                 
                                   
                                     P 
                                     0 
                                   
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               ) 
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
     
     A discussion on how to obtain the Kullback-Leibler Divergence (KLD) is now provided.  FIG. 7  shows an example of block  530  downstream to block  520  of  FIG. 5 . Block  520  therefore provides P 0 (n) and P 1 (n) ( 522 ), e.g. using the formula (7) as discussed above (other techniques may be used). Block  530  (which may be understood as a Kullback-Leibler processor or KL processor) may be adapted to obtain a metrics  532 , which is in this case the Kullback-Leibler Divergence as calculated in formula (8). 
     With reference to  FIG. 7 , at a first branch  700   a , a quotient  702 ′ between P 0  (n) and P 1 (n) is calculated at block  702 . At block  706 , a logarithm of the quotient  702 ′ is calculated, hence, obtaining the value  706 ′. Then, the logarithm value  706 ′ may be used for scaling the normalized value P 0  at scaling block  710 , hence, obtaining a product  710 ′. At a second branch  700   b , a quotient  704 ′ is calculated at block  704 . The logarithm  708 ′ of the quotient  704 ′ is calculated at block  704 . Then, the logarithm value  708 ′ is used for scaling the normalized value at scaling block  712 , hence, obtaining the product  712 ′. 
     At adder block  714 , the values  710 ′ and  712 ′ (as respectively obtained at branches  700   a  and  700   b ) are combined to each other. The combined values  714 ′ are summed with each other and along the sample domain indexes at block  716 . The added values  716 ′ may be inverted at block  718  (e.g., scaled by −1) to obtain the inverted value  718 ′. It is to be noted that, while the value  716 ′ can be understood as a similarity value, the inverted value  718 ′ can be understood as a dissimilarity value. Either the value  716 ′ or the value  718 ′ may be provided as metrics  532  to the optimizer  560  as explained above (value  716 ′ indicating similarity, value  718 ′ indicating dissimilarity). 
     Hence, the optimizer block  530  may therefore permit to arrive at formula (8), i.e. 
     
       
         
           
             
               D 
               ⁡ 
               ( 
               
                 
                   P 
                   0 
                 
                 , 
                 
                   P 
                   1 
                 
               
               ) 
             
             = 
             
               - 
               
                 
                   ∑ 
                   n 
                 
                 
                   
                     [ 
                     
                       
                         
                           
                             P 
                             0 
                           
                           ( 
                           n 
                           ) 
                         
                         ⁢ 
                         log 
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 P 
                                 0 
                               
                               ( 
                               n 
                               ) 
                             
                             
                               
                                 P 
                                 1 
                               
                               ( 
                               n 
                               ) 
                             
                           
                           ) 
                         
                       
                       + 
                       
                         
                           
                             P 
                             1 
                           
                           ( 
                           n 
                           ) 
                         
                         ⁢ 
                         log 
                         ⁢ 
                         
                           ( 
                           
                             
                               
                                 P 
                                 1 
                               
                               ( 
                               n 
                               ) 
                             
                             
                               
                                 P 
                                 0 
                               
                               ( 
                               n 
                               ) 
                             
                           
                           ) 
                         
                       
                     
                     ] 
                   
                   . 
                 
               
             
           
         
       
     
     In order to arrive at formula (6), e.g. D KL , it could simply be possible to eliminate, from  FIG. 7 , blocks  704 ,  708 ,  712  and  714 , and substitute P 0  with P and P 1  with Q. 
     The Kullback-Leibler divergence was natively conceived for giving measurements regarding probabilities and is in principle, unrelated to the physical significance of the input signals M 0  and M 1 . Notwithstanding, the inventors have understood that, by normalizing the signals S 0 ′ and S 1 ′ and obtaining normalized values such as P 0 (n) and P 1 (n), the Kullback-Leibler Divergence provides a valid metrics for measuring the similarity/dissimilarity between the input signals M 0  and M 1 . Hence, it is possible to consider the normalized magnitude values of the time domain samples as probability distributions, and after that, it is possible to measure the metrics (e.g., as the Kullback-Leibler divergence, e.g. as obtained though formula (6) or (8)). 
     Reference is now made to  FIG. 5  again. For each iteration, the metrics  532  provides a good estimate of the validity of the scaling values a 0  and a 1  and the delay values d 0  and d 1 . Along the iterations, the different candidate values for the scaling values a 0  and a 1  and the delay values d 0  and d 1  will be chosen among those candidates, which presents the lowest similarity or highest dissimilarity. 
     Block  560  (optimizer) is input by the metrics  532  and outputs candidates  564  (vector) for the delay values d 0  and d 1  and the scaling values a 0  and a 1 . The optimizer  560  may measure the different metrics obtained for different groups of candidates a 0 , a 1 , d 0 , d 1 , change them, and choose the group of candidates associated to the lowest similarity (or highest dissimilarity)  532 . Hence, the output  504  (output signals S 0 ′(z), S 1 ′(z)) will provide the best approximation. The candidate values  564  may be grouped in a vector, which can be subsequently modified, for example, through a random technique ( FIG. 5  shows a random generator  540  providing a random input  542  to the optimizer  560 ). The optimizer  560  may make use of weights through which the candidate values  564  (a 0 , a 1 , d 0 , d 1 ) are scaled (e.g., randomly). Initial coefficient weights  562  may be provided, e.g., by default. An example of processing of the optimizer  560  is provided and discussed profusely below (“algorithm 1”). Possible correspondences between the lines of the algorithm and elements of  FIG. 5  are also shown in  FIG. 5 . 
     As may be seen, the optimizer  564  outputs a vector  564  of values a 0 , a 1 , d 0 , d 1 , which are subsequently reused at the mixing block  510  for obtaining new values  512 , new normalized values  522 , and new metrics  532 . After a certain number of iterations (which could be for example predefined) a maximum numbers of iterations may be, for example, a number chosen between 10 and 20. Basically, the optimizer  560  may be understood as finding the delay and iteration values, which minimize an objective function, which could be, for example, the metrics  532  obtained at block  530  and/or using formulas (6) and (8). 
     It has been therefore understood that the optimizer  560  may be based on a random direction optimization technique, such that candidate parameters form a candidates&#39; vector [e.g., with four entries, e.g. corresponding to  564 , a 0 , a 1 , d 0 , d 1 ], wherein the candidates&#39; vector is iteratively refined by modifying the candidates&#39; vector in random directions. 
     Basically, the candidates&#39; vector (indicated the subsequent values of a 0 , a 1 , d 0 , d 1 ) may be iteratively refined by modifying candidate vectors in random directions. For example, following the random input  542 , different candidate values may be modified by using different weights that vary randomly. Random directions may mean, for example, that while some candidate values are increased, other candidate values are decreased, or vice versa, without a predefined rule. Also the increments of the weights may be random, even though a maximum threshold may be predefined. 
     The optimizer  460  may be so that candidate parameters [a 0 , a 1 , d 0 , d 1 ] form a candidates&#39; vector, wherein, for each iteration, the candidates&#39; vector is perturbed [e.g., randomly] by applying a vector of uniformly distributed random numbers [e.g., each between −0.5 and +0.5], which are element-wise multiplied by (or added to) the elements of the candidates&#39; vector. It is therefore possible to avoid gradient processing, e.g., by using random direction optimization. Hence, by randomly perturbing the vector of coefficients, it is possible to arrive, step by step, to the advantageous values of a 0 , a 1 , d 0 , d 1  and to the output signal  504  in which the combined sounds S 0  and S 1  are appropriately compensated. The algorithm is discussed below with a detailed description. 
     In the present examples, reference is made to a multi-channel input signal  502  formed by two input channels (e.g., M 0 , M 1 ). Anyway, the same examples above also apply also for more than two channels. 
     In the examples, the logarithms may be in any base. It may be imagined that the base discussed above is 10. 
     Detailed Discussion of the Technique 
     One goal is a system for teleconferencing, for the separation of two speakers, or a speaker and a musical instrument or noise source, in a small office environment, not too far from a stereo microphone, as in available stereo webcams. The speakers or sources are assumed to be on opposing (left-right) sides of the stereo microphone. To be useful in real time teleconferencing, we want it to work online with as low delay as possible. For comparison, in this paper we focus on an offline implementation. Proposed approach works in time domain, using attenuation factors and fractional delays between microphone signals to minimize cross-talk, the principle of a fractional delay and sum beamformer. Compared to other approaches this has the ad-vantage that we have a lower number of variables to optimize, and we dont have the permutation problem of ICA like approaches in the frequency domain. To optimize the separation, we minimize the negative Kullback-Leibler derived objective function between the resulting separated signals. For the optimization we use a novel algorithm of “random directions”, without the need for gradients, which is very fast and robust. We evaluate our approach on convolutive mixtures generated from speech signals taken from the TIMIT data-set using a room impulse response simulator, and with real-life recordings. The results show that for the proposed scenarios our approach is competitive with regard to its separation performance, with a lower computational complexity and system delay to the Prior-Art approaches. 
     Index Terms—Blind source separation, time domain, binaural room impulse responses, optimization 
     1. Introduction, Previous Approaches 
     Our system is for applications where we have two microphones and want to separate two audio sources. This could be for instance a teleconferencing scenario with a stereo webcam in an office and two speakers around it, or for hearing aids, where low computational complexity is important. 
     Previous approaches: An early previous approach is Independent Components Analysis (ICA). It can unmix a mix of signals with no delay in the mixture. It finds the coefficients of the unmixing matrix by maximizing non-gaussianity or maximizing the Kullback-Leibler Divergence [1, 2]. But for audio signals and a stereo microphone pair we have propagation delay, in general convolutions with the room impulse responses [3], in the mix. Approaches to deal with it often apply the Short Time Fourier Transform (STFT) to the signals [4], e.g., AuxIVA [5] and ILRMA [6, 7]. This converts the signal delay into a complex valued factors in the STFT subbands, and a (complex valued) ICA can be applied in the resulting subbands (e.g. [8]). 
     Problem: A problem that occurs here is a permutation in the sub-bands, the separated sources can appear in different orders in different subbands; and the gain for different sources in different subbands might be different, leading to a modified spectral shape, a spectral flattening. Also we have a signal delay resulting from applying an STFT. It needs the assembly of the signal into blocks, which needs a system delay corresponding to the block size [9, 10]. 
     Time domain approaches, like TRINICON [11], or approaches that use the STFT with short blocks and more microphones [12, 13], have the advantage that they don&#39;t have a large blocking delay of the STFT, but they usually have a higher computational complexity, which makes them hard to use on small devices. 
     See also  FIG. 1 , showing a setup of loudspeakers and microphones in the simulation 
     2. Proposed Approach 
     To avoid the processing delays associated with frequency domain approaches, we use a time domain approach. Instead of using FIR filters, we use IIR filters, which are implemented as fractional delay allpass filters [14, 15], with an attenuation factor, the principle of a fractional delay and sum or adaptive beamformer [16, 17, 18]. This has the advantage that each such filter has only 2 coefficients, the fractional delay and the attenuation. For the 2-channel stereo case this leads to a total of only 4 coefficients, which are then easier to optimize. For simplicity, we don&#39;t do a dereverberation either, we focus on the crosstalk minimization. In effect we model the Relative Transfer Function between the two microphones by an attenuation and a pure fractional delay. We then apply a novel optimization of “random directions”, similar to the “Differential Evolution” method. 
     We assume a mixture recording from 2 sound sources (S 0  and S 1 ) made with 2 microphones (M 0  and M 1 ). However, the same result are also valid for more than two sources. The sound sources may be assumed to be in fixed positions as shown in  FIG. 1 . In order to avoid the need for modeling of non-causal impulse responses the sound sources have to be in different half-planes of the microphone pair (left-right). 
     Instead of the commonly used STFT, we may use the z-transform for the mathematical derivation, because it does not need the decomposition of the signal into blocks, with its associated delay. This makes it suitable for a time domain implementation with no algorithmic delay. Remember the (1-sided) z-transform of a time domain signal x(n), with sample index n, is defined as X(z)=Σ n=0   ∞ x(n)z −n . We use capital letter to denote z-transform domain signals. 
     Let us define s 0 (n) and s 1 (n) as our two time domain sound signals at the time instant (sample index) n, and their z-transforms as S 0 (z) and S 1 (z). The two microphone signals (collectively indicated with  502 ) are m 0 (n) and m 1 (n), and their z-transforms are M 0 (z) and M 1 (z) ( FIG. 2 ). 
     The Room Impulse Responses (RIRs) from the i&#39;s source to the j&#39;s microphone are h i,j (n), and their z-transform H i,j (z). Thus, our convolutive mixing system can be described in the z-domain as 
     
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         
                           
                             
                               M 
                               0 
                             
                             ( 
                             z 
                             ) 
                           
                         
                       
                       
                         
                           
                             
                               M 
                               1 
                             
                             ( 
                             z 
                             ) 
                           
                         
                       
                     
                     ] 
                   
                   = 
                   
                     
                       [ 
                       
                         
                           
                             
                               
                                 H 
                                 
                                   0 
                                   , 
                                   0 
                                 
                               
                               ( 
                               z 
                               ) 
                             
                           
                           
                             
                               
                                 H 
                                 
                                   1 
                                   , 
                                   0 
                                 
                               
                               ( 
                               z 
                               ) 
                             
                           
                         
                         
                           
                             
                               
                                 H 
                                 
                                   0 
                                   , 
                                   1 
                                 
                               
                               ( 
                               z 
                               ) 
                             
                           
                           
                             
                               
                                 H 
                                 
                                   1 
                                   , 
                                   1 
                                 
                               
                               ( 
                               z 
                               ) 
                             
                           
                         
                       
                       ] 
                     
                     . 
                     
                       [ 
                       
                         
                           
                             
                               
                                 S 
                                 0 
                               
                               ( 
                               z 
                               ) 
                             
                           
                         
                         
                           
                             
                               
                                 S 
                                 1 
                               
                               ( 
                               z 
                               ) 
                             
                           
                         
                       
                       ] 
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     In simplified matrix multiplication we can rewrite Equation (1) as 
         M ( z )= H ( z )· S ( z )   (2)
 
     For an ideal sound source separation we would need to invert the mixing matrix H(z). Hence, our sound sources could be calculated as 
     
       
         
           
             
               
                 
                   
                     S 
                     ⁡ 
                     ( 
                     z 
                     ) 
                   
                   = 
                   
                     
                       
                         
                           
                             H 
                             
                               - 
                               1 
                             
                           
                           ( 
                           z 
                           ) 
                         
                         ⁢ 
                         
                           M 
                           ⁡ 
                           ( 
                           z 
                           ) 
                         
                       
                       ⇒ 
                       
                         [ 
                         
                           
                             
                               
                                 
                                   S 
                                   0 
                                 
                                 ( 
                                 z 
                                 ) 
                               
                             
                           
                           
                             
                               
                                 
                                   S 
                                   1 
                                 
                                 ( 
                                 z 
                                 ) 
                               
                             
                           
                         
                         ] 
                       
                     
                     = 
                     
                       
                         [ 
                         
                           
                             
                               
                                 
                                   H 
                                   
                                     1 
                                     , 
                                     1 
                                   
                                 
                                 ( 
                                 z 
                                 ) 
                               
                             
                             
                               
                                 - 
                                 
                                   
                                     H 
                                     
                                       1 
                                       , 
                                       0 
                                     
                                   
                                   ( 
                                   z 
                                   ) 
                                 
                               
                             
                           
                           
                             
                               
                                 - 
                                 
                                   
                                     H 
                                     
                                       0 
                                       , 
                                       1 
                                     
                                   
                                   ( 
                                   z 
                                   ) 
                                 
                               
                             
                             
                               
                                 
                                   H 
                                   
                                     0 
                                     , 
                                     0 
                                   
                                 
                                 ( 
                                 z 
                                 ) 
                               
                             
                           
                         
                         ] 
                       
                       · 
                       
                         1 
                         
                           det 
                           ( 
                           
                             H 
                             ⁡ 
                             ( 
                             z 
                             ) 
                           
                           ) 
                         
                       
                       · 
                       
                         [ 
                         
                           
                             
                               
                                 
                                   M 
                                   0 
                                 
                                 ( 
                                 z 
                                 ) 
                               
                             
                           
                           
                             
                               
                                 
                                   M 
                                   1 
                                 
                                 ( 
                                 z 
                                 ) 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     Since det (H(z)) and diagonal elements of the inverse matrix are linear filters which do not contribute to the unmixing, we can neglect them for the separation, and bring them to the left side of eq. (3). This results in 
     
       
         
           
             
               
                 
                   
                     
                       [ 
                       
                         
                           
                             
                               
                                 H 
                                 
                                   1 
                                   , 
                                   1 
                                 
                                 
                                   - 
                                   1 
                                 
                               
                               ⁡ 
                               
                                 ( 
                                 z 
                                 ) 
                               
                             
                           
                           
                             0 
                           
                         
                         
                           
                             0 
                           
                           
                             
                               
                                 H 
                                 
                                   0 
                                   , 
                                   0 
                                 
                                 
                                   - 
                                   1 
                                 
                               
                               ⁡ 
                               
                                 ( 
                                 z 
                                 ) 
                               
                             
                           
                         
                       
                       ] 
                     
                     · 
                     
                       [ 
                       
                         
                           
                             
                               
                                 S 
                                 0 
                               
                               ⁡ 
                               
                                 ( 
                                 z 
                                 ) 
                               
                             
                           
                         
                         
                           
                             
                               
                                 S 
                                 1 
                               
                               ⁡ 
                               
                                 ( 
                                 z 
                                 ) 
                               
                             
                           
                         
                       
                       ] 
                     
                     · 
                     
                       det 
                       ⁡ 
                       
                         ( 
                         
                           H 
                           ⁡ 
                           
                             ( 
                             z 
                             ) 
                           
                         
                         ) 
                       
                     
                   
                   = 
                   
                       
                     
                       
                         [ 
                         
                           
                             
                               1 
                             
                             
                               
                                 
                                   - 
                                   
                                     
                                       H 
                                       
                                         1 
                                         , 
                                         1 
                                       
                                       
                                         - 
                                         1 
                                       
                                     
                                     ⁡ 
                                     
                                       ( 
                                       z 
                                       ) 
                                     
                                   
                                 
                                 ⁢ 
                                 
                                   
                                     H 
                                     
                                       1 
                                       , 
                                       0 
                                     
                                   
                                   ⁡ 
                                   
                                     ( 
                                     z 
                                     ) 
                                   
                                 
                               
                             
                           
                           
                             
                               
                                 
                                   - 
                                   
                                     
                                       H 
                                       
                                         0 
                                         , 
                                         0 
                                       
                                       
                                         - 
                                         1 
                                       
                                     
                                     ⁡ 
                                     
                                       ( 
                                       z 
                                       ) 
                                     
                                   
                                 
                                 ⁢ 
                                 
                                   
                                     H 
                                     
                                       0 
                                       , 
                                       1 
                                     
                                   
                                   ⁡ 
                                   
                                     ( 
                                     z 
                                     ) 
                                   
                                 
                               
                             
                             
                               1 
                             
                           
                         
                         ] 
                       
                       · 
                       
                         [ 
                         
                           
                             
                               
                                 
                                   M 
                                   0 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   z 
                                   ) 
                                 
                               
                             
                           
                           
                             
                               
                                 
                                   M 
                                   1 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   z 
                                   ) 
                                 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     where H 1,1   −1 (z)·H 1,0 (z) and H 0,0   −1 (z)·H 0,1 (z) are now relative room transfer functions. 
     Next we approximate these relative room transfer functions by fractional delays by d i  samples and attenuation factors a i , 
         H   i,i   −1 ( z )· H   i,j ( z )≈ a   i   z   −d     i      (5)
 
     where i,j∈{0,1}. 
     This approximation works particularly well when reverberation or echo is not too strong. For the fractional delays by d i  samples we use the fractional delay filter in the next section (2.1). Note that for simplicity we keep the linear filter resulting from the determinant and from the matrix diagonal H i,i (z) on the left-hand side, meaning there is no dereverberation. 
     An example is provided here with reference to  FIG. 1 : assume two sources in a free field, without any reflections, symmetrically on opposing sides around a stereo microphone pair. The distance (in samples) of source 0  to the near microphone shall be m 0 =50 samples, to the far microphone m 1 =55 samples. The sound amplitude shall decay according to the function k/(m i   2 ) with some constant k. Then the room transfer functions in the z-domain are H 0,0 (z)=H 1,1 (z)=k/50 2 ·z −50  and 
     
       
         
           
             
               
                 
                   H 
                   
                     0 
                     , 
                     1 
                   
                 
                 ⁡ 
                 
                   ( 
                   z 
                   ) 
                 
               
               = 
               
                 
                   
                     H 
                     
                       1 
                       , 
                       0 
                     
                   
                   ⁡ 
                   
                     ( 
                     z 
                     ) 
                   
                 
                 = 
                 
                   
                     k 
                     
                       5 
                       ⁢ 
                       
                         5 
                         2 
                       
                     
                   
                   · 
                   
                     z 
                     
                       
                         - 
                         5 
                       
                       ⁢ 
                       5 
                     
                   
                 
               
             
             , 
           
         
       
     
     and one relative room transfer function is 
     
       
         
           
             
               
                 
                   
                     H 
                     
                       0 
                       , 
                       0 
                     
                     
                       - 
                       1 
                     
                   
                   ⁡ 
                   
                     ( 
                     z 
                     ) 
                   
                 
                 · 
                 
                   
                     H 
                     
                       0 
                       , 
                       1 
                     
                   
                   ⁡ 
                   
                     ( 
                     z 
                     ) 
                   
                 
               
               = 
               
                 
                   
                     5 
                     ⁢ 
                     
                       0 
                       2 
                     
                   
                   
                     5 
                     ⁢ 
                     
                       5 
                       2 
                     
                   
                 
                 · 
                 
                   z 
                   
                     - 
                     5 
                   
                 
               
             
             , 
           
         
       
     
     the same for the other relative room transfer function. We see that in this simple case the relative room transfer function is indeed 0.825·z −5 , exactly an attenuation and a delay. The signal flowchart of convolutive mixing and demixing process can be seen in  FIG. 2 b   . ( FIG. 2 b   : Signal block diagram of convolutive mixing and demixing process). 
     2.1. The Fractional Delay Allpass Filter 
     The fractional delay allpass filter for implementing the delay z d     i    of eq. (5) plays an important role in our scheme, because it produces an IIR filter out of just a single coefficient, and allows for implementation of a precise fractional delay (where the precise delay is not an integer value), needed for good cross-talk cancellation. The IIR property also allows for an efficient implementation. [14, 15] describes a practical method for designing fractional delay allpass filters, based on IIR filters with maximally flat group delay [19]. We use the following equations to obtain the coefficients for our fractional delay allpass filter, for a fractional delay τ=d i . Its transfer function in the z-domain is A(z), with [14] 
     
       
         
           
             
               A 
               ⁡ 
               
                 ( 
                 z 
                 ) 
               
             
             = 
             
               
                 
                   z 
                   
                     - 
                     L 
                   
                 
                 ⁢ 
                 
                   D 
                   ⁡ 
                   
                     ( 
                     
                       1 
                       z 
                     
                     ) 
                   
                 
               
               
                 D 
                 ⁡ 
                 
                   ( 
                   z 
                   ) 
                 
               
             
           
         
       
     
     where D (z) is of order L=[τ], defined as: 
     
       
         
           
             
               D 
               ⁡ 
               
                 ( 
                 z 
                 ) 
               
             
             = 
             
               1 
               + 
               
                 
                   ∑ 
                   
                     n 
                     = 
                     1 
                   
                   L 
                 
                 ⁢ 
                 
                   
                     d 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   ⁢ 
                   
                     z 
                     
                       - 
                       n 
                     
                   
                 
               
             
           
         
       
     
     The filter d(n) is generated as: 
     
       
         
           
             
               
                 d 
                 ⁡ 
                 
                   ( 
                   0 
                   ) 
                 
               
               = 
               1 
             
             , 
             
               
 
             
             ⁢ 
             
               
                 d 
                 ⁡ 
                 
                   ( 
                   
                     n 
                     + 
                     1 
                   
                   ) 
                 
               
               = 
               
                 
                   d 
                   ⁡ 
                   
                     ( 
                     n 
                     ) 
                   
                 
                 · 
                 
                   
                     
                       ( 
                       
                         L 
                         - 
                         n 
                       
                       ) 
                     
                     ⁢ 
                     
                       ( 
                       
                         L 
                         - 
                         n 
                         - 
                         τ 
                       
                       ) 
                     
                   
                   
                     
                       ( 
                       
                         n 
                         + 
                         1 
                       
                       ) 
                     
                     ⁢ 
                     
                       ( 
                       
                         n 
                         + 
                         1 
                         + 
                         τ 
                       
                       ) 
                     
                   
                 
               
             
           
         
       
     
     for 0≤n≤(L−1). 
     2.2. Objective Function 
     As objective function, we use a function D (P 0 , P 1 ) which is derived from the Kullback-Leibler Divergence (KLD), 
     
       
         
           
             
               
                 
                   
                     
                       D 
                       KL 
                     
                     ⁡ 
                     
                       ( 
                       
                         P 
                         ⁢ 
                         
                            
                            
                         
                         ⁢ 
                         Q 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       n 
                     
                     ⁢ 
                     
                       
                         P 
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                       · 
                       
                         log 
                         ⁡ 
                         
                           ( 
                           
                             
                               P 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             
                               Q 
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
     where P(n) and Q(n) are probability distributions of our (unmixed) microphones channels, and n runs over the discrete distributions. 
     In order to make the computation faster we avoid computing histograms. Instead of the histogram we use the normalized magnitude of the time domain signal itself, 
     
       
         
           
             
               
                 
                   
                     
                       P 
                       i 
                     
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                        
                       
                         
                           s 
                           i 
                           ′ 
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                        
                     
                     
                       
                          
                         
                            
                           
                             s 
                             i 
                             ′ 
                           
                            
                         
                          
                       
                       1 
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
     where n now is the time domain sample index. Notice, that P i (n) has similar properties with that of a probability, namely: 
     1. P i (n)≤0, ∀n. 
     2. Σ n=0   ∞ P i (n)=1. 
     with i=0, 1. Instead of using the Kullback-Leibler Divergence directly, we turn our objective function into a symmetric (distance) function by using the sum D KL (P∥Q)+D KL (Q∥P), because this makes our separation more stable between the two channels. In order to apply minimization instead of maximization, we take its negative value. Hence our resulting objective function D(P 0 ,P 1 ) is 
     
       
         
           
             
               
                 
                   
                     D 
                     ⁡ 
                     
                       ( 
                       
                         
                           P 
                           0 
                         
                         , 
                         
                           P 
                           1 
                         
                       
                       ) 
                     
                   
                   = 
                   
                     - 
                     
                       
                         ∑ 
                         n 
                       
                       ⁢ 
                       
                         [ 
                         
                           
                             
                               
                                 P 
                                 0 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             · 
                             
                               log 
                               ⁡ 
                               
                                 ( 
                                 
                                   
                                     
                                       P 
                                       0 
                                     
                                     ⁡ 
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                   
                                     
                                       P 
                                       1 
                                     
                                     ⁡ 
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                 
                                 ) 
                               
                             
                           
                           + 
                           
                             
                               
                                 P 
                                 1 
                               
                               ⁡ 
                               
                                 ( 
                                 n 
                                 ) 
                               
                             
                             · 
                             
                               log 
                               ⁡ 
                               
                                 ( 
                                 
                                   
                                     
                                       P 
                                       1 
                                     
                                     ⁡ 
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                   
                                     
                                       P 
                                       0 
                                     
                                     ⁡ 
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                 
                                 ) 
                               
                             
                           
                         
                         ] 
                       
                     
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
     
     2.3. Optimization 
     A widespread optimization method for BSS is Gradient Descent. This has the advantage that it finds the “steepest” way to an optimum, but it involves the computation of gradients, and gets easily stuck in local minima or is slowed down by “narrow valleys” of the objective function. Hence, for the optimization of our coefficients we use a novel optimization of “random directions”, similar to “Differential Evolution” [20, 21, 22]. Instead of differences of coefficient vectors for the update, we use a weight vector to model the expected variance distribution of our coefficients. This leads to a very simple yet very fast optimization algorithm, which can also be easily applied to real time processing, which is important for real time communications applications. The algorithm starts with a fixed starting point [1.0, 1.0, 1.0, 1.0], which we found to lead to robust convergence behaviour. Then it perturbs the current point with a vector of uniformly distributed random numbers between −0.5 and +0.5 (the random direction), element-wise multiplied with our weight vector (line 10 in Algorithm 1). If this perturbed point has a lower objective function value, we choose it as our next current point, and so on. The pseudo code of the optimization algorithm can be seen in Algorithm 1. Where, minabskl_i (indicated as negabskl_i in Algorithm 1) is our objective function that computes KLD from the coefficient vector coeffs and the microphone signals in array X. 
     We found that 20 iterations (and hence only 20 objective function evaluations) are already sufficient for our test files (each time the entire file), which makes this a very fast algorithm. 
     The optimization may be performed, or example, at block  560  (see above). 
     Algorithm 1 is shown here below. 
     
       
         
           
               
             
               
                   
               
               
                 Algorithm 1 Optimization algorithm 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
            
               
                 1: 
                 procedure OPTIMIZE SEPARATION COEFFICIENTS(X) 
               
               
                 2: 
                  INITIALIZATION 
               
               
                 3: 
                   X ← convolutive mixture 
               
               
                 4: 
                   init_coeffs = [1.0, 1.0, 1.0, 1.0] ← 
               
               
                   
                  initial guess for separation coefficients 
               
               
                 5: 
                   coeffweights ← weights for random search 
               
               
                 6: 
                   coeffs = init_coeffs ← separation coefficients 
               
               
                 7: 
                   negabskl_0(coeffs, X) ← calculation of KLD 
               
               
                 8: 
                  OPTIMIZATION ROUTINE 
               
               
                 9: 
                   loop: 
               
               
                 10: 
                    coeffvariation=(random(4)*coeffweights) ← 
               
               
                   
                  random variation of separation coefficients 
               
               
                 11: 
                    negabskl_l (coeffs+coeffvariation, X) ← 
               
               
                   
                  calculation of new KLD 
               
               
                 12: 
                    if negabskl_l &lt; negabskl_0 then 
               
               
                 13: 
                     negabskl_0 = negabskl_1 
               
               
                 14: 
                     coeffs = coeffs+coeffvariation ← 
               
               
                   
                  update separation coefficients 
               
               
                   
               
            
           
         
       
     
     3. Experimental Results 
     In this section, we evaluate the proposed time domain separation method, which we call AIRES (time domAIn fRactional dElay Separation), by using simulated room impulse responses and different speech signals from the TIMIT data-set [23]. Moreover, we made real-life recordings in real room environments. In order to evaluate the performance of our proposed approach, comparisons with Stateof-the-Art BSS algorithms were done, namely, time-domain TRINICON [11], frequency-domain AuxIVA [5] and ILRMA [6, 7]. An implementation of the TRINICON BSS has been received from its authors. Implementations of AuxIVA and ILRMA BSS were taken from [24] and [25], respectively. The experiment has been performed using MATLAB R2017a on a laptop with CPU Core i7 8-th Gen. and 16 Gb of RAM. 
     3.1. Separation Performance with Synthetic RIRs 
     The room impulse response simulator based on the image model technique [26, 27] was used to generate room impulse responses. For the simulation setup the room size have been chosen to be 7 m×5 m×3 m. The microphones were positioned in the middle of the room at [3.475, 2.0, 1.5]m and [3.525, 2.0, 1.5]m, and the sampling frequency was 16 kHz. Ten pairs of speech signals were randomly chosen from the whole TIMIT data-set and convolved with the simulated RIRs. For each pair of signals, the simulation was repeated 16 times for random angle positions of the sound sources relatively to microphones, for 4 different distances and 3 reverberation times (RT60). The common parameters used in all simulations are given in Table 1 and a visualization of the setup can be seen in  FIG. 1 . The evaluation of the separation performance was done objectively by computing the Signal-to-Distortion Ratio (SDR) measure [28], as the original speech sources are available, and the computation time. The results are shown in  FIG. 3 . 
     The obtained results show a good performance of our approach for reverberation times smaller than 0.2 s. For RT60=0.05 s the average SDR measure over all distances is 15.64 dB and for RT60=0.1 s it is 10.24 dB. For a reverberation time RT60=0.2 s our proposed BSS algorithm shares second place with ILRMA after TRINICON. The average computation time (on our computer) over all simulations can be seen in Table 2. As can be seen, AIRES outperforms all State-of-the-Art algorithms in terms of computation time. 
     By listening to the results we found that an SDR of about 8 dB results in good speech intelligibility, and our approach indeed features no unnatural sounding artifacts. 
     
       
         
           
               
             
               
                 TABLE 1 
               
               
                   
               
               
                 Parameters used in simulation: 
               
               
                   
               
             
            
               
                   
               
            
           
           
               
               
               
            
               
                   
                 Room dimensions 
                 7 m × 5 m × 3 m 
               
               
                   
                 Microphones displacement 
                 0.05 m 
               
               
                   
                 Reverberation time RT 60   
                 0.05, 0.1, 0.2 s 
               
               
                   
                 Amount of mixes 
                 10 random mixes 
               
               
                   
                 Conditions for each mix 
                 16 random angles ×  
               
               
                   
                   
                 4 distances 
               
               
                   
                   
               
            
           
         
       
     
     Characterization of  FIG. 3  (showing performance evaluation of BSS algorithms applied to simulated data):
         (a) RT60=0.05 s   (b) RT60=0.1 s   (c) RT60=0.2 s       

     
       
         
           
               
             
               
                 TABLE 2 
               
             
            
               
                   
               
               
                 Comparison of average computation time (simulated datasets). 
               
            
           
           
               
               
               
               
               
            
               
                 BSS 
                 AIRES 
                 TRINICON 
                 ILRMA 
                 AuxIVA 
               
               
                   
               
               
                 Computation 
                 0.05 s 
                 23.4 s 
                 4.4 s 
                 0.6 s 
               
               
                 time 
                   
                   
                   
                   
               
               
                   
               
            
           
         
       
     
     3.2. Real-Life Experiment 
     Finally, to evaluate the proposed sound source separation method, a real-life experiment was conducted. The real recordings have been captured in 3 different room types. Namely, in a small apartment room (3 m×3 m), in an office room (7 m×5 m) and in a big conference room (15 m×4 m). For each room type, 10 stereo mixtures of two speakers have been recorded. Due to the absence of “ground truth” signals, in order to evaluate separation performance the mutual information measure [29] between separated channels has been calculated. The results can be seen in Table 3. Please note, that the average mutual information of the mixed microphone channels is 1.37, and the lower the mutual information between the separated signal the better the separation. 
     
       
         
           
               
             
               
                 TABLE 3 
               
             
            
               
                   
               
               
                 Comparison of separation performance using  
               
               
                 Mean Mutual Information (MI, real recordings). 
               
            
           
           
               
               
               
               
               
            
               
                 BSS 
                 AIRES 
                 TRINICON 
                 ILRMA 
                 AuxIVA 
               
               
                   
               
            
           
           
               
               
               
               
               
            
               
                 Mean MI 
                 0.5 
                 0.47 
                 0.52 
                 0.52 
               
               
                 Mean Computation 
                 0.22 s 
                 120.2 s 
                 7.86 s 
                 1.5 s 
               
               
                 time 
               
               
                   
               
            
           
         
       
     
     From the comparison Table 3 it can be seen that the performance tendency for the separation of the real recorded convolutive mixtures stayed the same as for simulated data. Thus, one can conclude that AIRES despite its simplicity can compete with Prior-Art blind source separation algorithms. 
     4. Conclusions 
     In this paper, we presented a fast time-domain blind source separation technique based on the estimation of IIR fractional delay filters to minimize crosstalk between two audio channels. We have shown that estimation of the fractional delays and attenuation factors results in a fast and effective separation of the source signals from stereo convolutive mixtures. For this, we introduced an objective function which was derived from the negative Kullback-Leibler Divergence. To make the minimization robust and fast, we presented a novel “random directions” optimization method, which is similar to the optimization of “differential evolution”. To evaluate the proposed BSS technique, a set of experiments was conducted. We evaluated and compared our system with other State-of-the-Art methods on simulated data and also real room recordings. Results show that our system, despite its simplicity, is competitive in its separation performance, but has much lower computational complexity and no system delay. This also enables an online adaption for real time minimum delay applications and for moving sources (like a moving speaker). These properties make AIRES well suited for real time applications on small devices, like hearing aids or small teleconferencing setups. A test program of AIRES BSS is available on our GitHub [30]. 
     Further Aspects (See Also Examples Above and/or Below) 
     Further aspects are here discussed, e.g. regarding a Multichannel or stereo audio source separation method and update method for it. It minimizes an objective function (like mutual information), and uses crosstalk reduction by taking the signal from the other channel(s), apply an attenuation factor and a (possible fractional) delay to it, and subtract it from the current channel, for example. It uses the method of “random directions” to update the delay and attenuation coefficients, for example. 
     See also the following aspects:
         1: A multichannel or stereo source separation method, whose coefficients for the separation are iteratively updated by adding a random update vector, and if this update results in an improved separation, keeping this update for the next iteration; otherwise discard it.   2: A method according to aspect 1 with suitable fixed variances for the random update for each coefficient.   3: A method according to aspect 1, or 2, where the update occurs on a live audio stream, where the update is based on past audio samples.   4: A method according to aspect 1, 2 or 3, where the variance of the update is slowly reduced over time.       

     Other aspects may be:
         1) A method of online optimization of parameters, which minimizes an objective function with a multi-dimensional input vector x, by first determining a test vector from a given vicinity space, then update the previous best vector with the search vector, and if the such obtained value of the objective function, this updated vector becomes the new best, otherwise it is discarded.   2) Method of aspect 1, applied to the task of separating N sources in an audio stream of N channels, where coefficient vector consists of delay and attenuation values needed to cancel unwanted sources.   3) Method of aspect 2, applied to task of teleconferencing with more than 1 speaker on one or more sites.   4) Method of aspect 2, applied to the task of separating audio sources before encoding them with audio encoders.   5) Method of aspect 2, applied to the task of separating a speech source from music or noise source(s).       

     Additional Aspects 
     Additional aspects are here discussed. 
     Introduction Stereo Separation 
     A goal is to separate sources with multiple microphones (here: 2). Different microphones pick up sound with different amplitudes and delays. Discussion below takes into account programming examples in Python. This is for easier understandability, to test if and how algorithms work, and for reproducibility of results, to make algorithms testable and useful for other researchers. 
     Other Aspects 
     Here below, other aspects are discussed. They are not necessarily bounded with each other, but that may be combined for creating new embodiments. Each bullet point may be independent from the other ones and may, alone or in combination with other features (e.g. other bullet points), or other features discussed above or below complement or further specify at least some of the examples above and/or below and/or some of the features disclosed in the claims. 
     Spatial Perception 
     The ear mainly uses 2 effects to estimate the special direction of sound:
         Interaural Level Differences (ILD)   Interaural Time Differences (ITD)   Music from studio recordings mostly use only level differences (no time differences), called “panning”.   Signal from stereo Microphones, for instance from stereo webcams, show mainly time differences, and not much level differences.       

     Stereo Recording with Stereo Microphones
         The setup with stereo microphones with time differences.   Observe: The effect of the sound delays from the finite speed of sound and attenuations can be described by a mixing matrix with delays.       

     See  FIG. 2 a   : A stereo teleconferencing setup. Observe the signal delays between the microphones. 
     Stereo Separation, ILD 
     
         
         
           
             The case with no time differences (panning only) is the easier one 
             Normally, Independent Component Analysis is used 
             It computes an “unmixing” matrix which produces statistically independent signals. 
             Remember: joint entropy of two signals X and Y is H(X, Y) 
             The conditional entropy is H(X|Y) 
             Statistically independent also means: H(X|Y)=H(X), H(X, Y)=H(X)+H(Y) 
             Mutual information: I(X, Y)=H(X, Y)−H(X|Y)−H(Y|X)≥0, for independence it becomes 0 
             In general the optimization minimizes this mutual information. 
           
         
       
    
     ITD Previous Approach 
     
         
         
           
             The ITD case with time differences is more difficult to solve 
             The “Minimum Variance Principle” tries to suppress noise from a microphone array 
             It estimates a correlation matrix of the microphone channels, and applies a Principle Component Analysis (PCA) or Karhounen-Loeve Transform (KLT). 
             This de-correlates the resulting channels. 
             The channels with the lowest Eigenvalues are assumed to be noise and set to zero 
           
         
       
    
     ITD Previous Approach Example 
     
         
         
           
             For our stereo case, we only get 2 channels, and compute and play the signals with the larger and smaller Eigenvalue: python KLT_separation.py 
             Observe: The channel with the larger Eigenvalue seem to have the lower frequencies, the other the (weaker) higher frequencies, which are often just noise. 
           
         
       
    
     ITD, New Approach 
     
         
         
           
             Idea: the unmixing matrix needs signal delays for unmixing, for inverting the mixing matrix 
             Important simplification: we assume only a single signal delay path between the microphones for each of the 2 sources. 
             In reality there are multiple delays from room reflections, but usually much weaker than the direct path. 
           
         
       
    
     Stereo Separation, ITD, New Approach 
     Assume a mixing matrix, with attenuations a; and delays of d; samples. In the z-transform domain, a delay by d samples is represented by a factor of z d  (observe that the delay can be fractional samples): 
     
       
         
           
             A 
             = 
             
               [ 
               
                 
                   
                     1 
                   
                   
                     
                       
                         a 
                         0 
                       
                       ⁢ 
                       
                         z 
                         
                           - 
                           
                             d 
                             0 
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         a 
                         1 
                       
                       ⁢ 
                       
                         z 
                         
                           - 
                           
                             d 
                             1 
                           
                         
                       
                     
                   
                   
                     1 
                   
                 
               
               ] 
             
           
         
       
     
     Hence the unmixing matrix is its inverse: 
     
       
         
           
             
               A 
               
                 - 
                 1 
               
             
             = 
             
               
                 1 
                 
                   1 
                   - 
                   
                     
                       a 
                       0 
                     
                     ⁢ 
                     
                       z 
                       
                         
                           - 
                           
                             d 
                             0 
                           
                         
                         - 
                         
                           d 
                           1 
                         
                       
                     
                   
                 
               
               · 
               
                 [ 
                 
                   
                     
                       1 
                     
                     
                       
                         
                           a 
                           0 
                         
                         ⁢ 
                         
                           z 
                           
                             - 
                             
                               d 
                               0 
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           a 
                           1 
                         
                         ⁢ 
                         
                           z 
                           
                             - 
                             
                               d 
                               1 
                             
                           
                         
                       
                     
                     
                       1 
                     
                   
                 
                 ] 
               
             
           
         
       
     
     It turns out we can simplify the unmixing matrix by dropping the fraction with the determinant in front of the matrix without sacrificing performance in practice. 
     Coefficient Computation 
     The coefficients a; and d; need to be obtained by optimization. We can again use minimization of the mutual information of the resulting signals to find the coefficients. For the mutual information we need the joint entropy. In Python we can compute it from the 2-dimensional probability density function using numpy.histogram2d. we call it with hist2d, xedges, yedges=np.histogram2d(x[:,0],x[:,1],bins=100) 
     Optimization of the Objective Function 
     Note that our objective function might have several minima! This means we cannot use convex optimization if its starting point is not sufficiently close to the global minimum.
         Hence we need to use non-convex optimization Python has a very powerful non-convex optimization method:   scipy.optimize.differential_evolution. We call it with coeffs_minimized=opt.differential_evolution(mutualinfocoeffs, bounds, args=(X,),tol=1e−4, disp=True)       

     Alternative Objective Functions 
     But that is complex to compute. Hence we look for an alternative objective function which has the same minimum. We consider Kullback-Leibler and Itakura-Saito Divergences 
     The Kullback-Leibler Divergence of 2 probability distributions P and Q, is defined as 
     
       
         
           
             
               
                 D 
                 KL 
               
               ⁡ 
               
                 ( 
                 
                   P 
                   , 
                   Q 
                 
                 ) 
               
             
             = 
             
               
                 ∑ 
                 
                   n 
                   = 
                   i 
                 
               
               ⁢ 
               
                 
                   
                     P 
                     ⁡ 
                     
                       ( 
                       i 
                       ) 
                     
                   
                   · 
                   log 
                 
                 ⁢ 
                 
                   
                     P 
                     ⁡ 
                     
                       ( 
                       i 
                       ) 
                     
                   
                   
                     
                       Q 
                       1 
                     
                     ⁡ 
                     
                       ( 
                       i 
                       ) 
                     
                   
                 
               
             
           
         
       
     
     i runs over the (discrete) distributions. To avoid computing histograms, we simply treat the normalized magnitudes of our time domain samples as a probability distribution as a trick. Since these are dissimilarity measure, they need to be maximized, hence their negative values need to be minimized. 
     Kullback-Leibler Python Function 
     In Python this objective function is
         def minabsklcoeffs(coeffs,X):       

     
       
         
           
               
             
               
                   
               
             
            
               
                 #computes the normalized magnitude of the channels and then applies 
               
               
                 #the Kullback-Leibler divergence 
               
               
                 X_prime=unmixing(coeffs,X) 
               
               
                 X_abs=np.abs(X_prime) 
               
               
                 #normalize to sum( )=1, to make it look like a probability: 
               
               
                 X_abs[:,0]=X_abs[:,0]/np.sum(X_abs[:,0] 
               
               
                 X_abs[:,1]=X_abs[:,1]/np.sum(X_abs[:,1]) 
               
               
                 #print(“Kullback-Leibler Divergence calculation”) 
               
               
                 abskl= np.sum( X_abs[:,0] * np.log((X_abs[:,0]+1e−6) /  
               
               
                 (X_abs[:,1]+1e−6)) → ) 
               
               
                 return −abskl 
               
               
                   
               
            
           
         
       
         
         
           
             (here minabsklcoeffs correspondd to minabsk_i in Algorithm 1) 
           
         
       
    
     Comparison of Objective Functions 
     We fix the coefficients except one of the delay coefficients, to compare the objective functions in a plot. 
       FIG. 6 a    shows objective functions for an example signal and example coefficients. Observe that the functions have indeed the same minima! “abskl” is Kullback-Leibler on the absolute values of the signal, and is the smoothest. 
     Optimization Examples 
     
         
         
           
             Optimization using mutual information: python 
             ICAmutualinfo_puredelay.py 
             (this needs ca. 121 slower iterations) 
             Optimization using Kullback-Leibler: python ICAabskl_puredelay.py 
             (this needs ca. a. 39 faster iterations) 
             Listening to the resulting signals confirms that they are really separated enough for intelligibility, where they were not before. 
           
         
       
    
     Further Speeding up Optimization 
     To further speed up optimization we need to enable convex optimization. For that we need to have an objective function with only one minima (in the best case). Much of the smaller local minima come from quickly changing high frequency components of our signal. Approach: We compute the objective function based on a low passed and down-sampled version of our signals (which also further speeds up the computation of the objective function). The lowpass needs to be narrow enough to remove the local minima, but broad enough to still obtain sufficiently precise coefficients. 
     Further Speeding Up Optimization, Low Pass 
     We choose the downsampling factor of 8, and accordingly a low pass of ⅛th of the full band. We use the following low pass filter, with bandwidth of about ⅛th of the full band (⅛th of the Nyquist frequency). 
       FIG. 6 b   : Used low pass filter, magnitude frequency response. The x-axis is the normalized frequency, with 2π being the sampling frequency. 
     Objective Functions from Low Pass 
     We can now again plot and compare our objective functions. 
       FIG. 6 c   : Objective functions for the low pass filtered example signal and example coefficients. Observe that the functions now have indeed mainly 1 minimum! 
     “abskl” is again the smoothest (no small local minima). 
     Further Speeding Up Optimization, Example 
     
         
         
           
             We can now try convex optimization, for instance the method of Conjugate Gradients. 
             python ICAabskl_puredelay_lowpass.py 
             Observe: The optimization finished successfully almost instantaneously! 
             The resulting separation has the same quality as before. 
           
         
       
    
     Other Explanations 
     Above, different inventive examples and aspects are described. Also, further examples are defined by the enclosed claims (examples are also in the claims). It should be noted that any example as defined by the claims can be supplemented by any of the details (features and functionalities) described in the preceding pages. Also, the examples described above can be used individually, and can also be supplemented by any of the features in another chapter, or by any feature included in the claims. 
     The text in round brackets and square brackets is optional, and defines further embodiments (further to those defined by the claims). Also, it should be noted that individual aspects described herein can be used individually or in combination. Thus, details can be added to each of said individual aspects without adding details to another one of said aspects. 
     It should also be noted that the present disclosure describes, explicitly or implicitly, features of a mobile communication device and of a receiver of a mobile communication system. 
     Depending on certain implementation requirements, examples may be implemented in hardware. The implementation may be performed using a digital storage medium, for example a floppy disk, a Digital Versatile Disc (DVD), a Blu-Ray Disc, a Compact Disc (CD), a Read-only Memory (ROM), a Programmable Read-only Memory (PROM), an Erasable and Programmable Read-only Memory (EPROM), an Electrically Erasable Programmable Read-Only Memory (EEPROM) or a flash memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable. 
     Generally, examples may be implemented as a computer program product with program instructions, the program instructions being operative for performing one of the methods when the computer program product runs on a computer. The program instructions may for example be stored on a machine readable medium. 
     Other examples comprise the computer program for performing one of the methods described herein, stored on a machine-readable carrier. In other words, an example of method is, therefore, a computer program having a program-instructions for performing one of the methods described herein, when the computer program runs on a computer. 
     A further example of the methods is, therefore, a data carrier medium (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier medium, the digital storage medium or the recorded medium are tangible and/or non-transitionary, rather than signals which are intangible and transitory. 
     A further example comprises a processing unit, for example a computer, or a programmable logic device performing one of the methods described herein. 
     A further example comprises a computer having installed thereon the computer program for performing one of the methods described herein. 
     A further example comprises an apparatus or a system transferring (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver. 
     In some examples, a programmable logic device (for example, a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some examples, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods may be performed by any appropriate hardware apparatus. 
     While this invention has been described in terms of several advantageous embodiments, there are alterations, permutations, and equivalents, which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention. 
     REFERENCES 
     
         
         [1] A. Hyvärinen, J. Karhunen, and E. Oja, “Independent component analysis.” John Wiley &amp; Sons, 2001. 
         [2] G. Evangelista, S. Marchand, M. D. Plumbley, and E. Vincent, “Sound source separation,” in  DAFX: Digital Audio Effects , second edition ed. John Wiley and Sons, 2011. 
         [3] J. Tariqullah, W. Wang, and D. Wang, “A multistage approach to blind separation of convolutive speech mixtures,” in  Speech Communication,  2011, vol. 53, pp. 524-539. 
         [4] J. Benesty, J. Chen, and E. A. Habets, “Speech enhancement in the SIFT domain,” in Springer, 2012. 
         [5] J. Janský, Z. Koldovský, and N. Ono, “A computationally cheaper method for blind speech separation based on auxiva and incomplete demixing transform,” in  IEEE International Workshop on Acoustic Signal Enhancement  ( IWAENC ), Xi&#39;an, China, 2016. 
         [6] D. Kitamura, N. Ono, H. Sawada, H. Kameoka, and H. Saruwatari, “Determined blind source separation unifying independent vector analysis and nonnegative matrix factorization,” in  IEEE/ACM Trans. ASLP , vol. 24, no. 9, 2016, pp. 1626-1641. 
         [7] “Determined blind source separation with independent low-rank matrix analysis,” in  Springer,  2018, p. 31. 
         [8] H.-C. Wu and J. C. Principe, “Simultaneous diagonalization in the frequency domain (sdif) for source separation,” in  Proc. ICA,  1999, pp. 245-250. 
         [9] H. Sawada, N. Ono, H. Kameoka, and D. Kitamura, “Blind audio source separation on tensor representation,” in  ICASSP , April 2018. 
         [10] J. Harris, S. M. Naqvi, J. A. Chambers, and C. Jutten, “Realtime independent vector analysis with student&#39;s t source prior for convolutive speech mixtures,” in  IEEE International Conference on Acoustics, Speech, and Signal Processing, ICASSP , April 2015. 
         [11] H. Buchner, R. Aichner, and W. Kellermann, “Trinicon: A versatile framework for multichannel blind signal processing,” in  IEEE International Conference on Acoustics, Speech, and Signal Processing , Montreal, Que., Canada, 2004. 
         [12] J. Chua, G. Wang, and W. B. Kleijn, “Convolutive blind source separation with low latency,” in  Acoustic Signal Enhancement  ( IWAENC ),  IEEE International Workshop,  2016, pp. 1-5. 
         [13] W. Kleijn and K. Chua, “Non-iterative impulse response shortening method for system latency reduction,” in  Acoustics, Speech and Signal Processing  ( ICASSP ), 2017, pp. 581-585. 
         [14] I. Senesnick, “Low-pass filters realizable as all-pass sums: design via a new flat delay filter,” in  IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing , vol. 46, 1999. 
         [15] T. I. Laakso, V. Välimäki, M. Karjalainen, and U. K. Laine, “Splitting the unit delay,” in  IEEE Signal Processing Magazine , January 1996. 
         [16] M. Brandstein and D. Ward, “Microphone arrays, signal processing techniques and applications,” in  Springer,  2001. 
         “Beamforming,” http://www.labbookpages.co.uk/audio/beamforming/delaySum.html, accessed: 2019-04-21. 
         [18] Benesty, Sondhi, and Huang, “Handbook of speech processing,” in Springer, 2008. 
         [19] J. P. Thiran, “Recursive digital filters with maximally flat group delay,” in  IEEE Trans. on Circuit Theory , vol. 18, no. 6, November 1971, pp. 659-664. 
         [20] S. Das and P. N. Suganthan, “Differential evolution: A survey of the state-of-the-art,” in  IEEE Trans. on Evolutionary Computation , February 2011, vol. 15, no. 1, pp. 4-31. 
         [21] R. Storn and K. Price, “Differential evolution—a simple and efficient heuristic for global optimization over continuous spaces,” in Journal of  Global Optimization.  11 (4), 1997, pp. 341-359. 
         [22] “Differential evolution,” http://www1.icsi.berkeley.edu/˜storn/code.html, accessed: 2019-04-21. 
         [23] J. Garofolo et al., “Timit acoustic-phonetic continuous speech corpus,” 1993. 
         [24] “Microphone array speech processing,” https://github.com/ZitengWang/MASP, accessed: 2019-07-29. 
         [25] “Ilrma,” https://github.com/d-kitamura/ILRMA, accessed: 2019-07-29. 
         [26] R. B. Stephens and A. E. Bate,  Acoustics and Vibrational Physics , London, U. K., 1966. 
         [27] J. B. Allen and D. A. Berkley,  Image method for efficiently simulating small room acoustics . J. Acoust. Soc. Amer., 1979, vol. 65. 
         [28] C. Fevotte, R. Gribonval, and E. Vincent, “Bss eval toolbox user guide,” in  Tech. Rep.  1706 , IRISA Technical Report  1706, Rennes, France, 2005. 
         [29] E. G. Learned-Miller,  Entropy and Mutual Information . Department of Computer Science University of Massachusetts, Amherst Amherst, Mass. 01003, 2013. 
         “Comparison of blind source separation techniques,” https://github.com/TUIImenauAMS/Comparison-of-Blind-Source-Separation-techniques, accessed: 2019-07-29.