torchaudio.prototype.functional.extend_pitch¶
- torchaudio.prototype.functional.extend_pitch(base: Tensor, pattern: Union[int, List[float], Tensor])[source]¶
使用倍数扩展给定的时间序列值。
给定一系列基频(音高),此函数会附加其谐波泛音或非谐分音。
- 参数:
base (torch.Tensor) – 基时间序列,例如基频 (Hz)。形状:(…, time, 1)。
pattern (int, python:float 列表 或 torch.Tensor) –
如果为
int
,则为操作后的音高序列数量。pattern - 1 个音调会被添加,因此生成的张量包含最多 pattern 次泛音。如果为 float 列表或
torch.Tensor
,则它必须是一维的,表示基频的自定义乘数。
- 返回值:
振荡器频率 (Hz)。形状:(…, time, num_tones)。
- 返回类型:
Tensor
- 示例
>>> # fundamental frequency >>> f0 = torch.linspace(1, 5, 5).unsqueeze(-1) >>> f0 tensor([[1.], [2.], [3.], [4.], [5.]]) >>> # Add harmonic overtones, up to 3rd. >>> f = extend_pitch(f0, 3) >>> f.shape torch.Size([5, 3]) >>> f tensor([[ 1., 2., 3.], [ 2., 4., 6.], [ 3., 6., 9.], [ 4., 8., 12.], [ 5., 10., 15.]]) >>> # Add custom (inharmonic) partials. >>> f = extend_pitch(f0, torch.tensor([1, 2.1, 3.3, 4.5])) >>> f.shape torch.Size([5, 4]) >>> f tensor([[ 1.0000, 2.1000, 3.3000, 4.5000], [ 2.0000, 4.2000, 6.6000, 9.0000], [ 3.0000, 6.3000, 9.9000, 13.5000], [ 4.0000, 8.4000, 13.2000, 18.0000], [ 5.0000, 10.5000, 16.5000, 22.5000]])
- 使用
extend_pitch
的教程 - 加法合成