torchaudio.functional.phase_vocoder¶
- torchaudio.functional.phase_vocoder(complex_specgrams: Tensor, rate: float, phase_advance: Tensor) Tensor[source]¶
給定一個 STFT 張量,透過因子
rate在時間上加速而不改變音高。- 引數:
complex_specgrams (Tensor) – 維度為 (…, freq, num_frame) 的複數型別張量。
rate (float) – 加速因子
phase_advance (Tensor) – 每個 bin 中預期的相位提前量。維度為 (freq, 1)
- 返回:
拉伸後的頻譜圖。結果張量的 dtype 與輸入頻譜圖相同,但幀數變為
ceil(num_frame / rate)。- 返回型別:
Tensor
- 示例
>>> freq, hop_length = 1025, 512 >>> # (channel, freq, time) >>> complex_specgrams = torch.randn(2, freq, 300, dtype=torch.cfloat) >>> rate = 1.3 # Speed up by 30% >>> phase_advance = torch.linspace( >>> 0, math.pi * hop_length, freq)[..., None] >>> x = phase_vocoder(complex_specgrams, rate, phase_advance) >>> x.shape # with 231 == ceil(300 / 1.3) torch.Size([2, 1025, 231])