speechbrain.tokenizers.discrete_SSL_tokenizer 模块

用于语义标记的分词器。

Author
  • Pooneh Mousavi 2024

摘要

类:

DiscreteSSLTokenizer

该类是用于DiscreteSSL模型的标记器,对从DiscreteSSL模型中提取的语义标记进行后处理。

参考

class speechbrain.tokenizers.discrete_SSL_tokenizer.DiscreteSSLTokenizer(num_clusters)[source]

基础类:object

该类是用于DiscreteSSL模型的标记器,该模型对从DiscreteSSL模型中提取的语义标记进行后处理。 它通过将每层的标记ID加上层数乘以聚类数,使每层的标记ID唯一。 如果该层的字段设置为true,则独立地对每层进行去重,并用零填充所有项目。 如果为该层设置了句子片段标记器,则独立地对每层进行子词处理,并用零填充所有项目。 如果未应用子词处理,则所有标记ID增加1,以避免pad_id(0)与质心为零的聚类之间的冲突。

Parameters:

num_clusters (List[int]) – 确定kmeans模型的聚类数量。每一层的数量可能不同。

Example

>>> import torch
>>> inputs = torch.randint(0,1000,(3, 6, 2))
>>> ssl_layer_num = [7,23]
>>> deduplicate =[False, True]
>>> bpe_tokenizers=[None, None]
>>> num_clusters = [1000,2000]
>>> tokenizer = DiscreteSSLTokenizer(num_clusters=num_clusters)
>>> tokens= tokenizer.encode(inputs,SSL_layers=ssl_layer_num, deduplicates=deduplicate, bpe_tokenizers=bpe_tokenizers)
>>> print(tokens.shape)
torch.Size([3, 6, 2])
textify(tokens)[source]

将token ID转换为字符,用于训练sentencepiece分词器。

Parameters:

tokens (torch.Tensor) – 一个 (Batch x Seq) 的音频令牌张量

Returns:

processed_tokens – 每个令牌ID对应的字符的(批量 x 序列)列表。

Return type:

list

encode(input, SSL_layers=[7], deduplicates=[False], bpe_tokenizers=[None])[source]

接收一个输入的分词波形并返回其相应的处理后的分词。

Parameters:
  • 输入 (torch.Tensor) – 一个 (Batch x Seq x num_SSL_layers) 的音频令牌张量。

  • SSL_layers (List[int] (default: [7]):) – 确定应使用SSL的哪些层来提取信息。

  • deduplicates (List[boolean] (default: [False]):) – 确定是否对提取的相应层的标记应用去重(移除重复的后续标记)。

  • bpe_tokenizers (List[int] (默认: [None]):) – 确定是否对从相应层提取的标记应用子词处理,如果该层训练了sentencePiece分词器。

Returns:

processed_tokens – 一个 (Batch x Seq x num_SSL_layers) 的张量,表示在必要时应用去重和子词处理后的音频标记。

Return type:

torch.Tensor