speechbrain.lobes.models.BESTRQ 模块
支持BEST RQ训练的组件较少,如原始论文所述:https://arxiv.org/pdf/2202.01855。
作者 * Ryan Whetten 2024 * Titouan Parcollet 2025
摘要
函数:
这将从样本列表中创建一个批次,并创建将用于屏蔽BEST-RQ输入的掩码。 |
|
此函数生成BEST-RQ的掩码。 |
参考
- speechbrain.lobes.models.BESTRQ.compute_mask(shape, sample_lens, mask_prob, mask_length)[source]
此函数生成BEST-RQ的掩码。
它为整个批次生成一个独特的掩码,并基于较短的语音。这一点很重要,因为如果批次中包含一个短句子和许多长句子,只有少数帧会被掩码,这可能会改变训练。
特别是,从传递给 sample_lens 的较小长度中,我们将生成 N 个掩码,其中 N = mask_prob * smallest_len。因此,mask_prob 是帧开始掩码的概率,而不是被掩码的概率。
如果一个句子的长度是100个时间步长,mask_prob为0.15,mask大小为4,那么100*0.15*4=60%的帧将被掩盖。
- Parameters:
- Return type:
计算出的掩码
Example
>>> compute_mask((2,50,60), [40, 50], 0.15, 2).shape torch.Size([12])
- speechbrain.lobes.models.BESTRQ.brq_mask_collate_fn(samples_lst, get_out_len_fn, mask_prob, mask_length, n_mels)[source]
这将从样本列表中创建一个批次,并创建将用于屏蔽BEST-RQ输入的掩码。 为了创建掩码,我们需要知道潜在提取器之后的输出形状,因此需要参数
get_out_len_fn。 也可以为每个样本创建掩码(在加载音频文件时),然后将它们整理在一起,但在那时并不知道批次中最短样本的长度(这决定了掩码帧的数量),所以这种方式更好。- Parameters:
- Returns:
wavs_padded (torch.Tensor, shape (B, T)) – 带有右侧填充的音频数组。
wav_lens (torch.Tensor, shape (B,)) – 对于每个样本,数组中未填充的百分比。
mask (torch.Tensor, shape (T)) – 包含输入张量中需要屏蔽的索引的掩码。