torchaudio.functional.spectrogram¶
- torchaudio.functional.spectrogram(waveform: Tensor, pad: int, window: Tensor, n_fft: int, hop_length: int, win_length: int, power: Optional[float], normalized: Union[bool, str], center: bool = True, pad_mode: str = 'reflect', onesided: bool = True, return_complex: Optional[bool] = None) Tensor [源]¶
从原始音频信号创建频谱图或一批频谱图。频谱图可以是仅包含幅度,也可以是复数形式。
- 参数:
waveform (Tensor) – 维度为 (…, time) 的音频 Tensor
pad (int) – 信号的两侧填充
window (Tensor) – 应用/乘以每个帧/窗口的窗口 Tensor
n_fft (int) – FFT 大小
hop_length (int) – STFT 窗口之间的跳跃长度
win_length (int) – 窗口大小
power (float or None) – 幅度频谱图的指数(必须 > 0),例如,1 表示幅度,2 表示功率等。如果为 None,则返回复数频谱。
normalized (bool or str) – 是否在 STFT 后按幅度归一化。如果输入是字符串,选项包括
"window"
和"frame_length"
,如果需要特定的归一化类型。True
映射到"window"
。当在"window"
上归一化时,波形根据窗口的 L2 能量进行归一化。如果在"frame_length"
上归一化,波形则通过除以 \((\text{frame\_length})^{0.5}\) 进行归一化。center (bool, optional) – 是否在
waveform
两侧填充,使得第 \(t\) 帧的时间中心位于 \(t \times \text{hop\_length}\) 处。默认值:True
pad_mode (string, optional) – 控制当
center
为True
时使用的填充方法。默认值:"reflect"
onesided (bool, optional) – 控制是否返回一半结果以避免冗余。默认值:
True
return_complex (bool, optional) – 已弃用且未使用。
- 返回值:
维度 (…, freq, time),其中 freq 为
n_fft // 2 + 1
且n_fft
是傅里叶 bin 的数量,time 是窗口跳跃次数 (n_frame)。- 返回类型:
Tensor