目录

torchaudio.transforms

转换是常见的音频转换。它们可以使用

效用

AmplitudeToDB

class stype str = 'power'top_db: Optional[float] = None[来源]torchaudio.transforms.AmplitudeToDB

将张量从幂/振幅刻度转换为分贝刻度。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

此输出取决于输入张量中的最大值,因此 可能会为拆分为片段的音频剪辑返回不同的值,而不是 一个完整的剪辑。

参数
  • stypestroptional) - 输入张量的比例 ( 或 )。这 power 是 magnitude 的元素平方。(默认:'power''magnitude''power')

  • top_dbfloatNone可选) – 以分贝为单位的最小负截止值。一个合理的 数字为 80。(默认:None)

forward(xTorch。Tensor) → torch 的 Tensor 中。张量[来源]

来自 Librosa 的数值稳定实现。

https://librosa.org/doc/latest/generated/librosa.amplitude_to_db.html

参数

xTensor) - 转换为分贝刻度之前的输入张量。

返回

分贝刻度的输出张量。

返回类型

张肌

梅尔斯卡尔

n_mels int = 128sample_rate: int = 16000f_min: float = 0.0f_max: 可选 [float] = n_stft int = 201norm 可选[str] = mel_scale str = 'htk'[来源]torchaudio.transforms.MelScale

将普通 STFT 转换为带有三角滤波器组的 mel 频率 STFT。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript
参数
  • n_melsintoptional) – mel filterbanks 的数量。(默认:128)

  • sample_rateintoptional) – 音频信号的采样率。(默认:16000)

  • f_minfloatoptional) (最小频率)。(默认:0.)

  • f_maxfloatNone可选) – 最大频率。(默认:sample_rate // 2)

  • n_stftintoptional) – STFT 中的 bin 数量。请参阅 。(默认:n_fft201)

  • normstrNone可选) – 如果 ,将三角梅尔权重除以梅尔带的宽度 (区域标准化)。(默认:'slaney'None)

  • mel_scalestroptional) – 要使用的缩放:或 .(默认:htkslaneyhtk)

另请参阅

- 用于 生成 Filter Banks。

forward(specgramTorch。Tensor) → torch 的 Tensor 中。张量[来源]
参数

specgramTensor) - 维度为 (..., freq, time) 的频谱图 STFT。

返回

大小的梅尔频率频谱图 (..., , time)。n_mels

返回类型

张肌

InverseMelScale

n_stft: intn_mels: int = 128sample_rate: int = 16000f_min float = 0.0f_max: 可选[float] = max_iter: int = 100000tolerance_loss float = 1e-05tolerance_change float = 1e-08sgdargs 可选[dict] = 规范可选[str] = mel_scale:str = 'htk'[来源]torchaudio.transforms.InverseMelScale

从 mel 频域估计正常频域中的 STFT。

此功能支持以下设备:CPU、CUDA

它最小化了输入梅尔频谱图与两者之间的乘积之间的欧几里得范数 使用 SGD 的估计频谱图和滤波器组。

参数
  • n_stftint) – STFT 中的箱数。请参阅 。n_fft

  • n_melsintoptional) – mel filterbanks 的数量。(默认:128)

  • sample_rateintoptional) – 音频信号的采样率。(默认:16000)

  • f_minfloatoptional) (最小频率)。(默认:0.)

  • f_maxfloatNone可选) – 最大频率。(默认:sample_rate // 2)

  • max_iterintoptional) – 最大优化迭代次数。(默认:100000)

  • tolerance_lossfloatoptional) – 停止优化的损失值。(默认:1e-5)

  • tolerance_changefloatoptional) – 停止优化的损失差异。(默认:1e-8)

  • sgdargsdictNone可选) – SGD 优化器的参数。(默认:None)

  • normstrNone可选) – 如果为 'slaney',则将三角形 mel 权重除以 mel 带的宽度 (区域标准化)。(默认:None)

  • mel_scalestroptional) – 要使用的缩放:或 .(默认:htkslaneyhtk)

forward(melspecTorch。Tensor) → torch 的 Tensor 中。张量[来源]
参数

melspecTensor) - 维数 (..., , time) 的 Mel 频率频谱图n_mels

返回

大小 (..., freq, time) 的线性标度频谱图

返回类型

张肌

MuLaw编码

quantization_channels:int = 256[来源]torchaudio.transforms.MuLawEncoding

基于 mu-law 压缩扩展对信号进行编码。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:TorchScript

有关更多信息,请参阅维基百科条目

此算法假设信号已缩放到 -1 和 1 之间,并且 返回使用 0 到 quantization_channels - 1 之间的值编码的信号

参数

quantization_channelsintoptional) – 通道数。(默认:256)

>>> waveform, sample_rate = torchaudio.load('test.wav', normalize=True)
>>> transform = torchaudio.transforms.MuLawEncoding(quantization_channels=512)
>>> mulawtrans = transform(waveform)
forward(xTorch。Tensor) → torch 的 Tensor 中。张量[来源]
参数

xTensor) - 要编码的信号。

返回

编码信号。

返回类型

张肌

MuLaw解码

quantization_channels:int = 256[来源]torchaudio.transforms.MuLawDecoding

解码 mu-law 编码信号。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:TorchScript

有关更多信息,请参阅维基百科条目

这需要值介于 0 和 之间的输入,并返回缩放在 -1 和 1 之间的信号。quantization_channels - 1

参数

quantization_channelsintoptional) – 通道数。(默认:256)

>>> waveform, sample_rate = torchaudio.load('test.wav', normalize=True)
>>> transform = torchaudio.transforms.MuLawDecoding(quantization_channels=512)
>>> mulawtrans = transform(waveform)
forward(x_mu:Torch。Tensor) → torch 的 Tensor 中。张量[来源]
参数

x_muTensor) - 需要解码的 mu-law 编码信号。

返回

信号解码。

返回类型

张肌

重新采样

orig_freq int = 16000new_freq int = 16000resampling_method: str = 'sinc_interpolation'lowpass_filter_width: int = 6rolloff float = 0.99beta 可选[float] = None*dtype 可选[torch.dtype] = None[源]torchaudio.transforms.Resample

将信号从一个频率重新采样到另一个频率。可以给出重采样方法。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

注意

如果对精度高于 float32 的波形进行重采样,则可能会有少量的精度损失 因为内核缓存一次为 float32。如果高精度重采样对您的应用很重要, 函数形式将保留更高的精度,但运行速度较慢,因为它不缓存内核。 或者,您可以重写缓存更高精度内核的转换。

参数
  • orig_freqintoptional) – 信号的原始频率。(默认:16000)

  • new_freqintoptional) – 所需的频率。(默认:16000)

  • resampling_methodstroptional) – 要使用的重采样方法。 选项:[、](默认值:sinc_interpolationkaiser_window'sinc_interpolation')

  • lowpass_filter_widthintoptional) – 控制滤镜的锐度,更多 == 更锐利 但效率较低。(默认:6)

  • roll offfloat optional) (滚动频率,浮点数,可选) – 滤波器的滚降频率,以奈奎斯特频率的分数表示。 较低的值会减少抗锯齿,但也会降低一些最高频率。(默认:0.99)

  • betafloatNone可选) – 用于 Kaiser 窗口的形状参数。

  • dtypetorch.device可选) – Determ表示预计算和缓存重采样内核的精度。如果未提供,则 kernel 的计算方式,然后缓存为 。 如果需要更高的精度,请提供 ,然后计算预计算的内核,并且 缓存为 .如果您使用精度较低的 resample,则不要提供此 提供此参数,请使用 ,以便内核生成仍然是 执行于 .torch.float64torch.float32torch.float64torch.float64Resample.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
forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) - 维度 (..., time) 的音频张量。

返回

维度 (..., time) 的输出信号。

返回类型

张肌

频率掩码

class freq_mask_param: intiid_masks: bool = False[来源]torchaudio.transforms.FrequencyMasking

将掩码应用于频域中的频谱图。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

SpecAugment [1] 中提出。

参数
  • freq_mask_paramint) - 掩码的最大可能长度。 从 [0, freq_mask_param) 中统一采样的索引。

  • iid_masksbooloptional) – 是否对每个蒙版应用不同的蒙版 example/channel 中。(默认值:) 仅当输入张量为 4D 时,此选项才适用。False

>>> spectrogram = torchaudio.transforms.Spectrogram()
>>> masking = torchaudio.transforms.FrequencyMasking(freq_mask_param=80)
>>>
>>> original = spectrogram(waveform)
>>> masked = masking(original)
原始频谱图 沿频率轴屏蔽的频谱图
教程使用:FrequencyMasking
forward(specgramTorch。 Tensor,mask_value:float = 0.0)→ torch。张肌
参数
  • specgramTensor) - 维度 (..., freq, time) 的张量。

  • mask_valuefloat) – 要分配给掩码列的值。

返回

维度的掩码频谱图 (..., freq, time)。

返回类型

张肌

时间掩码

time_mask_param intiid_masks bool = Falsep float = 1.0[来源]torchaudio.transforms.TimeMasking

在时域中对频谱图应用掩码。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

SpecAugment [1] 中提出。

参数
  • time_mask_paramint) – 掩码的最大可能长度。 从 [0, time_mask_param) 中均匀采样的索引。

  • iid_masksbooloptional) – 是否对每个蒙版应用不同的蒙版 example/channel 中。(默认值:) 仅当输入张量为 4D 时,此选项才适用。False

  • pfloatoptional) – 可以屏蔽的时间步长的最大比例。 必须在 [0.0, 1.0] 范围内。(默认值:1.0)

>>> spectrogram = torchaudio.transforms.Spectrogram()
>>> masking = torchaudio.transforms.TimeMasking(time_mask_param=80)
>>>
>>> original = spectrogram(waveform)
>>> masked = masking(original)
原始频谱图 沿时间轴屏蔽的频谱图
教程使用:TimeMasking
forward(specgramTorch。 Tensor,mask_value:float = 0.0)→ torch。张肌
参数
  • specgramTensor) - 维度 (..., freq, time) 的张量。

  • mask_valuefloat) – 要分配给掩码列的值。

返回

维度的掩码频谱图 (..., freq, time)。

返回类型

张肌

时间拉伸

class hop_length: 可选[int] = n_freq int = 201fixed_rate 可选[float] = None[源]torchaudio.transforms.TimeStretch

在时间上拉伸 stft,而不修改给定速率的音高。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

SpecAugment [1] 中提出。

参数
  • hop_lengthintNone可选) – STFT 窗口之间的跃点长度。(默认:win_length // 2)

  • n_freqintoptional) - 来自 stft 的滤波器组数量。(默认:201)

  • fixed_ratefloatNone可选) – 用于加速或减速的速率。 如果提供 None,则必须将 rate 传递给 forward 方法。(默认:None)

>>> spectrogram = torchaudio.transforms.Spectrogram()
>>> stretch = torchaudio.transforms.TimeStretch()
>>>
>>> original = spectrogram(waveform)
>>> streched_1_2 = stretch(original, 1.2)
>>> streched_0_9 = stretch(original, 0.9)
Spectrogram streched by 1.2 (频谱图) 原始频谱图 频谱图被 0.9
教程使用:TimeStretch
forward(complex_specgramsTorch。Tensor,overriding_rate可选[float] = None)→ torch。张量[来源]
参数
  • complex_specgramsTensor) - 具有复杂 dtype 的维度 (..., freq, num_frame) 的张量。

  • overriding_ratefloatNone可选) – 加快应用于此批次的速度。 如果未传递 rate,请使用 。(默认:self.fixed_rateNone)

返回

拉伸频谱图。生成的张量与输入具有相同的 dtype 频谱图,但帧数更改为 。ceil(num_frame / rate)

返回类型

张肌

褪色

fade_in_len: int = 0fade_out_len int = 0fade_shape: str = '线性'[来源]torchaudio.transforms.Fade

向波形添加淡入和/或淡出。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript
参数
  • fade_in_lenintoptional) – 淡入的长度(时间范围)。(默认:0)

  • fade_out_lenintoptional) – 淡出的长度 (时间范围)。(默认:0)

  • fade_shapestroptional) - 淡入淡出的形状。必须是以下之一: “quarter_sine”, , 。 (默认:"half_sine""linear""logarithmic""exponential""linear")

>>> waveform, sample_rate = torchaudio.load('test.wav', normalize=True)
>>> transform = transforms.Fade(fade_in_len=sample_rate, fade_out_len=2 * sample_rate, fade_shape='linear')
>>> faded_waveform = transform(waveform)
forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) - 维度为 (..., time) 的音频张量。

返回

维度 (..., time) 的音频张量。

返回类型

张肌

增益浮点数gain_type:str = 'amplitude'[来源]torchaudio.transforms.Vol

向波形添加音量。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript
参数
  • gainfloat) – 根据给定的gain_type解释: 如果 = ,则为正振幅比。 如果 = ,则为功率(电压的平方)。 如果 = ,则以分贝为单位。gain_typeamplitudegaingain_typepowergaingain_typedbgain

  • gain_typestroptional) – 增益类型。以下之一: , , (默认值:amplitudepowerdbamplitude)

forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) - 维度为 (..., time) 的音频张量。

返回

维度 (..., time) 的音频张量。

返回类型

张肌

特征提取

光谱图

n_fft: int = 400, win_length: 可选[int] = 无, hop_length: 可选[int] = 无, pad: int = 0, window_fn: Callable[[...], torch.Tensor] = < object> 类型的内置方法 hann_window,power 可选[float] = 2.0,标准化: bool = False, wkwargs: 可选[dict] = 无,中心: bool = True, pad_mode: str = 'reflect', 单面的: bool = True, return_complex: 可选[bool] = None[来源]torchaudio.transforms.Spectrogram

从音频信号创建频谱图。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript
参数
  • n_fftintoptional) - FFT 的大小,创建 bin。(默认:n_fft // 2 + 1400)

  • win_lengthintNone可选) – 窗口大小。(默认:n_fft)

  • hop_lengthintNone可选) – STFT 窗口之间的跃点长度。(默认:win_length // 2)

  • padintoptional) - 信号的两侧填充。(默认:0)

  • window_fnCallable[..Tensor]optional) – 用于创建窗口张量的函数 应用/乘以每个框架/窗口。(默认:torch.hann_window)

  • powerfloatNone可选) – 幅度频谱图的指数, (必须> 0) 例如,1 表示能量,2 表示功率,等等。 如果为 None,则返回复数谱。(默认:2)

  • normalizedbooloptional) - 是否在 stft 之后按量级进行标准化。(默认:False)

  • wkwargsdictNone可选) – 窗口函数的参数。(默认:None)

  • centerbooloptional) – 是否在两侧填充,以便 第 \(t\) 帧以时间 \(t \times \text{hop\_length}\) 为中心。 (默认:waveformTrue)

  • pad_modestringoptional) – 控制 is 时使用的填充方法。(默认:centerTrue"reflect")

  • onesidedbooloptional) – 控制是否将一半的结果返回给 避免冗余(默认值:True)

  • return_complexbooloptional) – 已弃用且未使用。

>>> waveform, sample_rate = torchaudio.load('test.wav', normalize=True)
>>> transform = torchaudio.transforms.Spectrogram(n_fft=800)
>>> spectrogram = transform(waveform)
教程使用:Spectrogram
forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) - 维度 (..., time) 的音频张量。

返回

维度 (..., freq, time),其中 freq 是 傅里叶分箱,时间是窗口跃点数 (n_frame)。n_fft // 2 + 1n_fft

返回类型

张肌

逆频谱图

n_fft: int = 400, win_length: 可选[int] = 无, hop_length: 可选[int] = 无, pad: int = 0, window_fn: Callable[[...], torch.Tensor] = < object> 类型的内置方法hann_window归一化:bool = False,wkwargs可选[dict] = 无,中心:bool = True,pad_modestr = 'reflect', 单面:bool = True[来源]torchaudio.transforms.InverseSpectrogram

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

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript
参数
  • n_fftintoptional) - FFT 的大小,创建 bin。(默认:n_fft // 2 + 1400)

  • win_lengthintNone可选) – 窗口大小。(默认:n_fft)

  • hop_lengthintNone可选) – STFT 窗口之间的跃点长度。(默认:win_length // 2)

  • padintoptional) - 信号的两侧填充。(默认:0)

  • window_fnCallable[..Tensor]optional) – 用于创建窗口张量的函数 应用/乘以每个框架/窗口。(默认:torch.hann_window)

  • normalizedbooloptional) – 频谱图是否在 stft 之后按幅度进行标准化。 (默认:False)

  • wkwargsdictNone可选) – 窗口函数的参数。(默认:None)

  • centerbooloptional) - 频谱图中的信号是否在两侧填充,因此 第 \(t\) 帧以时间 \(t \times \text{hop\_length}\) 为中心。 (默认:True)

  • pad_modestringoptional) – 控制 is 时使用的填充方法。(默认:centerTrue"reflect")

  • onesidedbooloptional) – 控制是否使用频谱图将一半的结果返回给 避免冗余(默认值:True)

>>> batch, freq, time = 2, 257, 100
>>> length = 25344
>>> spectrogram = torch.randn(batch, freq, time, dtype=torch.cdouble)
>>> transform = transforms.InverseSpectrogram(n_fft=512)
>>> waveform = transform(spectrogram, length)
教程使用:InverseSpectrogram
forward(频谱图TORCH。Tensor长度Optional[int] = None) → torch。张量[来源]
参数
  • spectrogramTensor) - 维度为 (..., freq, time) 的音频的复张量。

  • lengthintNone可选) – 波形的输出长度。

返回

维度 (..., 时间),原始信号的最小二乘估计。

返回类型

张肌

MelSpectrogram 梅尔频谱图

sample_rate: int = 16000, n_fft: int = 400, win_length: 可选[int] = 无, hop_length: 可选[int] = 无, f_min: 浮点= 0.0, f_max: 可选[浮点数] = 无,pad:int = 0,n_melsint = 128,window_fnCallable[[...],torch。Tensor] = < object> 类型的内置方法 hann_window,幂:float = 2.0,归一化:bool = False,wkwargs可选[dict] = None,中心:bool = True, pad_mode: str = 'reflect', 单面的: bool = True, norm: 可选[str] = 无, mel_scale: str = 'htk'[来源]torchaudio.transforms.MelSpectrogram

为原始音频信号创建 MelSpectrogram。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

这是 和 的组合 和 .

来源
参数
  • sample_rateintoptional) – 音频信号的采样率。(默认:16000)

  • n_fftintoptional) - FFT 的大小,创建 bin。(默认:n_fft // 2 + 1400)

  • win_lengthintNone可选) – 窗口大小。(默认:n_fft)

  • hop_lengthintNone可选) – STFT 窗口之间的跃点长度。(默认:win_length // 2)

  • f_minfloatoptional) (最小频率)。(默认:0.)

  • f_maxfloatNone可选) – 最大频率。(默认:None)

  • padintoptional) - 信号的两侧填充。(默认:0)

  • n_melsintoptional) – mel filterbanks 的数量。(默认:128)

  • window_fnCallable[..Tensor]optional) – 用于创建窗口张量的函数 应用/乘以每个框架/窗口。(默认:torch.hann_window)

  • powerfloatoptional) – 幅度频谱图的指数, (必须> 0) 例如,1 表示能量,2 表示功率,等等。(默认值:2)

  • normalizedbooloptional) - 是否在 stft 之后按量级进行标准化。(默认:False)

  • wkwargsDict[....] 或 Noneoptional) – 窗口函数的参数。(默认:None)

  • centerbooloptional) – 是否在两侧填充,以便 第 \(t\) 帧以时间 \(t \times \text{hop\_length}\) 为中心。 (默认:waveformTrue)

  • pad_modestringoptional) – 控制 is 时使用的填充方法。(默认:centerTrue"reflect")

  • onesidedbooloptional) – 控制是否将一半的结果返回给 避免冗余。(默认:True)

  • normstrNone可选) – 如果为 'slaney',则将三角形 mel 权重除以 mel 带的宽度 (区域标准化)。(默认:None)

  • mel_scalestroptional) – 要使用的缩放:或 .(默认:htkslaneyhtk)

>>> waveform, sample_rate = torchaudio.load('test.wav', normalize=True)
>>> transform = transforms.MelSpectrogram(sample_rate)
>>> mel_specgram = transform(waveform)  # (channel, n_mels, time)

另请参阅

- 用于 生成 Filter Banks。

教程使用:MelSpectrogram
forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) - 维度 (..., time) 的音频张量。

返回

大小的梅尔频率频谱图 (..., , time)。n_mels

返回类型

张肌

格里芬林

n_fft: int = 400, n_iter: int = 32, win_length: 可选[int] = 无, hop_length: 可选[int] = 无, window_fn: 可调用[[...], Torch。Tensor] = < object> 类型的内置方法 hann_window,power float = 2.0, wkwargs: Optional[dict] = None, momentum: float = 0.99, length: Optional[int] = None, rand_init: bool = True[来源]torchaudio.transforms.GriffinLim

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

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

librosa 移植的实现 [2],一种快速的 Griffin-Lim 算法 [3] 以及来自改进的短时傅里叶变换的信号估计 [4]。

参数
  • n_fftintoptional) - FFT 的大小,创建 bin。(默认:n_fft // 2 + 1400)

  • n_iterintoptional) – 阶段恢复过程的迭代次数。(默认:32)

  • win_lengthintNone可选) – 窗口大小。(默认:n_fft)

  • hop_lengthintNone可选) – STFT 窗口之间的跃点长度。(默认:win_length // 2)

  • window_fnCallable[..Tensor]optional) – 用于创建窗口张量的函数 应用/乘以每个框架/窗口。(默认:torch.hann_window)

  • powerfloatoptional) – 幅度频谱图的指数, (必须> 0) 例如,1 表示能量,2 表示功率,等等。(默认值:2)

  • wkwargsdictNone可选) – 窗口函数的参数。(默认:None)

  • momentumfloatoptional) - 快速 Griffin-Lim 的动量参数。 将此设置为 0 将恢复原始的 Griffin-Lim 方法。 接近 1 的值可以加快收敛速度,但高于 1 的值可能不会收敛。(默认:0.99)

  • lengthintoptional) – 预期输出的数组长度。(默认:None)

  • rand_initbooloptional) – 如果为 True,则随机初始化阶段,否则为零。(默认:True)

>>> batch, freq, time = 2, 257, 100
>>> spectrogram = torch.randn(batch, freq, time)
>>> transform = transforms.GriffinLim(n_fft=512)
>>> waveform = transform(spectrogram)
教程使用:GriffinLim
forward(specgramTorch。Tensor) → torch 的 Tensor 中。张量[来源]
参数

specgramTensor) - 维度为 (..., freq, frames) 的仅幅度的 STFT 频谱图 其中 freq 是 。n_fft // 2 + 1

返回

waveform of (..., time),其中 time 等于参数(如果给定)。length

返回类型

张肌

MFCC

sample_rate int = 16000n_mfcc: int = 40dct_type: int = 2norm str = 'ortho'log_mels: bool = Falsemelkwargs 可选[dict (字典] = [来源]torchaudio.transforms.MFCC

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

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

默认情况下,这将计算 DB 缩放的 Mel 频谱图上的 MFCC。 这不是教科书上的实现,但在这里实现是为了 与 librosa 保持一致。

此输出取决于输入频谱图中的最大值,因此 可能会为拆分为片段的音频剪辑返回不同的值,而不是 一个完整的剪辑。

参数
  • sample_rateintoptional) – 音频信号的采样率。(默认:16000)

  • n_mfccintoptional) – 要保留的 mfc 系数的数量。(默认:40)

  • dct_typeintoptional) - 要使用的 DCT (离散余弦变换) 的类型。(默认:2)

  • normstroptional) - 要使用的范数。(默认:'ortho')

  • log_melsbooloptional) – 是否使用 log-mel 频谱图而不是 dB 缩放。(默认:False)

  • melkwargsdictNone可选) - MelSpectrogram 的参数。(默认:None)

另请参阅

- 用于 生成 Filter Banks。

教程使用:MFCC
forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) - 维度 (..., time) 的音频张量。

返回

大小为 (..., , time) 的 specgram_mel_db。n_mfcc

返回类型

张肌

LFCC 公司

sample_rate int = 16000n_filter int = 128f_min: float = 0.0f_max 可选[float] = n_lfcc int = 40dct_type: int = 2norm str = 'ortho'log_lf: bool = Falsespeckwargs 可选[dict] = None[来源]torchaudio.transforms.LFCC

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

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

默认情况下,这将计算 DB 缩放的线性滤波频谱图上的 LFCC。 这不是教科书上的实现,但在这里实现是为了 与 librosa 保持一致。

此输出取决于输入频谱图中的最大值,因此 可能会为拆分为片段的音频剪辑返回不同的值,而不是 一个完整的剪辑。

参数
  • sample_rateintoptional) – 音频信号的采样率。(默认:16000)

  • n_filterintoptional) – 要应用的线性筛选条件的数量。(默认:128)

  • n_lfccintoptional) - 要保留的 lfc 系数的数量。(默认:40)

  • f_minfloatoptional) (最小频率)。(默认:0.)

  • f_maxfloatNone可选) – 最大频率。(默认:None)

  • dct_typeintoptional) - 要使用的 DCT (离散余弦变换) 的类型。(默认:2)

  • normstroptional) - 要使用的范数。(默认:'ortho')

  • log_lfbooloptional) – 是否使用 log-lf 频谱图而不是 db-scaled。(默认:False)

  • speckwargsdictNone可选) – Spectrogram 的参数。(默认:None)

另请参阅

- 用于 生成 Filter Banks。

教程使用:LFCC
forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) - 维度 (..., time) 的音频张量。

返回

线性频率 大小 (..., , time) 的倒谱系数。n_lfcc

返回类型

张肌

计算增量

win_lengthint = 5模式str = 'replicate'[来源]torchaudio.transforms.ComputeDeltas

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

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

有关详细信息,请参阅 torchaudio.functional.compute_deltas

参数
  • win_lengthintoptional) – 用于计算增量的窗口长度。(默认:5)

  • modestroptional) – 传递给 padding 的 Mode 参数。(默认:'replicate')

forward(specgramTorch。Tensor) → torch 的 Tensor 中。张量[来源]
参数

specgramTensor) - 维度为 (..., freq, time) 的音频张量。

返回

维度增量的张量 (..., freq, time)。

返回类型

张肌

音高偏移

sample_rate: int, n_steps: int, bins_per_octave: int = 12, n_fft: int = 512, win_length: 可选[int] = 无, hop_length: 可选[int] = 无, window_fn: 可调用[[...],Torch。Tensor] = < object> 类型的内置方法 hann_window,wkwargs:可选[dict] = None[源]torchaudio.transforms.PitchShift

逐步移动波形的音高。n_steps

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:TorchScript
参数
  • waveformTensor) - 形状为 (..., time) 的输入波形。

  • sample_rateint) - 波形的采样率。

  • n_stepsint) - 移动波形的 (小数) 步长。

  • bins_per_octaveintoptional) – 每个八度音程的步数 (默认值 : )。12

  • n_fftintoptional) – FFT 的大小,创建 bin (默认值: )。n_fft // 2 + 1512

  • win_lengthintNone可选) – 窗口大小。如果为 None,则使用 then 。(默认值:)。n_fftNone

  • hop_lengthintNone可选) – STFT 窗口之间的跃点长度。如果为 None,则使用 (Default: )。win_length // 4None

  • windowTensorNone可选) – 应用于/乘以每个帧/窗口的窗口张量。 如果为 None,则使用 (Default: )。torch.hann_window(win_length)None

>>> waveform, sample_rate = torchaudio.load('test.wav', normalize=True)
>>> transform = transforms.PitchShift(sample_rate, 4)
>>> waveform_shift = transform(waveform)  # (channel, time)
forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) - 维度为 (..., time) 的音频张量。

返回

shape (..., time) 的音高偏移音频。

返回类型

张肌

滑动窗口 Cmn

cmn_window: int = 600min_cmn_window int = 100中心 bool = Falsenorm_vars bool = False[来源]torchaudio.transforms.SlidingWindowCmn

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

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript
参数
  • cmn_windowint 可选 ) – 用于运行平均 CMN 计算的帧中的窗口 ( int , 默认值 = 600)

  • min_cmn_windowint可选) – 解码开始时使用的最小 CMN 窗口 (仅在开始时添加延迟)。 仅在 center == false 时适用,如果 center==true (int, default = 100) 则忽略

  • centerbool可选) – 如果为 true,则使用以当前帧为中心的窗口 (在可能的情况下,模数末端效应)。如果为 false,则 window 位于左侧。(布尔值,默认值 = false)

  • norm_varsbooloptional) – 如果为 true,则将方差标准化为 1。(布尔值,默认值 = false)

forward(specgramTorch。Tensor) → torch 的 Tensor 中。张量[来源]
参数

specgramTensor) - 维度 (..., time, freq) 的频谱图的张量。

返回

维度 (..., time, freq) 的频谱图张量。

返回类型

张肌

SpectralCentroid (光谱中心)

class sample_rate: int, n_fft: int = 400, win_length: optional[int] = None, hop_length: Optional[int] = None, pad: int = 0, window_fn: Callable[[...], torch.Tensor] = < object> 类型的内置方法 hann_window,wkwargs: Optional[dict] = None[源代码]torchaudio.transforms.SpectralCentroid

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

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

谱质心定义为 frequency 值,按其量级加权。

参数
  • sample_rateint) – 音频信号的采样率。

  • n_fftintoptional) - FFT 的大小,创建 bin。(默认:n_fft // 2 + 1400)

  • win_lengthintNone可选) – 窗口大小。(默认:n_fft)

  • hop_lengthintNone可选) – STFT 窗口之间的跃点长度。(默认:win_length // 2)

  • padintoptional) - 信号的两侧填充。(默认:0)

  • window_fnCallable[..Tensor]optional) – 用于创建窗口张量的函数 应用/乘以每个框架/窗口。(默认:torch.hann_window)

  • wkwargsdictNone可选) – 窗口函数的参数。(默认:None)

>>> waveform, sample_rate = torchaudio.load('test.wav', normalize=True)
>>> transform = transforms.SpectralCentroid(sample_rate)
>>> spectral_centroid = transform(waveform)  # (channel, time)
forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) - 维度为 (..., time) 的音频张量。

返回

大小 (..., time) 的频谱质心。

返回类型

张肌

瓦德

sample_rate: inttrigger_level float = 7.0trigger_time: float = 0.25search_time浮点= 1.0allowed_gap:浮点= 0.25pre_trigger_time:浮点= 0.0boot_time 浮点= 0.35noise_up_time: 浮点= 0.1noise_down_time: 浮点= 0.01,noise_reduction_amount浮点= 1.35,measure_freq浮点= 20.0,measure_duration 可选[float] = Nonemeasure_smooth_time: float = 0.4hp_filter_freq: float = 50.0,lp_filter_freq浮点= 6000.0,hp_lifter_freq浮点= 150.0,lp_lifter_freq浮点= 2000.0[来源]torchaudio.transforms.Vad

语音活动检测器。类似于 SoX 实现。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:TorchScript

尝试从语音录音的结尾修剪静音和安静的背景声音。 该算法目前使用简单的倒谱功率测量来检测语音, 所以可能会被其他事物所愚弄,尤其是音乐。

该效果只能从音频的前面进行修剪, 所以为了从后面修剪,还必须使用反向效果。

参数
  • sample_rateint) – 音频信号的采样率。

  • trigger_level (float, optional) (浮点数,可选) – 用于触发活动检测的测量级别。 这可能需要根据噪音水平、信号水平、 以及输入音频的其他特性。(默认值:7.0)

  • trigger_timefloatoptional) – 时间常数 (以秒为单位) 用于帮助忽略短促的声音。(默认值:0.25)

  • search_timefloatoptional) – 音频量 (以秒为单位) 搜索更安静/更短的音频突发以包含之前的音频 拖动到检测到的触发点。(默认值:1.0)

  • allowed_gapfloatoptional) – 两者之间允许的间隔 (以秒为单位) 要包含先前的音频的较长/更短的突发 拖动到检测到的触发点。(默认值:0.25)

  • pre_trigger_timefloatoptional) – 要保留的音频量 (以秒为单位) 在触发点之前以及找到的任何更安静/更短的突发。(默认值:0.0)

  • boot_timefloatoptional算法内部) – 估计/减少以检测所需音频的开始。 此选项设置初始噪声估计的时间。(默认值:0.35)

  • noise_up_timefloatoptional) – 当噪音水平增加时。(默认值:0.1)

  • noise_down_timefloatoptional) – 当噪音水平降低时。(默认值:0.01)

  • noise_reduction_amountfloatoptional) – 检测算法 (例如 0, 0.5, ...)。(默认:1.35)

  • measure_freqfloatoptional) – 处理/测量。(默认值:20.0)

  • measure_duration -(float 或 None,可选)测量持续时间。 (默认值:测量周期的两倍;即重叠。

  • measure_smooth_timefloatoptional) – 光谱测量。(默认值:0.4)

  • hp_filter_freqfloatoptional) – 在检测器算法的输入处。(默认值:50.0)

  • lp_filter_freqfloatoptional) – 在检测器算法的输入处。(默认值:6000.0)

  • hp_lifter_freqfloatoptional) – 在检测器算法中。(默认值:150.0)

  • lp_lifter_freqfloatoptional) – 在检测器算法中。(默认值:2000.0)

参考:
forward(波形手电筒。Tensor) → torch 的 Tensor 中。张量[来源]
参数

waveformTensor) – 维度 (channels, time)(time) 的音频张量形状 (channels, time) 的张量被视为多通道录音 的 Alpha S 的 Alpha S Package,并且生成的输出将被修剪到最早的 任何频道中的语音活动。

损失

RNNTLoss

blank int = - 1clamp float = - 1.0reduction str = 'mean'[来源]torchaudio.transforms.RNNTLoss

使用循环神经网络计算序列转导的 RNN 传感器损失 [5]。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

RNN 传感器损耗通过定义输出上的分布来扩展 CTC 损耗 所有长度的序列,并通过联合建模输入-输出和输出-输出 依赖。

参数
  • blankintoptional) – 空白标签 (默认值:-1)

  • clampfloatoptional) – 渐变的 clamp (默认:-1)

  • reductionstringoptional) – 指定要应用于输出的 reduction : | | .(默认:'none''mean''sum''mean')

>>> # Hypothetical values
>>> logits = torch.tensor([[[[0.1, 0.6, 0.1, 0.1, 0.1],
>>>                          [0.1, 0.1, 0.6, 0.1, 0.1],
>>>                          [0.1, 0.1, 0.2, 0.8, 0.1]],
>>>                         [[0.1, 0.6, 0.1, 0.1, 0.1],
>>>                          [0.1, 0.1, 0.2, 0.1, 0.1],
>>>                          [0.7, 0.1, 0.2, 0.1, 0.1]]]],
>>>                       dtype=torch.float32,
>>>                       requires_grad=True)
>>> targets = torch.tensor([[1, 2]], dtype=torch.int)
>>> logit_lengths = torch.tensor([2], dtype=torch.int)
>>> target_lengths = torch.tensor([2], dtype=torch.int)
>>> transform = transforms.RNNTLoss(blank=0)
>>> loss = transform(logits, targets, logit_lengths, target_lengths)
>>> loss.backward()
forward(LogitsTorch。Tensor目标torch。Tensor,logit_lengths:torch。Tensor,target_lengthstorch。张量[来源]
参数
  • logitsTensor) – 维度 (batch, max seq length, max target length + 1, class) 的张量,包含连接符的输出

  • targetsTensor) – 维度 (batch, max target length) 的张量,包含填充为零的目标

  • logit_lengthsTensor) – 维度 (batch) 的张量,包含编码器中每个序列的长度

  • target_lengthsTensor) – 维度 (batch) 的张量,包含每个序列的目标长度

返回

应用了 reduction 选项的 loss。如果是 ,则大小 (batch), 否则为 scalar。reduction'none'

返回类型

张肌

多通道

PSD

multi_mask: bool = Falsenormalize bool = Trueeps float = 1e-15[来源]torchaudio.transforms.PSD

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

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript
参数
  • multi_maskbooloptional) – 如果 ,则仅接受多通道时频掩码。(默认:TrueFalse)

  • normalizebooloptional) – 如果 ,则沿时间维度对掩码进行标准化。(默认:TrueTrue)

  • eps (float, optional) (eps (floatoptional) (英语) - 在掩码标准化中添加到分母的值。(默认:1e-15)

教程使用:PSD
forward(specgramTorch。Tensor掩码可选[torch.张量] = [来源]
参数
  • Specgramtorch.Tensor) - 多通道复值谱。 维度为 (..., channel, freq, time) 的 Tensor。

  • 遮罩Torch。TensorNone可选)– 用于归一化的时频掩码。 具有维度 (..., freq, time) 的张量(如果 multi_mask 是或 如果 multi_mask 为 ,则使用维度 (..., channel, freq, time) 。 (默认:FalseTrueNone)

返回

输入频谱的复值 PSD 矩阵。

具有维度的张量 (..., freq, channel, channel)

返回类型

torch.Tensor

MVDR

ref_channel int = 0 str = 'ref_channel'multi_mask: bool = Falsediag_loading: bool = Truediag_eps: float = 1e-07online bool = 错误[来源]torchaudio.transforms.MVDR

最小方差无失真响应 (MVDR) 模块,使用时频模板执行 MVDR 波束成形。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

基于 https://github.com/espnet/espnet/blob/master/espnet2/enh/layers/beamformer.py

我们提供三种 MVDR 波束成形解决方案。一个基于参考通道选择 [6] ()。solution=ref_channel

\[\textbf{w}_{\text{MVDR}}(f) = \frac{{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bf{\Phi}_{\textbf{SS}}}}(f)} {\text{Trace}({{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f) \bf{\Phi}_{\textbf{SS}}}(f))}}\bm{u} \]

其中 \(\bf{\Phi}_{\textbf{SS}}\)\(\bf{\Phi}_{\textbf{NN}}\) 分别是语音和噪声的协方差矩阵。\(\bf{u}\) 是确定参考通道的独热向量。

其他两个解决方案基于转向向量 ( 或 )。solution=stv_evdsolution=stv_power

\[\textbf{w}_{\text{MVDR}}(f) = \frac{{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bm{v}(f)}} {{\bm{v}^{\mathsf{H}}}(f){\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bm{v}}(f)} \]

其中 \(\bm{v}\) 是声学传递函数或转向矢量。\(.^{\mathsf{H}}\) 表示厄米特共轭操作。

我们应用特征值分解 [7] 或幂法 [8] 来获得 来自语音的 PSD 矩阵的 steering 向量。

在估计波束成形权重后,通过以下公式获得增强的短时傅里叶变换 (STFT)

\[\hat{\bf{S}} = {\bf{w}^\mathsf{H}}{\bf{Y}}, {\bf{w}} \in \mathbb{C}^{M \times F} \]

其中 \(\bf{Y}\)\(\hat{\bf{S}}\) 分别是多声道噪声语音和单通道增强语音的 STFT。

对于在线流媒体音频,我们提供了一种递归方法 [9] 来更新 分别是语音和噪声的 PSD 矩阵。

参数
  • ref_channelintoptional) – 波束成形的参考通道。(默认:0)

  • solutionstroptional) – 计算 MVDR 波束成形权重的解决方案。 选项:[, , ]。(默认:ref_channelstv_evdstv_powerref_channel)

  • multi_maskbooloptional) – 如果 ,则仅接受多通道时频掩码。(默认:TrueFalse)

  • diagonal_loadingbooloptional) – 如果 ,则允许对协方差矩阵应用对角线载荷 的噪音。(默认:TrueTrue)

  • diag_epsfloatoptional) - 对角线载荷的系数乘以单位矩阵。 仅当设置为 时,它才有效。(默认:diagonal_loadingTrue1e-7)

  • onlinebool可选) – 如果 ,则根据 前面的协变量矩阵。(默认:TrueFalse)

注意

为了提高数值稳定性,输入的频谱图将转换为双精度 ( 或 ) dtype 进行内部计算。输出频谱图 转换为 Input Spectrogram 的 dtype 以与其他模块兼容。torch.complex128torch.cdouble

注意

如果使用 solution,则同一输入的梯度可能不相同,如果 PSD 矩阵的特征值不是不同的(即一些特征值接近或相同)。stv_evd

forward(specgramTorch。Tensor,mask_s:torch。Tensor,mask_n可选[torch.Tensor] = Nonetorch 的 Torch 中。张量[来源]

执行 MVDR 波束成形。

参数
  • Specgramtorch.Tensor) - 多通道复值谱。 具有维度 (..., channel, freq, time) 的张量

  • mask_sTorch。Tensor) - 目标语音的时频掩码。 具有维度 (..., freq, time) 的张量 如果 multi_mask 是 ,则具有维度 (..., channel, freq, time) 的张量 如果 multi_mask 是 .FalseTrue

  • mask_nTorch。TensorNone可选) – 噪声的时频掩码。 如果 multi_mask 是,则为具有维度 (..., freq, time) 的张量,如果 multi_mask 为 ,则为具有维度 (..., channel, freq, time) 的张量。 (默认值:无)FalseTrue

返回

具有维度 (..., freq, time) 的单通道复值增强频谱。

返回类型

torch.Tensor

RTFMVDR

[来源]torchaudio.transforms.RTFMVDR

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

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

给定多通道复值谱 \(\textbf{Y}\),相对传递函数 (RTF) 矩阵 或目标语音的转向向量 \(\bm{v}\),噪声的 PSD 矩阵 \(\bf{\Phi}_{\textbf{NN}}\),以及 一个表示参考通道 \(\bf{u}\) 的 one-hot 向量,该模块计算单通道 增强语音 \(\hat{\textbf{S}}\) 的复值频谱。公式定义为:

\[\hat{\textbf{S}}(f) = \textbf{w}_{\text{bf}}(f)^{\mathsf{H}} \textbf{Y}(f) \]

其中 \(\textbf{w}_{\text{bf}}(f)\) 是第 \(f\) 个频率区间的 MVDR 波束成形权重,\((.)^{\mathsf{H}}\) 表示厄米特共轭操作。

波束成形权重的计算公式为:

