speechbrain.tokenizers.discrete_SSL_tokenizer 模块
语义标记分词器。
- 作者
Pooneh Mousavi 2024
摘要
类
此类是 DiscreteSSL 模型的标记器,它对从 DiscreteSSL 模型中提取的语义标记应用后处理。 |
参考
- class speechbrain.tokenizers.discrete_SSL_tokenizer.DiscreteSSLTokenizer(num_clusters)[source]
基类:
object
此类是 DiscreteSSL 模型的标记器,它对从 DiscreteSSL 模型中提取的语义标记应用后处理。它通过将每层的标记 ID 与 layer_num * sunmber_of_cluster 相加,使每层的标记 ID 唯一。如果字段设置为 true,它会独立地对每层应用去重(删除后续重复标记),并用零填充所有项。如果为该层设置了 sentence piece 标记器,它会独立地对每层应用 subwording,并用零填充所有项。如果未应用 subwording,则所有标记 ID 都会加一,以避免 pad_id(0) 和中心点为零的聚类之间的冲突。
- 参数:
num_clusters (List[int]) – 确定 kmeans 模型的聚类数量。每层可能不同。
示例
>>> 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]
将标记 ID 转换为字符,用于训练 sentencepiece 标记器。
- 参数:
tokens (torch.Tensor) – 一个 (Batch x Seq) 大小的音频标记张量
- 返回值:
processed_tokens – 一个 (Batch x Seq) 大小的列表,其中包含每个标记 ID 对应的字符。
- 返回类型:
- encode(input, SSL_layers=[7], deduplicates=[False], bpe_tokenizers=[None])[source]
接收输入的标记化波形,并返回其对应的处理后的标记。
- 参数:
input (torch.Tensor) – 一个 (Batch x Seq x num_SSL_layers) 大小的音频标记张量。
SSL_layers (List[int] (默认值: [7]):) – 确定应该使用 SSL 的哪些层来提取信息。
deduplicates (List[boolean] (默认值: [False]):) – 确定是否对对应层提取的标记应用去重(移除后续重复标记)。
bpe_tokenizers (List[int] (默认值: [None]):) – 如果为对应层训练了 sentencePiece 标记器,则确定是否对该层提取的标记应用 subwording。
- 返回值:
processed_tokens – 应用去重和 subwording(如有必要)后,一个 (Batch x Seq x num_SSL_layers) 大小的音频标记张量。
- 返回类型:
torch.Tensor