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, optional, default = [0]) –

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

    如果指定,则操作符位于 GPU 或页锁定主机内存中的输出将被预分配,以容纳此大小的样本批次。

  • cutoff_db (float, optional, default = -60.0) – 阈值,单位为 dB,低于此阈值信号被视为静音。

  • preserve (bool, optional, default = False) – 阻止操作符从图中移除,即使其输出未使用。

  • reference_power (float, optional, default = 0.0) –

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

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

  • reset_interval (int, optional, default = 8192) –

    样本数量,超过此数量后,将重新计算移动平均值以避免精度损失。

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

  • window_length (int, optional, default = 2048) – 用于计算信号短期功率的滑动窗口大小。