espnet2.enh.layers.beamformer_th.get_WPD_filter_with_rtf
Less than 1 minute
espnet2.enh.layers.beamformer_th.get_WPD_filter_with_rtf
espnet2.enh.layers.beamformer_th.get_WPD_filter_with_rtf(psd_observed_bar: Tensor, psd_speech: Tensor, psd_noise: Tensor, iterations: int = 3, reference_vector: int | Tensor = 0, diagonal_loading: bool = True, diag_eps: float = 1e-07, eps: float = 1e-15) → Tensor
Return the WPD vector calculated with RTF.
WPD is the Weighted Power minimization Distortionless response convolutional beamformer. As follows:
h = (Rf^-1 @ vbar) / (vbar^H @ R^-1 @ vbar)
Reference: : T. Nakatani and K. Kinoshita, “A Unified Convolutional Beamformer for Simultaneous Denoising and Dereverberation,” in IEEE Signal Processing Letters, vol. 26, no. 6, pp. 903-907, June 2019, doi: 10.1109/LSP.2019.2911179. https://ieeexplore.ieee.org/document/8691481
- Parameters:
- psd_observed_bar (torch.complex64) – stacked observation covariance matrix
- psd_speech (torch.complex64) – speech covariance matrix (…, F, C, C)
- psd_noise (torch.complex64) – noise covariance matrix (…, F, C, C)
- iterations (int) – number of iterations in power method
- reference_vector (torch.Tensor or int) – (…, C) or scalar
- 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)