espnet2.enh.layers.beamformer.get_WPD_filter
Less than 1 minute
espnet2.enh.layers.beamformer.get_WPD_filter
espnet2.enh.layers.beamformer.get_WPD_filter(Phi: Tensor | ComplexTensor, Rf: Tensor | ComplexTensor, reference_vector: Tensor, diagonal_loading: bool = True, diag_eps: float = 1e-07, eps: float = 1e-08) → Tensor | ComplexTensor
Return the WPD vector.
WPD is the Weighted Power minimization Distortionless response convolutional beamformer. As follows:
h = (Rf^-1 @ Phi_{xx}) / tr[(Rf^-1) @ Phi_{xx}] @ u
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:
- Phi (torch.complex64/ComplexTensor) – (B, F, (btaps+1) * C, (btaps+1) * C) is the PSD of zero-padded speech [x^T(t,f) 0 … 0]^T.
- Rf (torch.complex64/ComplexTensor) – (B, F, (btaps+1) * C, (btaps+1) * C) is the power normalized spatio-temporal covariance matrix.
- reference_vector (torch.Tensor) – (B, (btaps+1) * C) is the reference_vector.
- diagonal_loading (bool) – Whether to add a tiny term to the diagonal of psd_n
- diag_eps (float)
- eps (float)
- Returns: (B, F, (btaps + 1) * C)
- Return type: filter_matrix (torch.complex64/ComplexTensor)