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}\) 是 \(x\) 和 \(n\) 之間所需的訊號雜訊比,單位為 dB。
請注意,此函數以與上述公式和 PyTorch 的廣播語義一致的方式廣播其輸入中的單例前導維度。
- 參數:
waveform (torch.Tensor) – 輸入波形,形狀為 (…, L)。
noise (torch.Tensor) – 雜訊,形狀為 (…, L) (與
waveform
相同形狀)。snr (torch.Tensor) – 訊號雜訊比,單位為 dB,形狀為 (…,)。
lengths (torch.Tensor 或 None, optional) –
waveform
和noise
中訊號的有效長度,形狀為 (…,) (前導維度必須與waveform
的維度相符)。如果為None
,則waveform
和noise
中的所有元素都將被視為有效。(預設值:None
)
- 返回:
縮放並將
noise
加入waveform
的結果,形狀為 (…, L) (與waveform
相同形狀)。- 返回類型:
- 使用
add_noise
的教學