ChromaScale¶
- class torchaudio.prototype.transforms.ChromaScale(sample_rate: int, n_freqs: int, *, n_chroma: int = 12, tuning: float = 0.0, ctroct: float = 5.0, octwidth: Optional[float] = 2.0, norm: int = 2, base_c: bool = True)[source]¶
将频谱图转换为色度图 (chromagram)。
- 参数:
sample_rate (int) – 音频信号的采样率。
n_freqs (int) – STFT 中的频率 bin 数量。请参阅
Spectrogram
中的n_fft
。n_chroma (int, optional) – 色度数量。(默认值:
12
)tuning (float, optional) – A440 音高在色度 bin 分数上的调音偏差。(默认值: 0.0)
ctroct (float, optional) – 用于对滤波器加权的 Gaussian 优势窗口的中心,以八度为单位。(默认值: 5.0)
octwidth (float 或 None, optional) – 用于对滤波器加权的 Gaussian 优势窗口的宽度,以八度为单位。如果为
None
,则完全禁用加权。(默认值: 2.0)norm (int, optional) – 用于归一化滤波器组的范数阶数。(默认值: 2)
base_c (bool, optional) – 如果为 True,则滤波器组从 C 开始。否则从 A 开始。(默认值: True)
- 示例
>>> waveform, sample_rate = torchaudio.load("test.wav", normalize=True) >>> spectrogram_transform = transforms.Spectrogram(n_fft=1024) >>> spectrogram = spectrogram_transform(waveform) >>> chroma_transform = transforms.ChromaScale(sample_rate=sample_rate, n_freqs=1024 // 2 + 1) >>> chroma_spectrogram = chroma_transform(spectrogram)
另请参阅
torchaudio.prototype.functional.chroma_filterbank()
— 用于生成滤波器组的函数。- forward(x: Tensor) Tensor [source]¶
- 参数:
specgram (torch.Tensor) – 维度为 (…,
n_freqs
, 时间) 的频谱图。- 返回:
大小为 (…,
n_chroma
, 时间) 的色度频谱图。- 返回类型: