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