快捷方式

torchaudio.prototype.functional.oscillator_bank

torchaudio.prototype.functional.oscillator_bank(frequencies: Tensor, amplitudes: Tensor, sample_rate: float, reduction: str = 'sum', dtype: Optional[dtype] = torch.float64) Tensor[源代码]

已弃用

警告

此函数已被弃用。它将在 2.9 版本中被移除。此弃用是大型重构工作的一部分,旨在将 TorchAudio 转换为维护阶段。有关更多信息,请参阅 https://github.com/pytorch/audio/issues/3902

从给定的瞬时频率和幅度合成波形。

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

注意

输出波形的相位信息是通过对给定的瞬时频率(frequencies)进行累加和得到的。当数据类型精度不足时,这会产生舍入误差。使用 torch.float64 可以解决这个问题。

下图显示了在使用采样率为 8000 [Hz] 的情况下,生成具有恒定频率和幅度的正弦波时 torch.float32torch.float64 之间的区别。请注意,torch.float32 版本显示了 torch.float64 版本中未出现的伪影。

https://download.pytorch.org/torchaudio/doc-assets/oscillator_precision.png
参数
  • frequencies (Tensor) – 逐样本的振荡器频率 (Hz)。形状为 (..., time, N)

  • amplitudes (Tensor) – 逐样本的振荡器幅度。形状为:(..., time, N)

  • sample_rate (float) – 采样率

  • reduction (str) – 要执行的归约操作。有效值为 "sum""mean""none"。默认为 "sum"

  • dtype (torch.dpython:typeNone, optional) – 执行累加和操作的数据类型。默认为 torch.float64。传入 None 可禁用类型转换。

返回

生成的波形。

如果 reduction"none",则形状为 (..., time, N),否则形状为 (..., time)

返回类型

张量

使用 oscillator_bank 的教程
Additive Synthesis

加法合成

加法合成
Oscillator and ADSR envelope

振荡器和 ADSR 包络

振荡器和 ADSR 包络

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源