重采样¶
- class torchaudio.transforms.Resample(orig_freq: int = 16000, new_freq: int = 16000, resampling_method: str = 'sinc_interp_hann', lowpass_filter_width: int = 6, rolloff: float = 0.99, beta: Optional[float] = None, *, dtype: Optional[dtype] = None)[source]¶
将信号从一种频率重采样到另一种频率。可以指定重采样方法。
注意
如果对高于 float32 精度的波形进行重采样,可能会因内核仅一次缓存为 float32 而导致精度略微损失。如果高精度重采样对您的应用程序很重要,则函数形式将保持更高的精度,但运行速度会更慢,因为它不会缓存内核。或者,您可以重写缓存更高精度内核的转换。
- 参数:
orig_freq (int, 可选) – 信号的原始频率。 (默认值:
16000
)new_freq (int, 可选) – 期望频率。 (默认值:
16000
)resampling_method (str, 可选) – 要使用的重采样方法。选项: [
sinc_interp_hann
,sinc_interp_kaiser
] (默认值:"sinc_interp_hann"
)lowpass_filter_width (int, 可选) – 控制滤波器的锐度,值越大表示越锐利,但效率越低。 (默认值:
6
)rolloff (float, 可选) – 滤波器的截止频率,以奈奎斯特频率的比例表示。较低的值会降低抗混叠效果,但也降低一些最高频率。 (默认值:
0.99
)beta (float 或 None, 可选) – 用于凯泽窗的形状参数。
dtype (torch.device, 可选) – 确定预先计算和缓存重采样内核的精度。如果未提供,则使用
torch.float64
计算内核,然后缓存为torch.float32
。如果您需要更高的精度,请提供torch.float64
,预先计算的内核将被计算并缓存为torch.float64
。如果您使用较低精度的重采样,那么不要提供此参数,而是使用Resample.to(dtype)
,以便内核生成仍然在torch.float64
上进行。
- 示例
>>> waveform, sample_rate = torchaudio.load("test.wav", normalize=True) >>> transform = transforms.Resample(sample_rate, sample_rate/10) >>> waveform = transform(waveform)
- 使用
Resample
的教程 - 使用 Wav2Vec2 进行语音识别音频重采样