torchaudio.functional¶
用于执行常见音频操作的函数。
效用¶
amplitude_to_DB¶
DB_to_amplitude¶
create_fb_matrix¶
-
torchaudio.functional.
create_fb_matrix
(n_freqs: int, f_min: float, f_max: float, n_mels: int, sample_rate: int, norm: Optional[str] = None, mel_scale: str = 'htk') → torch。张量[来源]¶ 创建频次 bin 转换矩阵。
- 参数
n_freqs (int) – 要突出显示/应用的频率数
f_min (float) – 最小频率 (Hz)
f_max (float) – 最大频率 (Hz)
n_mels (int) – mel filterbank 的数量
sample_rate (int) – 音频波形的采样率
norm (Optional[str]) - 如果为 'slaney',则将三角形梅尔权重除以梅尔带的宽度
normalization 的 Normalization)。(默认((区域) –
None
)mel_scale (str, optional) – 要使用的缩放:或 .(默认:
htk
slaney
htk
)
- 返回
大小为 (, ) 的三角滤波器组 (fb 矩阵) 表示要高亮/应用于 x 的 Frequencys 数量 FilterBank 的数量。 每列都是一个 filterbank,因此假设有一个矩阵 A size (..., ) 时,应用的结果将为 。
n_freqs
n_mels
n_freqs
A * create_fb_matrix(A.size(-1), ...)
- 返回类型
张肌
create_dct¶
mask_along_axis¶
mask_along_axis_iid¶
mu_law_encoding¶
mu_law_decoding¶
apply_codec¶
-
torchaudio.functional.
apply_codec
(波形:手电筒。张量、sample_rate:int、格式:str、channels_first:bool = True、压缩:可选[浮点] = 无、编码:可选[str] = 无、bits_per_sample:可选[int] = 无)→ torch。张量[来源]¶ 将编解码器作为增强的一种形式。
- 参数
waveform (Tensor) - 音频数据。必须是 2 维的。另请参阅 。
`channels_first`
sample_rate (int) – 音频波形的采样率。
format (str) – 文件格式。
channels_first (bool) – 当 True 时,输入和输出 Tensor 的维度均为 。 否则,它们的维度为 。
[channel, time]
[time, channel]
compression (float) (压缩 (浮点) ) – 用于 WAV 以外的格式。 有关更多详细信息,请参阅
。
encoding (str, optional) – 更改受支持格式的编码。 有关更多详细信息,请参阅
。
bits_per_sample (int, optional) – 更改受支持格式的位深度。 有关更多详细信息,请参阅
。
- 返回
结果 Tensor。 如果 ,则它有 else 。
channels_first=True
[channel, time]
[time, channel]
- 返回类型
重新采样¶
-
torchaudio.functional.
resample
(波形:手电筒。张量,orig_freq:浮点数,new_freq:浮点数,lowpass_filter_width:int = 6,滚动:浮点数 = 0.99,resampling_method:str = 'sinc_interpolation',beta:可选[浮点数 = 无)→ torch。张量[来源]¶ 使用带限插值在新频率处对波形进行重采样。
https://ccrma.stanford.edu/~jos/resample/Theory_Ideal_Bandlimited_Interpolation.html
注意
transforms.Resample
precalculates 并重用 resampling 内核,因此使用它将导致 如果使用相同的 resampling 参数对多个波形进行重采样,则计算效率更高。- 参数
waveform (Tensor) - 维度 (..., time) 的输入信号
orig_freq (float) – 信号的原始频率
new_freq (float) – 所需的频率
lowpass_filter_width (int, optional) – 控制滤镜的锐度,更多 == 更锐利 但效率较低。(默认:
6
)roll off (float, optional) (滚动频率,浮点数,可选) – 滤波器的滚降频率,以奈奎斯特频率的分数表示。 较低的值会减少抗锯齿,但也会降低一些最高频率。(默认:
0.99
)resampling_method (str, optional) – 要使用的重采样方法。 选项:[、](默认值:
sinc_interpolation
kaiser_window
'sinc_interpolation'
)
- 返回
新维度频率 (..., time) 的波形。
- 返回类型
张肌
滤波¶
allpass_biquad¶
-
torchaudio.functional.
allpass_biquad
(波形:手电筒。Tensor, sample_rate: int, central_freq: float, Q: float = 0.707) → torch。张量[来源]¶ 设计双极点全通滤波器。类似于 SoX 实现。
- 参数
波形(割torch。Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
central_freq(float 或 torch.Tensor) – 中心频率(以 Hz 为单位)
Q(浮子或Torch。Tensor,可选)– https://en.wikipedia.org/wiki/Q_factor (默认:
0.707
)
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
band_biquad¶
-
torchaudio.functional.
band_biquad
(波形:手电筒。张量、sample_rate:int、central_freq:浮点、Q:浮点 = 0.707、噪声:bool = False)→ torch。张量[来源]¶ 设计双极带滤波器。类似于 SoX 实现。
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
central_freq(float 或 torch.Tensor) – 中心频率(以 Hz 为单位)
Q(浮子或Torch。Tensor,可选) – https://en.wikipedia.org/wiki/Q_factor (默认值: )。
0.707
noise (bool, optional) – 如果 ,则对未音调的音频(例如打击乐)使用备用模式。 如果 ,则使用面向音高音频的模式,即语音、歌唱、 或器乐 (默认值: )。
True
False
False
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
bandpass_biquad¶
-
torchaudio.functional.
bandpass_biquad
(波形:手电筒。Tensor, sample_rate: int, central_freq: float, Q: float = 0.707, const_skirt_gain: bool = False) → torch。张量[来源]¶ 设计 2 极点带通滤波器。类似于 SoX 实现。
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
central_freq(float 或 torch.Tensor) – 中心频率(以 Hz 为单位)
Q(浮子或Torch。Tensor,可选)– https://en.wikipedia.org/wiki/Q_factor (默认:
0.707
)const_skirt_gain (bool, optional) – 如果 ,则使用恒定的裙边增益 (峰值增益 = Q)。 如果 ,则使用恒定的 0dB 峰值增益。(默认:
True
False
False
)
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
bandreject_biquad¶
-
torchaudio.functional.
bandreject_biquad
(波形:手电筒。Tensor, sample_rate: int, central_freq: float, Q: float = 0.707) → torch。张量[来源]¶ 设计 2 极点带阻滤波器。类似于 SoX 实现。
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
central_freq(float 或 torch.Tensor) – 中心频率(以 Hz 为单位)
Q(浮子或Torch。Tensor,可选)– https://en.wikipedia.org/wiki/Q_factor (默认:
0.707
)
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
bass_biquad¶
-
torchaudio.functional.
bass_biquad
(波形:手电筒。张量,sample_rate:int,增益:浮点数,central_freq:浮点数 = 100,Q:浮点数 = 0.707)→torch。张量[来源]¶ 设计低音音调控制效果。类似于 SoX 实现。
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
增益(float 或 torch.Tensor) – 提升(或衰减)时所需的增益,以 dB 为单位。
central_freq(float 或 torch.Tensor, optional) – 中心频率 (以 Hz 为单位)。(默认:
100
)Q(浮子或Torch。Tensor,可选) – https://en.wikipedia.org/wiki/Q_factor (默认值: )。
0.707
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
双二阶¶
-
torchaudio.functional.
biquad
(波形:手电筒。张量、b0:浮点、b1:浮点、b2:浮点、a0:浮点、a1:浮点、a2:浮点)→ torch。张量[来源]¶ 执行输入张量的双二阶滤波器。初始条件设置为 0。https://en.wikipedia.org/wiki/Digital_biquad_filter
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
b0(浮点或Torch。Tensor) – 电流输入的分子系数,x[n]
B1(浮点或Torch。Tensor) – 一步前输入的分子系数 x[n-1]
B2(浮点或Torch。Tensor) – 两个时间步前输入的分子系数 x[n-2]
A0(浮点或Torch。Tensor) – 电流输出 y[n] 的分母系数,通常为 1
A1(浮点或Torch。Tensor) – 电流输出的分母系数 y[n-1]
A2(浮子或Torch。Tensor) – 电流输出的分母系数 y[n-2]
- 返回
维度为 (..., time) 的波形
- 返回类型
张肌
反差¶
-
torchaudio.functional.
contrast
(波形:手电筒。Tensor,enhancement_amount:float = 75.0)→ torch。张量[来源]¶ 应用对比效果。类似于 SoX 实现。 与压缩类似,此效果会修改音频信号以使其听起来更响亮
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
enhancement_amount (float) – 控制增强的数量 enhancement_amount 允许的值范围:0-100 请注意,enhancement_amount = 0 仍会显著增强对比度
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
直流移位¶
deemph_biquad¶
抖动¶
equalizer_biquad¶
-
torchaudio.functional.
equalizer_biquad
(波形:手电筒。Tensor, sample_rate: int, center_freq: float, gain: float, Q: float = 0.707) → torch。张量[来源]¶ 设计双二阶峰值均衡器滤波器并执行滤波。类似于 SoX 实现。
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
center_freq (float) – 滤波器的中心频率
增益(float 或 torch.Tensor) – 提升(或衰减)处的所需增益,以 dB 为单位
Q(浮子或Torch。Tensor,可选)– https://en.wikipedia.org/wiki/Q_factor (默认:
0.707
)
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
镶边¶
-
torchaudio.functional.
flanger
(波形:手电筒。张量、sample_rate:int、延迟:float = 0.0、深度:float = 2.0、regen:float = 0.0、宽度:float = 71.0、速度:float = 0.5、phase:float = 25.0、调制:str = 'sinusoidal'、插值:str = 'linear') →Torch。张量[来源]¶ 将镶边效果应用于音频。类似于 SoX 实现。
- 参数
waveform (Tensor) – 维度为 (..., channel, time) 的音频波形。 最多允许 4 个通道
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
delay (float) – 期望的延迟,以毫秒 (ms) 为单位 允许的值范围为 0 到 30
depth (float) – 所需的延迟深度,以毫秒 (ms) 为单位 允许的值范围为 0 到 10
再生 (float) – 所需的再生 (反馈增益) (以 dB 为单位) 允许的值范围为 -95 到 95
width (float) – 所需的宽度 (延迟增益) ,单位为 dB 允许的值范围为 0 到 100
speed (float) – 调制速度,单位为 Hz 允许的值范围为 0.1 到 10
phase (float) – 多通道的相移百分比 允许的值范围为 0 到 100
modulation (str) – 使用 “sinusoidal” 或 “triangular” 调制。(默认:
sinusoidal
)interpolation (str) – 使用 “linear” 或 “quadratic” 进行延迟线插值。(默认:
linear
)
- 返回
维度波形 (..., channel, time)
- 返回类型
张肌
- 参考:
Scott Lehman,Effects Explained,
获得¶
highpass_biquad¶
-
torchaudio.functional.
highpass_biquad
(波形:手电筒。Tensor, sample_rate: int, cutoff_freq: float, Q: float = 0.707) → torch。张量[来源]¶ 设计双二阶高通滤波器并执行滤波。类似于 SoX 实现。
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
cutoff_freq(float 或 torch。Tensor) – 滤波器截止频率
Q(浮子或Torch。Tensor,可选)– https://en.wikipedia.org/wiki/Q_factor (默认:
0.707
)
- 返回
波形维度 (..., time)
- 返回类型
张肌
过滤器¶
-
torchaudio.functional.
lfilter
(波形:手电筒。Tensor,a_coeffs:torch。Tensor,b_coeffs:torch。Tensor,clamp: bool = True) → torch。张量[来源]¶ 通过评估差分方程来执行 IIR 滤波器。
注意
为避免数值问题,最好使用较小的滤波器阶数。 使用双精度还可以最大限度地减少数值精度误差。
- 参数
waveform (Tensor) - 维数为 的音频波形。必须规范化为 -1 到 1。
(..., time)
a_coeffs (Tensor) – 维数 的差集方程的分母系数。 较低的延迟系数在前,例如 . 必须与 b_coeffs 相同(必要时填充 0)。
(n_order + 1)
[a0, a1, a2, ...]
b_coeffs (Tensor) – 维数的分子差分方程 。 较低的延迟系数在前,例如 . 必须与 a_coeffs 相同(必要时用 0 填充)。
(n_order + 1)
[b0, b1, b2, ...]
clamp (bool, optional) – 如果 ,则将输出信号限制在 [-1, 1] 范围内(默认:
True
True
)
- 返回
维数为 的波形。
(..., time)
- 返回类型
张肌
lowpass_biquad¶
-
torchaudio.functional.
lowpass_biquad
(波形:手电筒。Tensor, sample_rate: int, cutoff_freq: float, Q: float = 0.707) → torch。张量[来源]¶ 设计双二阶低通滤波器并执行滤波。类似于 SoX 实现。
- 参数
波形(割torch。Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
cutoff_freq(float 或 torch。Tensor) – 滤波器截止频率
Q(浮子或Torch。Tensor,可选)– https://en.wikipedia.org/wiki/Q_factor (默认:
0.707
)
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
超速¶
相位¶
-
torchaudio.functional.
phaser
(波形:手电筒。张量、sample_rate:int、gain_in:浮点数 = 0.4、gain_out:浮点数 = 0.74、delay_ms:浮点数 = 3.0、衰减:浮点数 = 0.4、mod_speed:浮点数 = 0.5、正弦曲线:bool = True)→Torch。张量[来源]¶ 对音频应用阶段划分效果。类似于 SoX 实现。
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
gain_in (float) – 提升(或衰减)时所需的输入增益,单位为 dB 允许的值范围为 0 到 1
gain_out (float) – 提升(或衰减)时所需的输出增益,单位为 dB 允许的值范围为 0 到 1e9
delay_ms (float) – 所需的延迟(以毫秒为单位) 允许的值范围为 0 到 5.0
Decay (float) – 相对于增益的期望衰减 允许的值范围为 0 到 0.99
mod_speed (float) – 调制速度,单位为 Hz 允许的值范围为 0.1 到 2
sinusoidal (bool) – 如果 ,则使用正弦调制(最好用于多个乐器) 如果 ,则使用三角调制(为单个乐器提供更清晰的移相效果) (默认:
True
False
True
)
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
- 参考:
Scott Lehman,Effects Explained。
riaa_biquad¶
treble_biquad¶
-
torchaudio.functional.
treble_biquad
(波形:手电筒。张量,sample_rate:int,增益:浮点数,central_freq:浮点数 = 3000,Q:浮点数 = 0.707)→ torch。张量[来源]¶ 设计高音调控制效果。类似于 SoX 实现。
- 参数
waveform (Tensor) – 维度为 (..., time) 的音频波形
sample_rate (int) – 波形的采样率,例如 44100 (Hz)
增益(float 或 torch.Tensor) – 提升(或衰减)时所需的增益,以 dB 为单位。
central_freq(float 或 torch.Tensor, optional) – 中心频率 (以 Hz 为单位)。(默认:
3000
)Q(浮子或Torch。Tensor,可选) – https://en.wikipedia.org/wiki/Q_factor (默认值: )。
0.707
- 返回
(..., 时间) 的维度波形
- 返回类型
张肌
瓦德¶
特征提取¶
-
torchaudio.functional.
vad
(波形:手电筒。张量,sample_rate:int,trigger_level:浮点数 = 7.0,trigger_time:浮点数 = 0.25,search_time:浮点数 = 1.0,allowed_gap:浮点数 = 0.25,pre_trigger_time:浮点数 = 0.0,boot_time:浮点数 = 0.35,noise_up_time:浮点数 = 0.1,noise_down_time:浮点数 = 0.01,noise_reduction_amount:浮点数 = 1.35,measure_freq:浮点数 = 20.0,measure_duration:可选[浮点数] = 无、measure_smooth_time:浮点数 = 0.4、hp_filter_freq:浮点数 = 50.0、lp_filter_freq:浮点数 = 6000.0、hp_lifter_freq:浮点数 = 150.0、lp_lifter_freq:浮点数 = 2000.0)→手电筒。张量[来源]¶ 语音活动检测器。类似于 SoX 实现。 尝试从语音录音的结尾修剪静音和安静的背景声音。 该算法目前使用简单的倒谱功率测量来检测语音, 所以可能会被其他事物所愚弄,尤其是音乐。
该效果只能从音频的前面进行修剪, 所以为了从后面修剪,还必须使用反向效果。
- 参数
waveform (Tensor) – 维度 (channels, time) 或 (time) 的音频张量形状 (channels, time) 的张量被视为多通道录音 的 Alpha S 的 Alpha S Package,并且生成的输出将被修剪到最早的 任何频道中的语音活动。
sample_rate (int) – 音频信号的采样率。
trigger_level (float, optional) (浮点数,可选) – 用于触发活动检测的测量级别。 这可能需要根据噪音水平、信号水平、 以及输入音频的其他特性。(默认值:7.0)
trigger_time (float, optional) – 时间常数 (以秒为单位) 用于帮助忽略短促的声音。(默认值:0.25)
search_time (float, optional) – 音频量 (以秒为单位) 搜索更安静/更短的音频突发以包含之前的音频 拖动到检测到的触发点。(默认值:1.0)
allowed_gap (float, optional) – 两者之间允许的间隔 (以秒为单位) 更安静/更短的音频爆发,包括 Prior 拖动到检测到的触发点。(默认值:0.25)
pre_trigger_time (float, optional) – 要保留的音频量 (以秒为单位) 在触发点之前以及找到的任何更安静/更短的突发。(默认值:0.0)
boot_time (float, optional) 算法 (内部) – 估计/减少以检测所需音频的开始。 此选项设置初始噪声估计的时间。(默认值:0.35)
noise_up_time (float, optional) – 当噪音水平增加时。(默认值:0.1)
noise_down_time (float, optional) – 当噪音水平降低时。(默认值:0.01)
noise_reduction_amount (float, optional) – 检测算法 (例如 0, 0.5, ...)。(默认:1.35)
measure_freq (float, optional) – 处理/测量。(默认值:20.0)
measure_duration – (浮点,可选)测量持续时间。 (默认值:测量周期的两倍;即重叠。
measure_smooth_time (float, optional) – 光谱测量。(默认值:0.4)
hp_filter_freq (float, optional) – 在检测器算法的输入处。(默认值:50.0)
lp_filter_freq (float, optional) – 在检测器算法的输入处。(默认值:6000.0)
hp_lifter_freq (float, optional) – 在检测器算法中。(默认值:150.0)
lp_lifter_freq (float, optional) – 在检测器算法中。(默认值:2000.0)
- 返回
维度 (..., time) 的音频张量。
- 返回类型
张肌
光谱图¶
-
torchaudio.functional.
spectrogram
(波形:手电筒。张量、pad:int、window:torch 的 intent 和。张量、n_fft:int、hop_length:int、win_length:int、power:可选[float]、标准化:bool、center:bool = True、pad_mode:str = 'reflect'、单面:bool = True、return_complex:bool = False)→ torch。张量[来源]¶ 从原始音频信号创建频谱图或一批频谱图。 频谱图可以是仅幅度的,也可以是复数的。
- 参数
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) - 是否在 stft 之后按幅度进行归一化
center (bool, optional) – 是否在两侧填充,以便 第 \(t\) 帧以时间 \(t \times \text{hop\_length}\) 为中心。 违约:
waveform
True
pad_mode (string, optional) – 控制 is 时使用的填充方法。违约:
center
True
"reflect"
onesided (bool, optional) – 控制是否将一半的结果返回给 避免冗余。违约:
True
return_complex (bool, optional) – 指示是否应使用生成的复值 Tensor 表示 原生复杂 DTYPE,例如 torch.cfloat 和 torch.cdouble,或真实 DTYPE 模拟复数值,并为实部和虚部提供额外的维度。 此参数仅在 时有效。 另请参阅 。
power=None
torch.view_as_real
- 返回
维度 (..., freq, time),freq 是 和 的编号 傅里叶分箱,时间是窗口跃点数 (n_frame)。
n_fft // 2 + 1
n_fft
- 返回类型
张肌
格里芬林¶
-
torchaudio.functional.
griffinlim
(specgram:Torch。Tensor,窗口:torch。张量、n_fft:int、hop_length:int、win_length:int、power:float、n_iter:int、momentum:float、length:Optional[int]、rand_init:bool)→ torch。张量[来源]¶ 使用 Griffin-Lim 变换从线性尺度幅度频谱图计算波形。
- 参数
specgram (Tensor) - 维度为 (..., freq, frames) 的仅幅度的 STFT 频谱图 其中 freq 是 。
n_fft // 2 + 1
window (Tensor) – 应用于/乘以每个帧/窗口的窗口张量
n_fft (int) – FFT 的大小,创建 bin
n_fft // 2 + 1
hop_length (int) – STFT 窗口之间的跃点长度。( 违约:
win_length // 2
)win_length (int) – 窗口大小。(默认:
n_fft
)power (float) - 幅度频谱图的指数, (必须> 0) 例如,1 表示能量,2 表示功率,等等。
n_iter (int) – 阶段恢复过程的迭代次数。
momentum (float) - 快速 Griffin-Lim 的动量参数。 将此设置为 0 将恢复原始的 Griffin-Lim 方法。 接近 1 的值可以加快收敛速度,但高于 1 的值可能不会收敛。
rand_init (bool) – 如果为 True,则随机初始化阶段,否则为零。
- 返回
waveform of (..., time),其中 time 等于参数(如果给定)。
length
- 返回类型
phase_vocoder¶
-
torchaudio.functional.
phase_vocoder
(complex_specgrams:Torch。Tensor、rate:float、phase_advance:torch。Tensor) → torch 的 Tensor 中。张量[来源]¶ 给定一个 STFT 张量,在不修改音高的情况下通过 的因子 。
rate
- 参数
complex_specgrams (Tensor) – 维度为 的实张量或具有复杂 dtype 的维度张量。
(..., freq, num_frame, complex=2)
(..., freq, num_frame)
rate (float) - 加速因子
phase_advance (Tensor) – 每个 bin 中的预期相位提前。的维度 (freq, 1)
- 返回
拉伸频谱图。生成的张量与输入具有相同的 dtype 频谱图,但帧数更改为 。
ceil(num_frame / rate)
- 返回类型
张肌
- 示例 - 具有复杂 dtype 的 Tensor
>>> freq, hop_length = 1025, 512 >>> # (channel, freq, time) >>> complex_specgrams = torch.randn(2, freq, 300, dtype=torch.cfloat) >>> rate = 1.3 # Speed up by 30% >>> phase_advance = torch.linspace( >>> 0, math.pi * hop_length, freq)[..., None] >>> x = phase_vocoder(complex_specgrams, rate, phase_advance) >>> x.shape # with 231 == ceil(300 / 1.3) torch.Size([2, 1025, 231])
- 示例 - 具有实 dtype 的 Tensor 和复数字段的额外维度
>>> freq, hop_length = 1025, 512 >>> # (channel, freq, time, complex=2) >>> complex_specgrams = torch.randn(2, freq, 300, 2) >>> rate = 1.3 # Speed up by 30% >>> phase_advance = torch.linspace( >>> 0, math.pi * hop_length, freq)[..., None] >>> x = phase_vocoder(complex_specgrams, rate, phase_advance) >>> x.shape # with 231 == ceil(300 / 1.3) torch.Size([2, 1025, 231, 2])
compute_deltas¶
-
torchaudio.functional.
compute_deltas
(specgram:Torch。Tensor,win_length:int = 5,模式:str = 'replicate') → torch。张量[来源]¶ 计算张量的 delta 系数,通常是频谱图:
\[d_t = \frac{\sum_{n=1}^{\text{N}} n (c_{t+n} - c_{t-n})}{2 \sum_{n=1}^{\text{N}} n^2} \]其中 \(d_t\) 是时间 \(t\) 的增量,\(c_t\) 是时间 \(t\) 的频谱图系数,\(N\) 是 。
(win_length-1)//2
- 参数
- 返回
维度增量的张量 (..., freq, time)
- 返回类型
张肌
- 例
>>> specgram = torch.randn(1, 40, 1000) >>> delta = compute_deltas(specgram) >>> delta2 = compute_deltas(delta)
detect_pitch_frequency¶
-
torchaudio.functional.
detect_pitch_frequency
(波形:手电筒。张量、sample_rate:int、frame_time:float = 0.01、win_length:int = 30、freq_low:int = 85、freq_high:int = 3400)→ torch。张量[来源]¶ 检测俯仰频率。
它是使用归一化互相关函数和中位数平滑实现的。
- 参数
waveform (Tensor) - 维度为 (..., freq, time) 的音频张量
sample_rate (int) – 波形的采样率 (Hz)
frame_time (float, optional) – 帧的持续时间 (Default: )。
10 ** (-2)
win_length (int, optional) – 中值平滑的窗口长度 (以帧数为单位) (默认值: )。
30
freq_low (int, optional) – 可检测到的最低频率 (Hz) (默认值: )。
85
freq_high (int, optional) – 可检测到的最高频率 (Hz) (默认值: )。
3400
- 返回
维度 (..., frame) 的 freq 张量
- 返回类型
张肌
sliding_window_cmn¶
-
torchaudio.functional.
sliding_window_cmn
(specgram:Torch。张量,cmn_window:int = 600,min_cmn_window:int = 100,中心:bool = False,norm_vars:bool = False)→ torch。张量[来源]¶ 对每个话语应用滑动窗口倒谱均值(和可选的方差)归一化。
- 参数
specgram (Tensor) - 维度 (..., time, freq) 的音频张量
cmn_window ( int , 可选 ) – 用于运行平均 CMN 计算的帧中的窗口 ( int , 默认值 = 600)
min_cmn_window (int,可选) – 解码开始时使用的最小 CMN 窗口 (仅在开始时添加延迟)。 仅在 center == false 时适用,如果 center==true (int, default = 100) 则忽略
center (bool,可选) – 如果为 true,则使用以当前帧为中心的窗口 (在可能的情况下,模数末端效应)。如果为 false,则 window 位于左侧。(布尔值,默认值 = false)
norm_vars (bool, optional) – 如果为 true,则将方差标准化为 1。(布尔值,默认值 = false)
- 返回
张量匹配输入形状 (..., freq, time)
- 返回类型
张肌
compute_kaldi_pitch¶
-
torchaudio.functional.
compute_kaldi_pitch
(波形:手电筒。张量,sample_rate:浮点数,frame_length:浮点数 = 25.0,frame_shift:浮点数 = 10.0,min_f0:浮点数 = 50,max_f0:浮点数 = 400,soft_min_f0:浮点数 = 10.0,penalty_factor:浮点数 = 0.1,lowpass_cutoff:浮点数 = 1000,resample_frequency:浮点数 = 4000,delta_pitch:浮点数 = 0.005,nccf_ballast:浮点数 = 7000,lowpass_filter_width:int = 1, upsample_filter_width:int = 5,max_frames_latency:int = 0,frames_per_chunk:int = 0,simulate_first_pass_online:bool = False,recompute_frame:int = 500,snip_edges:bool = True)→ torch。张量[来源]¶ 根据 4 中描述的方法提取音高。
此函数计算来自 Kaldi 的 compute-kaldi-pitch-feats 的等效值。
- 参数
waveform (Tensor) - 形状为 (..., time) 的输入波形。
sample_rate (float) (浮点) ) – 波形的采样率。
frame_length (float, optional) ( (float, optional) (以毫秒为单位)) – 帧长度(以毫秒为单位)。(默认值:25.0)
frame_shift (float, optional) – 以毫秒为单位的移帧。(默认值:10.0)
min_f0 (float, optional) – 要搜索的最小 F0 (Hz) (默认值:50.0)
max_f0 (float, optional) – 要搜索的最大 F0 (Hz) (默认值:400.0)
soft_min_f0 (float (float, optional) – 以软方式应用的最小 f0 不得超过 min-f0 (默认值:10.0)
penalty_factor (float, optional) ( (float, optional) (浮点数,可选) – FO 更改的成本因子。(默认值:0.1)
lowpass_cutoff (float, optional) – LowPass filter 的截止频率 (Hz) (默认值:1000)
resample_frequency (float, optional) – 我们将信号下采样到的频率。必须大于 low-pass-cutoff 的两倍。 (默认值:4000)
delta_pitch (float, optional) – 我们的算法测量的音高的最小相对变化。(默认值:0.005)
nccf_ballast (float, optional) – 增加此系数可降低静默帧的 NCCF (默认值:7000)
lowpass_filter_width (int, optional) - 确定低通滤波器宽度的整数,more提供更清晰的滤波器。 (默认值:1)
upsample_filter_width (int, optional) – 确定上采样 NCCF 时过滤器宽度的整数。(默认值:5)
max_frames_latency (int, optional) – 我们允许音高跟踪引入的最大延迟帧数 特征处理 (仅在 和 时影响输出) (默认值: 0)
frames_per_chunk > 0
simulate_first_pass_online=True
frames_per_chunk (int, optional) – 用于能量标准化的帧数。(默认值:0)
simulate_first_pass_online (bool,可选) – 如果为 true,则该函数将输出与在线解码器相对应的特征 将在解码的第一轮中看到 - 而不是功能的最终版本, 这是默认设置。(默认值:False) 如果 .
frames_per_chunk > 0
recompute_frame (int, optional) – 仅与在线音高提取的兼容性相关。 非关键参数;我们重新计算一些正向指针的帧, 在修正了我们对信号能量的估计之后。 如果 .(默认值:500)
frames_per_chunk > 0
snip_edges (bool,可选) – 如果此项设置为 false,则不会截取结束边缘附近的不完整帧。 因此,帧数是文件大小除以 Frame-Shift。 这使得不同类型的特征提供相同的帧数。(默认值:True)
- 返回
Pitch 功能。形状:最后一个维度 对应于 pitch 和 NCCF。
(batch, frames 2)
- 返回类型
张肌
引用¶
- 1
布莱恩·麦克菲、科林·拉菲尔、达文·梁、丹尼尔·埃利斯、马特·麦克维卡、埃里克·巴滕贝格和奥里奥尔·涅托。Librosa:Python 中的音频和音乐信号分析。Kathryn Huff 和 James Bergstra 主编,第 14 届 Python 科学会议论文集,第 18 – 24 页。2015. doi:10.25080/Majora-7b98e3ed-003.
- 2
Nathanaël Perraudin、Peter Balazs 和 Peter L. Søndergaard。一种快速的 griffin-lim 算法。2013 年 IEEE 信号处理在音频和声学中的应用研讨会,第 1-4 卷。2013. doi:10.1109/WASPAA.2013.6701851.
- 3
D. Griffin 和 Jae Lim. 来自改进的短时傅里叶变换的信号估计。在 ICASSP '83 中。IEEE 声学、语音和信号处理国际会议,第 8 卷,804-807。1983. doi:10.1109/ICASSP.1983.1172092.
- 4
Pegah Ghahremani、Bagher BabaAli、Daniel Povey、Korbinian Riedhammer、Jan Trmal 和 Sanjeev Khudanpur。针对自动语音识别进行了优化的音高提取算法。2014 年 IEEE 声学、语音和信号处理国际会议 (ICASSP),卷,2494–2498。2014. doi:10.1109/ICASSP.2014.6854049.