mindspore.dataset.audio.Vad
- class mindspore.dataset.audio.Vad(sample_rate, trigger_level=7.0, trigger_time=0.25, search_time=1.0, allowed_gap=0.25, pre_trigger_time=0.0, boot_time=0.35, noise_up_time=0.1, noise_down_time=0.01, noise_reduction_amount=1.35, measure_freq=20.0, measure_duration=None, measure_smooth_time=0.4, hp_filter_freq=50.0, lp_filter_freq=6000.0, hp_lifter_freq=150.0, lp_lifter_freq=2000.0)[源代码]
- 语音活动检测器。 - 试图修剪去除语音记录末尾沉默或安静的背景声音。 - 接口实现方式类似于 SoX库 。 - 参数:
- sample_rate (int) - 音频信号的采样率。 
- trigger_level (float, 可选) - 触发音频活动检测的测量级别。默认值: - 7.0。
- trigger_time (float, 可选) - 时间常数(以秒为单位),用于帮助忽略短促的爆破音。默认值: - 0.25。
- search_time (float, 可选) - 在检测到的触发点之前,搜索更安静/更短促爆破音的时长(以秒为单位)。默认值: - 1.0。
- allowed_gap (float, 可选) - 在检测到的触发点之前,允许的更安静/更短促爆破音之间的时间间隔(以秒为单位)。默认值: - 0.25。
- pre_trigger_time (float, 可选) - 在触发点和任意找到的更安静/更短促的爆破音之前,要保留的音频时长(以秒为单位)。默认值: - 0.0。
- boot_time (float, 可选) - 初始噪声的评估时间。默认值: - 0.35。
- noise_up_time (float, 可选) - 用于自适应噪声评估的时间常量,指定噪声等级上升时的时间。默认值: - 0.1。
- noise_down_time (float, 可选) - 用于自适应噪声评估的时间常量,指定噪声等级下降时的时间。默认值: - 0.01。
- noise_reduction_amount (float, 可选) - 检测算法中使用的降噪量。默认值: - 1.35。
- measure_freq (float, 可选) - 算法处理/检测的频率。默认值: - 20.0。
- measure_duration (float, 可选) - 检测持续的时间。默认值: - None,将使用两倍测量周期的时长。
- measure_smooth_time (float, 可选) - 用于平滑频谱测量的时间常数。默认值: - 0.4。
- hp_filter_freq (float, 可选) - 施加到检测器算法输入上的高通滤波器的截止频率。默认值: - 50.0。
- lp_filter_freq (float, 可选) - 施加到检测器算法输入上的低通滤波器的截止频率。默认值: - 6000.0。
- hp_lifter_freq (float, 可选) - 施加到检测器算法输入上的高通提升器的截止频率。默认值: - 150.0。
- lp_lifter_freq (float, 可选) - 施加到检测器算法输入上的低通提升器的截止频率。默认值: - 2000.0。
 
- 异常:
- TypeError - 当 sample_rate 的类型不为int。 
- ValueError - 当 sample_rate 不为正数。 
- TypeError - 当 trigger_level 的类型不为float。 
- TypeError - 当 trigger_time 的类型不为float。 
- ValueError - 当 trigger_time 为负数。 
- TypeError - 当 search_time 的类型不为float。 
- ValueError - 当 search_time 为负数。 
- TypeError - 当 allowed_gap 的类型不为float。 
- ValueError - 当 allowed_gap 为负数。 
- TypeError - 当 pre_trigger_time 的类型不为float。 
- ValueError - 当 pre_trigger_time 为负数。 
- TypeError - 当 boot_time 的类型不为float。 
- ValueError - 当 boot_time 为负数。 
- TypeError - 当 noise_up_time 的类型不为float。 
- ValueError - 当 noise_up_time 为负数。 
- TypeError - 当 noise_down_time 的类型不为float。 
- ValueError - 当 noise_down_time 为负数。 
- ValueError - 当 noise_up_time 小于 noise_down_time 。 
- TypeError - 当 noise_reduction_amount 的类型不为float。 
- ValueError - 当 noise_reduction_amount 为负数。 
- TypeError - 当 measure_freq 的类型不为float。 
- ValueError - 当 measure_freq 不为正数。 
- TypeError - 当 measure_duration 的类型不为float。 
- ValueError - 当 measure_duration 为负数。 
- TypeError - 当 measure_smooth_time 的类型不为float。 
- ValueError - 当 measure_smooth_time 为负数。 
- TypeError - 当 hp_filter_freq 的类型不为float。 
- ValueError - 当 hp_filter_freq 不为正数。 
- TypeError - 当 lp_filter_freq 的类型不为float。 
- ValueError - 当 lp_filter_freq 不为正数。 
- TypeError - 当 hp_lifter_freq 的类型不为float。 
- ValueError - 当 hp_lifter_freq 不为正数。 
- TypeError - 当 lp_lifter_freq 的类型不为float。 
- ValueError - 当 lp_lifter_freq 不为正数。 
- RuntimeError - 当输入音频的shape不为<…, time>。 
 
- 支持平台:
- 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, 1000]) # 5 samples >>> numpy_slices_dataset = ds.NumpySlicesDataset(data=waveform, column_names=["audio"]) >>> transforms = [audio.Vad(sample_rate=600)] >>> 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 (660,) float64 >>> >>> # Use the transform in eager mode >>> waveform = np.random.random([1000]) # 1 sample >>> output = audio.Vad(sample_rate=600)(waveform) >>> print(output.shape, output.dtype) (660,) float64 - 教程样例: