• 文档 >
  • torchaudio.transforms >
  • 旧版本 (稳定)
快捷方式

torchaudio.transforms¶

torchaudio.transforms 模块包含常用的音频处理和特征提取。以下图表显示了一些可用变换之间的关系。

https://download.pytorch.org/torchaudio/tutorial-assets/torchaudio_feature_extractions.png

变换使用 torch.nn.Module 实现。构建处理流水线的常用方法是定义自定义 Module 类或使用 torch.nn.Sequential 将 Module 串联起来,然后将其移至目标设备和数据类型。

# Define custom feature extraction pipeline.
#
# 1. Resample audio
# 2. Convert to power spectrogram
# 3. Apply augmentations
# 4. Convert to mel-scale
#
class MyPipeline(torch.nn.Module):
    def __init__(
        self,
        input_freq=16000,
        resample_freq=8000,
        n_fft=1024,
        n_mel=256,
        stretch_factor=0.8,
    ):
        super().__init__()
        self.resample = Resample(orig_freq=input_freq, new_freq=resample_freq)

        self.spec = Spectrogram(n_fft=n_fft, power=2)

        self.spec_aug = torch.nn.Sequential(
            TimeStretch(stretch_factor, fixed_rate=True),
            FrequencyMasking(freq_mask_param=80),
            TimeMasking(time_mask_param=80),
        )

        self.mel_scale = MelScale(
            n_mels=n_mel, sample_rate=resample_freq, n_stft=n_fft // 2 + 1)

    def forward(self, waveform: torch.Tensor) -> torch.Tensor:
        # Resample the input
        resampled = self.resample(waveform)

        # Convert to power spectrogram
        spec = self.spec(resampled)

        # Apply SpecAugment
        spec = self.spec_aug(spec)

        # Convert to mel-scale
        mel = self.mel_scale(spec)

        return mel
# Instantiate a pipeline
pipeline = MyPipeline()

# Move the computation graph to CUDA
pipeline.to(device=torch.device("cuda"), dtype=torch.float32)

# Perform the transform
features = pipeline(waveform)

请查阅深入介绍变换用法的教程。

Audio Feature Extractions

音频特征提取

音频特征提取

实用工具¶

AmplitudeToDB

将张量从功率/振幅标度转换为分贝标度。

MuLawEncoding

基于 mu-law 压缩编码信号。

MuLawDecoding

解码 mu-law 编码信号。

Resample

将信号从一个频率重采样到另一个频率。

Fade

为波形添加淡入和/或淡出效果。

Vol

调整波形音量。

Loudness

根据 ITU-R BS.1770-4 建议测量音频响度。

AddNoise

根据信噪比缩放并向波形添加噪声。

Convolve

使用直接方法沿输入的最后一维进行卷积。

FFTConvolve

使用 FFT 沿输入的最后一维进行卷积。

Speed

调整波形速度。

SpeedPerturbation

应用 *Audio augmentation for speech recognition* [Ko 等人, 2015] 中引入的速度扰动增强。

Deemphasis

沿波形的最后一维进行去加重。

Preemphasis

沿波形的最后一维进行预加重。

特征提取¶

Spectrogram

从音频信号创建频谱图。

InverseSpectrogram

创建逆频谱图以从频谱图恢复音频信号。

MelScale

使用三角滤波器组将普通 STFT 转换为梅尔频率 STFT。

InverseMelScale

从梅尔频率域估计普通频率域的 STFT。

MelSpectrogram

为原始音频信号创建 MelSpectrogram。

GriffinLim

使用 Griffin-Lim 变换从线性幅度频谱图计算波形。

MFCC

从音频信号创建梅尔频率倒谱系数。

LFCC

从音频信号创建线性频率倒谱系数。

ComputeDeltas

计算张量的 delta 系数,通常是频谱图。

PitchShift

将波形的音高偏移 n_steps 步。

SlidingWindowCmn

按话语应用滑动窗口倒谱均值(和可选的方差)归一化。

SpectralCentroid

沿时间轴计算每个通道的谱质心。

Vad

语音活动检测器。

增强¶

以下变换实现了称为 *SpecAugment* [Park 等人, 2019] 的流行增强技术。

FrequencyMasking

在频域对频谱图应用掩蔽。

TimeMasking

在时域对频谱图应用掩蔽。

TimeStretch

以给定速率在时间上拉伸 STFT,而不改变音高。

损失函数¶

RNNTLoss

计算 *Sequence Transduction with Recurrent Neural Networks* [Graves, 2012] 中的 RNN Transducer 损失。

多通道¶

PSD

计算跨通道功率谱密度 (PSD) 矩阵。

MVDR

执行带时频掩蔽的 MVDR 波束赋形的最小方差无失真响应 (MVDR) 模块。

RTFMVDR

基于相对传递函数 (RTF) 和噪声功率谱密度 (PSD) 矩阵的最小方差无失真响应 (*MVDR* [Capon, 1969] ) 模块。

SoudenMVDR

基于 *Souden 等人* [Souden 等人, 2009] 提出的方法的最小方差无失真响应 (*MVDR* [Capon, 1969] ) 模块。


© 版权所有 2024, Torchaudio 贡献者。

使用 Sphinx 构建,主题由 Read the Docs 提供。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并解答疑问

查看资源