SoudenMVDR¶
- class torchaudio.transforms.SoudenMVDR(*args, **kwargs)[source]¶
Minimum Variance Distortionless Response (MVDR [Capon, 1969]) 模块,基于 Souden 等人提出的方法 [Souden et al., 2009]。
给定多通道复值频谱 \(\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\) 个频率bin的 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) – 指定参考通道。如果 dtype 为
int
,则表示参考通道索引。如果 dtype 为torch.Tensor
,则其形状为 (..., channel),其中channel
维度是独热编码的。diagonal_loading (bool, optional) – 如果为
True
,则对psd_n
应用对角加载。 (默认:True
)diag_eps (float, optional) – 用于对角加载的单位矩阵的乘数。仅当
diagonal_loading
设置为True
时有效。 (默认:1e-7
)eps (float, optional) – 在波束成形权重公式的分母中添加的值。 (默认:
1e-8
)
- 返回
增强的单通道复值频谱,维度为 (..., freq, time)。
- 返回类型
- 使用