\[\textbf{w}_{\text{MVDR}}(f) = \frac{{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bm{v}}(f)}} {{\bm{v}^{\mathsf{H}}}(f){\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bm{v}}(f)} \]
教程使用:RTFMVDR
forward(specgramTorch。Tensor,rtfTorch。Tensor,psd_n:torch。张量reference_channel:Union[int torch.Tensor]diagonal_loading:bool = True,diag_eps:float = 1e-07,epsfloat = 1e-08torch。张量[来源]
参数
  • Specgramtorch.Tensor) - 多通道复值谱。 具有维度 (..., channel, freq, time) 的张量

  • RTFTorch。Tensor) - 目标语音的复值 RTF 向量。 维度为 (..., freq, channel) 的 Tensor。

  • psd_nTorch。Tensor) - 噪声的复值功率谱密度 (PSD) 矩阵。 维度为 (..., freq, channel, channel) 的 Tensor。

  • reference_channelinttorch.Tensor) – 指定参考通道。 如果 dtype 为 ,则表示引用通道索引。 如果 dtype 为 ,则其形状为 (..., channel),其中维度 是 one-hot。inttorch.Tensorchannel

  • diagonal_loadingbooloptional) – 如果 ,则允许对 应用对角线载荷。 (默认:Truepsd_nTrue)

  • diag_epsfloatoptional) - 对角线载荷的系数乘以单位矩阵。 仅当设置为 时,它才有效。(默认:diagonal_loadingTrue1e-7)

  • eps (float, optional) ((eps (float, optional) (浮点数,可选)) – 要添加到波束成形权重公式中的分母的值。 (默认:1e-8)

返回

具有维度 (..., freq, time) 的单通道复值增强频谱。

返回类型

torch.Tensor

SoudenMVDR

[来源]torchaudio.transforms.SoudenMVDR

最小方差无失真响应 (MVDR [10]) 模块 基于 Souden 等人 [6] 提出的方法。

此功能支持以下设备:CPU、CUDA 此 API 支持以下属性:Autograd、TorchScript

给定多通道复值谱 \(\textbf{Y}\),功率谱密度 (PSD) 矩阵 目标语音 \(\bf{\Phi}_{\textbf{SS}}\) 的 PSD 矩阵,噪声 \(\bf{\Phi}_{\textbf{NN}}\) 的 PSD 矩阵,以及 一个表示参考通道 \(\bf{u}\) 的 one-hot 向量,该模块计算单通道 增强语音 \(\hat{\textbf{S}}\) 的复值频谱。公式定义为:

\[\hat{\textbf{S}}(f) = \textbf{w}_{\text{bf}}(f)^{\mathsf{H}} \textbf{Y}(f) \]

其中 \(\textbf{w}_{\text{bf}}(f)\) 是第 \(f\) 个频率区间的 MVDR 波束成形权重。

波束成形权重的计算公式为:

\[\textbf{w}_{\text{MVDR}}(f) = \frac{{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bf{\Phi}_{\textbf{SS}}}}(f)} {\text{Trace}({{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f) \bf{\Phi}_{\textbf{SS}}}(f))}}\bm{u} \]
教程使用:SoudenMVDR
forward(specgramTorch。Tensor,psd_s:torch。Tensor,psd_n:torch。张量reference_channel:Union[int torch.Tensor]diagonal_loading:bool = True,diag_eps:float = 1e-07,epsfloat = 1e-08torch。张量[来源]
参数
  • Specgramtorch.Tensor) - 多通道复值谱。 维度为 (..., channel, freq, time) 的 Tensor。

  • psd_sTorch。Tensor) – 目标语音的复值功率谱密度 (PSD) 矩阵。 维度为 (..., freq, channel, channel) 的 Tensor。

  • psd_nTorch。Tensor) - 噪声的复值功率谱密度 (PSD) 矩阵。 维度为 (..., freq, channel, channel) 的 Tensor。

  • reference_channelinttorch.Tensor) – 指定参考通道。 如果 dtype 为 ,则表示引用通道索引。 如果 dtype 为 ,则其形状为 (..., channel),其中维度 是 one-hot。inttorch.Tensorchannel

  • diagonal_loadingbooloptional) – 如果 ,则允许对 应用对角线载荷。 (默认:Truepsd_nTrue)

  • diag_epsfloatoptional) - 对角线载荷的系数乘以单位矩阵。 仅当设置为 时,它才有效。(默认:diagonal_loadingTrue1e-7)

  • eps (float, optional) ((eps (float, optional) (浮点数,可选)) – 要添加到波束成形权重公式中的分母的值。 (默认:1e-8)

返回

具有维度 (..., freq, time) 的单通道复值增强频谱。

返回类型

torch.Tensor

引用

11,2,3

Daniel S. Park、William Chan、Yu Zhang、Chung-Cheng Chiu、Barret Zoph、Ekin D. Cubuk 和 Quoc V. Le。Specaugment:一种用于自动语音识别的简单数据增强方法。Interspeech 2019,2019 年 9 月。网址:http://dx.doi.org/10.21437/Interspeech.2019-2680,doi:10.21437/interspeech.2019-2680

2

布莱恩·麦克菲、科林·拉菲尔、达文·梁、丹尼尔·埃利斯、马特·麦克维卡、埃里克·巴滕贝格和奥里奥尔·涅托。Librosa:Python 中的音频和音乐信号分析。Kathryn Huff 和 James Bergstra 主编,第 14 届 Python 科学会议论文集,第 18 – 24 页。2015. doi:10.25080/Majora-7b98e3ed-003.

3

Nathanaël Perraudin、Peter Balazs 和 Peter L. Søndergaard。一种快速的 griffin-lim 算法。2013 年 IEEE 信号处理在音频和声学中的应用研讨会,第 1-4 卷。2013. doi:10.1109/WASPAA.2013.6701851.

4

D. Griffin 和 Jae Lim. 来自改进的短时傅里叶变换的信号估计。在 ICASSP '83 中。IEEE 声学、语音和信号处理国际会议,第 8 卷,804-807。1983. doi:10.1109/ICASSP.1983.1172092.

5

亚历克斯·格雷夫斯。使用递归神经网络进行序列转导。2012. arXiv:1211.3711.

61,2

Mehrez Souden、Jacob Benesty 和 Sofiene Affes。在最佳频域多通道线性滤波上,用于降噪。在 IEEE 音频、语音和语言处理汇刊中,第 18 卷,260-276。IEEE,2009 年。

7

Takuya Higuchi、Nobutaka Ito、Takuya Yoshioka 和 Tomohiro Nakatani。使用时频模板实现噪声在线/离线 asr 的稳健 mvdr 波束成形。2016 年 IEEE 声学、语音和信号处理国际会议 (ICASSP),5210–5214。IEEE,2016 年。

8

RV Mises 和 Hilda Pollaczek-Geiringer。Praktische verfahren der gleichungsauflösung.ZAMM-Journal of Applied Mathematics and Mechanics/Zeitschrift für Angewandte Mathematik und Mechanik, 9(1):58–77, 1929.

9

樋口拓哉、伊藤信孝、荒木翔子、吉冈拓也、马克·德尔克鲁瓦和中谷智宏。基于复杂高斯混合模型的在线 mvdr 波束形成器,具有噪声鲁棒 asr 的空间先验。IEEE/ACM 音频、语音和语言处理汇刊,25(4):780–793,2017 年。

101,2

杰克·卡彭。高分辨率频率波数频谱分析。IEEE 会议记录,57(8):1408–1418,1969 年。

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源