espnet2.enh.layers.beamformer.get_mvdr_vector
Less than 1 minute
espnet2.enh.layers.beamformer.get_mvdr_vector
espnet2.enh.layers.beamformer.get_mvdr_vector(psd_s, psd_n, reference_vector: Tensor, diagonal_loading: bool = True, diag_eps: float = 1e-07, eps: float = 1e-08)
Return the MVDR (Minimum Variance Distortionless Response) vector:
h = (Npsd^-1 @ Spsd) / (Tr(Npsd^-1 @ Spsd)) @ u
Reference: : On optimal frequency-domain multichannel linear filtering for noise reduction; M. Souden et al., 2010; https://ieeexplore.ieee.org/document/5089420
- Parameters:
- psd_s (torch.complex64/ComplexTensor) – speech covariance matrix (…, F, C, C)
- psd_n (torch.complex64/ComplexTensor) – observation/noise covariance matrix (…, F, C, C)
- reference_vector (torch.Tensor) – (…, C)
- diagonal_loading (bool) – Whether to add a tiny term to the diagonal of psd_n
- diag_eps (float)
- eps (float)
- Returns: (…, F, C)
- Return type: beamform_vector (torch.complex64/ComplexTensor)