nvidia.dali.fn.nonsilent_region#

nvidia.dali.fn.nonsilent_region(__input, /, *, bytes_per_sample_hint=[0], cutoff_db=-60.0, preserve=False, reference_power=0.0, reset_interval=8192, window_length=2048, device=None, name=None)#

在音频缓冲区中执行前导和尾随静音检测。

该操作器通过比较为信号的 window_length 计算的短期功率与静音截止阈值,返回非静音区域的起始位置和长度。当 short_term_power_db 小于 cutoff_db 时,信号被认为是静音的。 其中

short_term_power_db = 10 * log10( short_term_power / reference_power )

除非另有说明,否则 reference_power 是信号的最大功率。

输入和输出

  • 输入 0 - 1D 音频缓冲区。

  • 输出 0 - 非静音区域中第一个样本的索引。

  • 输出 1 - 非静音区域的长度。

注意

如果 Outputs[1] == 0,则 Outputs[0] 中的值未定义。

警告

目前,此操作器的“gpu”后端是根据“cpu”实现来实现的。 这会导致输入从设备到主机的复制,以及输出从主机到设备的复制。 虽然使用此操作器的“gpu”实现本身不会增加任何性能优势,但为了使 pipeline 中前面的操作能够移动到 GPU,使用它可能是有意义的。

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:

__input (TensorList) – 操作器的输入。

关键字参数:
  • bytes_per_sample_hint (int 或 list of int, 可选, 默认值 = [0]) –

    输出大小提示,以每样本字节为单位。

    如果指定,则将预先分配驻留在 GPU 或分页锁定主机内存中的操作器的输出,以适应此大小的样本批次。

  • cutoff_db (float, 可选, 默认值 = -60.0) – 阈值,以 dB 为单位,低于该阈值信号被视为静音。

  • preserve (bool, 可选, 默认值 = False) – 即使操作器的输出未使用,也阻止从图中删除该操作器。

  • reference_power (float, 可选, 默认值 = 0.0) –

    用于将信号转换为 dB 的参考功率。

    如果未提供值,则信号的最大功率将用作参考。

  • reset_interval (int, 可选, 默认值 = 8192) –

    重新计算移动平均值以避免精度损失的样本数。

    如果 reset_interval == -1,或者输入类型允许精确计算,则平均值将不会重置。 默认值可用于大多数用例。

  • window_length (int, 可选, 默认值 = 2048) – 用于计算信号短期功率的滑动窗口的大小。