快捷方式

SoudenMVDR

class torchaudio.transforms.SoudenMVDR(*args, **kwargs)[source]

基于 Souden 等人 [Souden 等人, 2009] 提出的方法实现的最小方差无失真响应 (MVDR [Capon, 1969]) 模块。

This feature supports the following devices: CPU, CUDA This API supports the following properties: Autograd, TorchScript

给定多通道复值频谱 \(\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 的教程
Speech Enhancement with MVDR Beamforming

使用 MVDR 波束成形进行语音增强

使用 MVDR 波束成形进行语音增强
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 (inttorch.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)

返回值类型:

torch.Tensor

文档

查阅全面的 PyTorch 开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源