mindspore.dataset.audio.Biquad

查看源文件
class mindspore.dataset.audio.Biquad(b0, b1, b2, a0, a1, a2)[源代码]

给音频波形施加双二阶滤波器。

具体的数学公式与参数详见 数字双二阶滤波器

参数:
  • b0 (float) - 当前输入的分子系数,x[n]。

  • b1 (float) - 一个时间间隔前输入的分子系数x[n-1]。

  • b2 (float) - 两个时间间隔前输入的分子系数x[n-2]。

  • a0 (float) - 当前输出y[n]的分母系数,该值不能为0,通常为 1

  • a1 (float) - 当前输出y[n-1]的分母系数。

  • a2 (float) - 当前输出y[n-2]的分母系数。

异常:
  • TypeError - 如果 b0 不是float类型。

  • TypeError - 如果 b1 不是float类型。

  • TypeError - 如果 b2 不是float类型。

  • TypeError - 如果 a0 不是float类型。

  • TypeError - 如果 a1 不是float类型。

  • TypeError - 如果 a2 不是float类型。

  • ValueError - 如果 a0 为0。

支持平台:

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, 16])  # 5 samples
>>> numpy_slices_dataset = ds.NumpySlicesDataset(data=waveform, column_names=["audio"])
>>> transforms = [audio.Biquad(0.01, 0.02, 0.13, 1, 0.12, 0.3)]
>>> 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
(16,) float64
>>>
>>> # Use the transform in eager mode
>>> waveform = np.random.random([16])  # 1 sample
>>> output = audio.Biquad(0.01, 0.02, 0.13, 1, 0.12, 0.3)(waveform)
>>> print(output.shape, output.dtype)
(16,) float64
教程样例: