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
>>>
>>> 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"])