torchaudio.functional.add_noise¶
- torchaudio.functional.add_noise(waveform: Tensor, noise: Tensor, snr: Tensor, lengths: Optional[Tensor] = None) Tensor [源码]¶
根据信噪比缩放并向波形添加噪声。
具体来说,对于每一对波形向量 \(x \in \mathbb{R}^L\) 和噪声向量 \(n \in \mathbb{R}^L\),函数计算输出 \(y\) 为
\[y = x + a n \, \text{,} \]其中
\[a = \sqrt{ \frac{ ||x||_{2}^{2} }{ ||n||_{2}^{2} } \cdot 10^{-\frac{\text{SNR}}{10}} } \, \text{,} \]其中 \(\text{SNR}\) 是 \(x\) 和 \(n\) 之间期望的信噪比(单位:dB)。
请注意,此函数在输入中广播单例前导维度,其方式与上述公式和 PyTorch 的广播语义一致。
- 参数:
waveform (torch.Tensor) – 输入波形,形状为 \((…, L)\)。
noise (torch.Tensor) – 噪声,形状为 \((…, L)\)(与
waveform
形状相同)。snr (torch.Tensor) – 信噪比(单位:dB),形状为 \((…,)\)。
lengths (torch.Tensor 或 None, 可选) –
waveform
和noise
中信号的有效长度,形状为 \((…,)\)(前导维度必须与waveform
匹配)。如果为None
,则waveform
和noise
中的所有元素都被视为有效。(默认值:None
)
- 返回:
将
noise
缩放后添加到waveform
的结果,形状为 \((…, L)\)(与waveform
形状相同)。- 返回类型:
- 使用
add_noise
的教程