speechbrain.lobes.models.g2p.dataio 模块

G2P 管道的数据管道元素

Authors
  • 洛伦·卢戈斯奇 2020

  • Mirco Ravanelli 2020

  • Artem Ploujnikov 2021(仅进行了少量重构)

摘要

类:

LazyInit

一个懒初始化的包装器

函数:

add_bos_eos

向提供的序列中添加BOS和EOS标记

beam_search_pipeline

对音素执行波束搜索。

build_token_char_map

构建一个将任意令牌映射到任意选择字符的映射表。

char_map_detokenize

返回一个函数,该函数可以从使用字符映射进行标记化的序列中恢复原始序列

char_range

生成一个连续的字符列表

clean_pipeline

清理传入的文本,移除不在接受列表中的字符并将其转换为大写

enable_eos_bos

使用EOS/BOS序列初始化音素编码器

flip_map

交换字典中的键和值

get_sequence_key

根据命名约定确定用于序列(例如字素/音素)的键。

grapheme_pipeline

编码一个字形序列

lazy_init

一个包装器,用于确保指定的对象只初始化一次(主要用于在调用构造函数时进行训练的标记器)

phoneme_decoder_pipeline

解码一系列音素

phoneme_pipeline

使用提供的编码器对一系列音素进行编码

phonemes_to_label

将一批音素序列(单个张量)转换为空格分隔的音素标签字符串列表(例如["T AY B L", "B UH K"]),并移除任何特殊标记。

remove_special

从序列中移除任何特殊标记。

text_decode

使用分词器解码一个序列。

tokenizer_encode_pipeline

使用预训练分词器的管道元素

word_emb_pipeline

如果适用,应用词嵌入。

参考

speechbrain.lobes.models.g2p.dataio.clean_pipeline(txt, graphemes)[source]

清理传入的文本,移除不在接受的字符列表中的任何字符,并将其转换为大写

Parameters:
  • txt (str) – 要清理的文本

  • graphemes (list) – 一个包含字素的列表

Returns:

item – 一个包装的转换函数

Return type:

DynamicItem

speechbrain.lobes.models.g2p.dataio.grapheme_pipeline(char, grapheme_encoder=None, uppercase=True)[source]

编码一个字形序列

Parameters:
Yields:
  • grapheme_list (list) – 一个原始的字素列表,不包括任何不匹配的标签

  • grapheme_encoded_list (列表) – 一个以整数编码的字素列表

  • grapheme_encoded (torch.Tensor)

speechbrain.lobes.models.g2p.dataio.tokenizer_encode_pipeline(seq, tokenizer, tokens, wordwise=True, word_separator=' ', token_space_index=512, char_map=None)[source]

一个使用预训练分词器的管道元素

Parameters:
  • seq (list) – 要编码的标记列表。

  • tokenizer (speechbrain.tokenizer.SentencePiece) – 一个分词器实例

  • tokens (str) – 可用的令牌

  • wordwise (str) – 是否对整个序列进行分词 或一次一个词。分词可以产生一个标记可能跨越多个词的标记序列

  • word_separator (str) – 用作单词之间分隔符的子字符串。

  • token_space_index (int) – 空格标记的索引

  • char_map (dict) – 一个从字符到标记的映射。这在将音素序列而不是字符序列进行标记化时使用。音素序列通常是一个由一个或两个字符组成的标记列表(例如 [“DH”, “UH”, “ “, “S”, “AW”, “N”, “D”])。字符映射使得可以将这些映射到任意选择的字符。

Yields:
  • token_list (list) – 原始标记的列表

  • encoded_list (list) – 一个标记列表,编码为整数列表

  • encoded (torch.Tensor) – 一个标记列表,编码为张量

speechbrain.lobes.models.g2p.dataio.enable_eos_bos(tokens, encoder, bos_index, eos_index)[source]

使用EOS/BOS序列初始化音素编码器

Parameters:
  • tokens (list) – 一个tokens的列表

  • encoder (speechbrain.dataio.encoder.TextEncoder.) – 一个文本编码器实例。如果没有提供,将会实例化一个新的

  • bos_index (int) – 对应于句子开始标记的位置

  • eos_index (int) – 对应于句子结束的位置

Returns:

encoder – 编码器

Return type:

speechbrain.dataio.encoder.TextEncoder

speechbrain.lobes.models.g2p.dataio.phoneme_pipeline(phn, phoneme_encoder=None)[source]

使用提供的编码器对音素序列进行编码

Parameters:
  • phn (list) – 音素列表

  • phoneme_encoder (speechbrain.datio.encoder.TextEncoder) – 一个文本编码器实例(可选,如果未提供,将创建一个新的实例)

Yields:
  • phn (list) – 原始的音素列表

  • phn_encoded_list (list) – 编码的音素,作为一个列表

  • phn_encoded (torch.Tensor) – 编码的音素,作为张量

speechbrain.lobes.models.g2p.dataio.add_bos_eos(seq=None, encoder=None)[source]

向提供的序列添加BOS和EOS标记

Parameters:
Yields:
  • seq_eos (torch.Tensor) – 序列,已添加EOS标记

  • seq_bos (torch.Tensor) – 序列,已添加BOS标记

speechbrain.lobes.models.g2p.dataio.beam_search_pipeline(char_lens, encoder_out, beam_searcher)[source]

对音素执行波束搜索。此函数旨在用作解码管道中的一个组件。

Parameters:
Returns:

  • hyps (list) – 假设

  • scores (list) – 与每个假设相关的置信度分数

speechbrain.lobes.models.g2p.dataio.phoneme_decoder_pipeline(hyps, phoneme_encoder)[source]

解码一系列音素

Parameters:
  • hyps (list) – 假设,波束搜索的输出

  • phoneme_encoder (speechbrain.datio.encoder.TextEncoder) – 一个文本编码器实例

Returns:

phonemes – 音素序列

Return type:

list

speechbrain.lobes.models.g2p.dataio.char_range(start_char, end_char)[source]

生成一个连续的字符列表

Parameters:
  • start_char (str) – 起始字符

  • end_char (str) – 结束字符

Returns:

char_range – 字符范围

Return type:

str

speechbrain.lobes.models.g2p.dataio.build_token_char_map(tokens)[source]

构建一个将任意标记映射到任意选择字符的映射。 这是为了克服SentencePiece的限制所必需的。

Parameters:

tokens (list) – 用于生成映射的令牌列表

Returns:

token_map – 一个字典,原始标记作为键,新的映射作为值

Return type:

dict

speechbrain.lobes.models.g2p.dataio.flip_map(map_dict)[source]

交换字典中的键和值

Parameters:

map_dict (dict) – 一个字典

Returns:

reverse_map_dict – 一个键和值互换的字典

Return type:

dict

speechbrain.lobes.models.g2p.dataio.text_decode(seq, encoder)[source]

使用分词器解码一个序列。 此函数旨在用于hparam文件中

Parameters:
  • seq (torch.Tensor) – 令牌索引

  • encoder (sb.dataio.encoder.TextEncoder) – 一个文本编码器实例

Returns:

output_seq – 一个包含多个标记列表的列表

Return type:

list

speechbrain.lobes.models.g2p.dataio.char_map_detokenize(char_map, tokenizer, token_space_index=None, wordwise=True)[source]

返回一个函数,该函数可以从使用字符映射进行标记化的序列中恢复原始序列

Parameters:
Returns:

f – 分词器函数

Return type:

可调用的

class speechbrain.lobes.models.g2p.dataio.LazyInit(init)[source]

基础:Module

一个懒初始化的包装器

Parameters:

init (可调用) – 用于初始化底层对象的函数

__call__()[source]

初始化对象实例,如果需要的话,并返回它。

to(device)[source]

将底层对象移动到指定的设备

Parameters:

device (str | torch.device) – 设备

Return type:

自身

speechbrain.lobes.models.g2p.dataio.lazy_init(init)[source]

一个包装器,用于确保指定的对象只初始化一次(主要用于在构造函数调用时进行训练的标记器)

Parameters:

init (callable) – 一个构造函数或创建对象的函数

Returns:

instance – 对象实例

Return type:

object

speechbrain.lobes.models.g2p.dataio.get_sequence_key(key, mode)[source]

根据命名约定确定用于序列(例如字素/音素)的键

Parameters:
  • key (str) – 键(例如“graphemes”,“phonemes”)

  • mode (str) – 模式/后缀 (raw, eos/bos)

Return type:

如果 mode=="raw" 则使用 key,否则使用 f"{key}_{mode}"

speechbrain.lobes.models.g2p.dataio.phonemes_to_label(phns, decoder)[source]

将一批音素序列(单个张量)转换为以空格分隔的音素标签字符串列表, (例如 [“T AY B L”, “B UH K”]),并移除任何特殊标记

Parameters:
  • phns (torch.Tensor) – 一批音素序列

  • decoder (Callable) – 将张量转换为音素标签字符串。

Returns:

result – 与提供的音素对应的字符串列表

Return type:

list

speechbrain.lobes.models.g2p.dataio.remove_special(phn)[source]

从序列中移除任何特殊标记。特殊标记由尖括号分隔。

Parameters:

phn (list) – 音素标签的列表

Returns:

result – 原始列表,没有任何特殊标记

Return type:

list

speechbrain.lobes.models.g2p.dataio.word_emb_pipeline(txt, grapheme_encoded, grapheme_encoded_len, grapheme_encoder=None, word_emb=None, use_word_emb=None)[source]

如果适用,应用词嵌入。此函数旨在作为编码管道的一部分使用。

Parameters:
  • txt (str) – 原始文本

  • grapheme_encoded (torch.Tensor) – 编码的字素

  • grapheme_encoded_len (torch.Tensor) – 编码的字素长度

  • grapheme_encoder (speechbrain.dataio.encoder.TextEncoder) – 用于字素的文本编码器

  • word_emb (callable) – 生成词嵌入的模型

  • use_word_emb (bool) – 一个标志,表示是否应用词嵌入

Returns:

char_word_emb – 词嵌入,扩展到字符维度

Return type:

torch.Tensor