LogMelSpectrogram¶
- class paddle.audio.features. LogMelSpectrogram ( sr=22050, n_fft=2048, hop_length=512, win_length=None, window='hann', power=2.0, center=True, pad_mode='reflect', n_mels=64, f_min=50.0, f_max=None, htk=False, norm='slaney', ref_value=1.0, amin=1e-10, top_db=None, dtype='float32' ) [源代码] ¶
计算给定信号的 log-mel 谱。
参数¶
sr (int,可选) - 采样率,默认 22050。
n_fft (int,可选) - 离散傅里叶变换中频率窗大小,默认 512。
hop_length (int,可选) - 帧移,默认 512。
win_length (int,可选) - 短时 FFT 的窗长,默认为 None。
window (str,可选) - 窗函数名,默认'hann'。
power (float,可选) - 幅度谱的指数,默认是2.0。
center (bool,可选) - 对输入信号填充,如果 True,那么 t 以 t*hop_length 为中心,如果为 False,则 t 以 t*hop_length 开始,默认是 True。
pad_mode (str,可选) - 如果 center 是 True,选择填充的方式,默认值是'reflect'。
n_mels (int,可选) - mel bins 的数目,默认是64。
f_min (float,可选) - 最小频率(hz),默认 50.0。
f_max (float,可选) - 最大频率(hz),默认为 None。
htk (bool,可选) - 在计算 fbank 矩阵时是否用在 HTK 公式缩放,默认是 False。
norm (Union[str,float],可选) - 计算 fbank 矩阵时正则化的种类,默认是'slaney',你也可以 norm=0.5,使用 p-norm 正则化。
ref_value (float,可选) - 参照值,如果小于 1.0,信号的 db 会被提升,相反 db 会下降,默认值为 1.0。
amin (float,可选) - 输入的幅值的最小值,默认是1e-10。
top_db (float,可选) - log-mel 谱的最大值(db),默认是None。
dtype (str,可选) - 输入和窗的数据类型,默认是'float32'。
返回¶
计算``LogMelSpectrogram``的可调用对象。
代码示例¶
import paddle
from paddle.audio.features import LogMelSpectrogram
sample_rate = 16000
wav_duration = 0.5
num_channels = 1
num_frames = sample_rate * wav_duration
wav_data = paddle.linspace(-1.0, 1.0, num_frames) * 0.1
waveform = wav_data.tile([num_channels, 1])
feature_extractor = LogMelSpectrogram(sr=sample_rate, n_fft=512, window = 'hann', power = 1.0)
feats = feature_extractor(waveform)