mindspore.dataset.audio.LFCC
- class mindspore.dataset.audio.LFCC(sample_rate=16000, n_filter=128, n_lfcc=40, f_min=0.0, f_max=None, dct_type=2, norm=NormMode.ORTHO, log_lf=False, speckwargs=None)[源代码]
- 计算音频信号的线性频率倒谱系数。 - 说明 - 待处理音频shape需为<…, time>。 - 参数:
- sample_rate (int, 可选) - 音频信号的采样率。默认值: - 16000。
- n_filter (int, 可选) - 要应用的线性滤波器数量。默认值: - 128。
- n_lfcc (int, 可选) - 要保留的线性频率倒谱系数数。默认值: - 40。
- f_min (float, 可选) - 最小频率。默认值: - 0.0。
- f_max (float, 可选) - 最大频率。默认值: - None,会被设置为 sample_rate // 2 。
- dct_type (int, 可选) - 要使用的离散余弦变换的类型。该值只能为 - 2。默认值:- 2。
- norm ( - NormMode, 可选) - 要使用的标准化方法。默认值:- NormMode.ORTHO。
- log_lf (bool, 可选) - 是否使用对数-线性频谱图而不是以分贝为刻度的频谱图。默认值: - False。
- speckwargs (dict, 可选) - - Spectrogram接口的参数。默认值:- None,会被设置为包含以下字段的字典- 'n_fft': 400 
- 'win_length': n_fft 
- 'hop_length': win_length // 2 
- 'pad': 0 
- 'window': WindowType.HANN 
- 'power': 2.0 
- 'normalized': False 
- 'center': True 
- 'pad_mode': BorderType.REFLECT 
- 'onesided': True 
 
 
- 异常:
- TypeError - 如果 sample_rate 的类型不为int。 
- TypeError - 如果 n_filter 的类型不为int。 
- TypeError - 如果 n_lfcc 的类型不为int。 
- TypeError - 如果 norm 的类型不为 - mindspore.dataset.audio.NormMode。
- TypeError - 如果 log_lf 的类型不为bool。 
- TypeError - 如果 speckwargs 的类型不为dict。 
- ValueError - 如果 sample_rate 为0。 
- ValueError - 如果 n_lfcc 小于0。 
- ValueError - 如果 f_min 大于 f_max 。 
- ValueError - 当 f_max 为None时,如果 f_min 大于 sample_rate // 2 。 
- ValueError - 如果 dct_type 不为 - 2。
 
- 支持平台:
- CPU
 - 样例: - >>> import numpy as np >>> import mindspore.dataset as ds >>> import mindspore.dataset.audio as audio >>> >>> # Use the transform in dataset pipeline mode >>> waveform = np.random.random([5, 10, 300]) >>> numpy_slices_dataset = ds.NumpySlicesDataset(data=waveform, column_names=["audio"]) >>> transforms = [audio.LFCC()] >>> numpy_slices_dataset = numpy_slices_dataset.map(operations=transforms, input_columns=["audio"]) >>> for item in numpy_slices_dataset.create_dict_iterator(num_epochs=1, output_numpy=True): ... print(item["audio"].shape, item["audio"].dtype) ... break (10, 40, 2) float32 >>> >>> # Use the transform in eager mode >>> waveform = np.random.random([10, 300]) # 1 sample >>> output = audio.LFCC()(waveform) >>> print(output.shape, output.dtype) (10, 40, 2) float32 - 教程样例: