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)
pad (int) – 信号双侧填充
window (Tensor) – 应用/乘以每个帧/窗口的窗口张量
n_fft (int) – FFT 大小
hop_length (int) – STFT 窗口之间的跳跃长度
win_length (int) – 窗口大小
power (float 或 None) – 幅度频谱图的指数,(必须大于0)例如,1 代表幅度,2 代表功率,依此类推。如果为 None,则返回复数频谱。
normalized (bool 或 str) – STFT 后是否按幅度进行归一化。如果输入是字符串,则选择
"window"
和"frame_length"
,如果需要特定的归一化类型。True
映射到"window"
。当按"window"
归一化时,波形将根据窗口的 L2 能量进行归一化。如果按"frame_length"
归一化,则波形将通过除以 \((\text{frame\_length})^{0.5}\) 来归一化。center (bool, 可选) – 是否对
waveform
的两侧进行填充,以便 \(t\) 时刻的帧位于时间 \(t \times \text{hop\_length}\) 处。默认为:True
pad_mode (string, 可选) – 当
center
为True
时,控制使用的填充方法。默认为:"reflect"
onesided (bool, 可选) – 控制是否返回结果的一半以避免冗余。默认为:
True
return_complex (bool, 可选) – 已弃用且未使用。
- 返回
维度为 (..., freq, time),其中 freq 为
n_fft // 2 + 1
,n_fft
是傅里叶变换的 bin 数量,time 是窗口跳数(n_frame)。- 返回类型
张量