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) – 用于计算信号短期功率的滑动窗口大小。