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
的教程