SoudenMVDR¶
- class torchaudio.transforms.SoudenMVDR(*args, **kwargs)[source]¶
基於 Souden 等人 [Souden 等人, 2009] 提出的方法實現的最小方差無失真響應 (MVDR [Capon, 1969]) 模組。
給定多通道復值頻譜 \(\textbf{Y}\)、目標語音的功率譜密度 (PSD) 矩陣 \(\bf{\Phi}_{\textbf{SS}}\)、噪聲的 PSD 矩陣 \(\bf{\Phi}_{\textbf{NN}}\) 以及表示參考通道的獨熱向量 \(\bf{u}\),模組計算增強語音的單通道復值頻譜 \(\hat{\textbf{S}}\)。公式定義如下:
\[\hat{\textbf{S}}(f) = \textbf{w}_{\text{bf}}(f)^{\mathsf{H}} \textbf{Y}(f) \]其中 \(\textbf{w}_{\text{bf}}(f)\) 是第 \(f\) 個頻率窗的 MVDR 波束成形權重。
波束成形權重計算公式如下:
\[\textbf{w}_{\text{MVDR}}(f) = \frac{{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bf{\Phi}_{\textbf{SS}}}}(f)} {\text{Trace}({{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f) \bf{\Phi}_{\textbf{SS}}}(f))}}\bm{u} \]- 使用
SoudenMVDR的教程
- forward(specgram: Tensor, psd_s: Tensor, psd_n: Tensor, reference_channel: Union[int, Tensor], diagonal_loading: bool = True, diag_eps: float = 1e-07, eps: float = 1e-08) Tensor[source]¶
- 引數:
specgram (torch.Tensor) – 多通道復值頻譜。維度為 (…, channel, freq, time) 的張量。
psd_s (torch.Tensor) – 目標語音的復值功率譜密度 (PSD) 矩陣。維度為 (…, freq, channel, channel) 的張量。
psd_n (torch.Tensor) – 噪聲的復值功率譜密度 (PSD) 矩陣。維度為 (…, freq, channel, channel) 的張量。
reference_channel (int 或 torch.Tensor) – 指定參考通道。如果資料型別是
int,則表示參考通道索引。如果資料型別是torch.Tensor,其形狀為 (…, channel),其中channel維度是獨熱編碼。diagonal_loading (bool, 可選) – 如果為
True,則對psd_n應用對角載入。(預設值:True)diag_eps (float, 可選) – 對角載入時乘以單位矩陣的係數。僅當
diagonal_loading設定為True時有效。(預設值:1e-7)eps (float, 可選) – 新增到波束成形權重公式分母中的值。(預設值:
1e-8)
- 返回值:
單通道復值增強頻譜,維度為 (…, freq, time)。
- 返回值型別:
- 使用