mindspore.dataset.audio.DetectPitchFrequency
- class mindspore.dataset.audio.DetectPitchFrequency(sample_rate, frame_time=0.01, win_length=30, freq_low=85, freq_high=3400)[源代码]
检测音调频率。 基于归一化互相关函数和中位平滑来实现。
- 参数:
sample_rate (int) - 波形的采样频率,如44100 (单位:Hz),值不能为0。
frame_time (float, 可选) - 帧的持续时间,值必须大于零。默认值:
0.01
。win_length (int, 可选) - 中位平滑的窗口长度(以帧数为单位),该值必须大于零。默认值:
30
。freq_low (int, 可选) - 可检测的最低频率(Hz),该值必须大于零。默认值:
85
。freq_high (int, 可选) - 可检测的最高频率(Hz),该值必须大于零。默认值:
3400
。
- 异常:
TypeError - 如果 sample_rate 不是int类型。
ValueError - 如果 sample_rate 为0。
TypeError - 如果 frame_time 不是float类型。
ValueError - 如果 frame_time 不为正数。
TypeError - 如果 win_length 不是int类型。
ValueError - 如果 win_length 不为正数。
TypeError - 如果 freq_low 不是int类型。
ValueError - 如果 freq_low 不为正数。
TypeError - 如果 freq_high 不是int类型。
ValueError - 如果 freq_high 不为正数。
- 支持平台:
CPU
样例:
>>> import numpy as np >>> import mindspore.dataset as ds >>> import mindspore.dataset.audio as audio >>> >>> waveform = np.array([[0.716064e-03, 5.347656e-03, 6.246826e-03, 2.089477e-02, 7.138305e-02], ... [4.156616e-02, 1.394653e-02, 3.550292e-02, 0.614379e-02, 3.840209e-02]]) >>> numpy_slices_dataset = ds.NumpySlicesDataset(data=waveform, column_names=["audio"]) >>> transforms = [audio.DetectPitchFrequency(30, 0.1, 3, 5, 25)] >>> numpy_slices_dataset = numpy_slices_dataset.map(operations=transforms, input_columns=["audio"])
- 教程样例: