torchaudio.functional.add_noise¶
- torchaudio.functional.add_noise(waveform: Tensor, noise: Tensor, snr: Tensor, lengths: Optional[Tensor] = None) Tensor [source]¶
根据信噪比缩放波形并添加噪声。
具体来说,对于每对波形向量 \(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}\) 是期望的信号与噪声比,单位为 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
的教程