mindspore.dataset.audio.MFCC
- class mindspore.dataset.audio.MFCC(sample_rate=16000, n_mfcc=40, dct_type=2, norm=NormMode.ORTHO, log_mels=False, melkwargs=None)[源代码]
计算音频信号的梅尔频率倒谱系数。
- 参数:
sample_rate (int, 可选) - 采样频率(单位:Hz),不能小于零。默认值:
16000
。n_mfcc (int, 可选) - 要保留的梅尔频率倒谱系数数,不能小于零。默认值:
40
。dct_type (int, 可选) - 要使用的离散余弦变换类型(离散余弦变换),只能为
2
。默认值:2
。norm (
NormMode
, 可选) - 要使用的标准类型。默认值:NormMode.ORTHO
。log_mels (bool, 可选) - 是否使用对数-梅尔频谱图而不是以分贝为刻度的频谱图。默认值:
False
。melkwargs (dict, 可选) -
MelSpectrogram
接口的参数。默认值:None
,会被设置为包含以下字段的字典‘n_fft’: 400
‘win_length’: n_fft
‘hop_length’: win_length // 2
‘f_min’: 0.0
‘f_max’: sample_rate // 2
‘pad’: 0
‘window’: WindowType.HANN
‘power’: 2.0
‘normalized’: False
‘center’: True
‘pad_mode’: BorderType.REFLECT
‘onesided’: True
‘norm’: NormType.NONE
‘mel_scale’: MelType.HTK
- 异常:
TypeError - 如果 sample_rate 的类型不为int。
TypeError - 如果 log_mels 的类型不为bool。
TypeError - 如果 norm 的类型不为
mindspore.dataset.audio.NormMode
。TypeError - 如果 n_mfcc 的类型不为int。
TypeError - 如果 melkwargs 的类型不为dict。
ValueError - 如果 sample_rate 为负数。
ValueError - 如果 n_mfcc 为负数。
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, 500]) # 5 samples >>> numpy_slices_dataset = ds.NumpySlicesDataset(data=waveform, column_names=["audio"]) >>> transforms = [audio.MFCC(4000, 128, 2)] >>> 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 (128, 3) float32 >>> >>> # Use the transform in eager mode >>> waveform = np.random.random([500]) # 1 sample >>> output = audio.MFCC(4000, 128, 2)(waveform) >>> print(output.shape, output.dtype) (128, 3) float32
- 教程样例: