paddlespeech.t2s.models.transformer_tts.transformer_tts 模块
Fastspeech2 相关模块用于 paddle
- class paddlespeech.t2s.models.transformer_tts.transformer_tts.TransformerTTS(idim: int, odim: int, embed_dim: int = 512, eprenet_conv_layers: int = 3, eprenet_conv_chans: int = 256, eprenet_conv_filts: int = 5, dprenet_layers: int = 2, dprenet_units: int = 256, elayers: int = 6, eunits: int = 1024, adim: int = 512, aheads: int = 4, dlayers: int = 6, dunits: int = 1024, postnet_layers: int = 5, postnet_chans: int = 256, postnet_filts: int = 5, positionwise_layer_type: str = 'conv1d', positionwise_conv_kernel_size: int = 1, use_scaled_pos_enc: bool = True, use_batch_norm: bool = True, encoder_normalize_before: bool = True, decoder_normalize_before: bool = True, encoder_concat_after: bool = False, decoder_concat_after: bool = False, reduction_factor: int = 1, spk_embed_dim: Optional[int] = None, spk_embed_integration_type: str = 'add', use_gst: bool = False, gst_tokens: int = 10, gst_heads: int = 4, gst_conv_layers: int = 6, gst_conv_chans_list: Sequence[int] = (32, 32, 64, 64, 128, 128), gst_conv_kernel_size: int = 3, gst_conv_stride: int = 2, gst_gru_layers: int = 1, gst_gru_units: int = 128, transformer_enc_dropout_rate: float = 0.1, transformer_enc_positional_dropout_rate: float = 0.1, transformer_enc_attn_dropout_rate: float = 0.1, transformer_dec_dropout_rate: float = 0.1, transformer_dec_positional_dropout_rate: float = 0.1, transformer_dec_attn_dropout_rate: float = 0.1, transformer_enc_dec_attn_dropout_rate: float = 0.1, eprenet_dropout_rate: float = 0.5, dprenet_dropout_rate: float = 0.5, postnet_dropout_rate: float = 0.5, init_type: str = 'xavier_uniform', init_enc_alpha: float = 1.0, init_dec_alpha: float = 1.0, use_guided_attn_loss: bool = True, num_heads_applied_guided_attn: int = 2, num_layers_applied_guided_attn: int = 2)[来源]
基础:
LayerTTS-Transformer 模块。
这是一个文本到语音转换器Transformer的模块,描述在神经语音合成与变换网络中,它将令牌序列转换为梅尔滤波器组的序列。
- Args:
- idim (int):
输入的维度。
- odim (int):
输出的维度。
- embed_dim (int, optional):
字符嵌入的维度。
- eprenet_conv_layers (int, optional):
编码器预处理卷积层的数量。
- eprenet_conv_chans (int, optional):
编码器预处理卷积通道的数量。
- eprenet_conv_filts (int, optional):
过滤编码器预处理卷积的大小。
- dprenet_layers (int, optional):
解码器预处理层的数量。
- dprenet_units (int, optional):
解码器预处理网络隐藏单元的数量。
- elayers (int, optional):
编码器层的数量。
- eunits (int, optional):
编码器隐藏单元的数量。
- adim (int, optional):
注意力转换维度的数量。
- aheads (int, optional):
多头注意力的头数。
- dlayers (int, optional):
解码器层数。
- dunits (int, optional):
解码器隐藏单元的数量。
- postnet_layers (int, optional):
后端网络层的数量。
- postnet_chans (int, optional):
邮政网络通道数量。
- postnet_filts (int, optional):
后处理网络的过滤器大小。
- use_scaled_pos_enc (pool, optional):
是否使用可训练的缩放位置编码。
- use_batch_norm (bool, optional):
是否在编码器的预处理网络中使用批量归一化。
- encoder_normalize_before (bool, optional):
在编码器块之前是否进行层归一化。
- decoder_normalize_before (bool, optional):
是否在解码器块之前执行层归一化。
- encoder_concat_after (bool, optional):
是否在编码器中连接注意力层的输入和输出。
- decoder_concat_after (bool, optional):
是否在解码器中连接注意力层的输入和输出。
- positionwise_layer_type (str, optional):
职位相关的操作类型。
- positionwise_conv_kernel_size (int, optional):
位置卷积1d中的内核大小。
- reduction_factor (int, optional):
减小因子。
- spk_embed_dim (int, optional):
说话者嵌入维度的数量。
- spk_embed_integration_type (str, optional):
如何整合说话者嵌入。
- use_gst (str, optional):
是否使用全局样式令牌。
- gst_tokens (int, optional):
GST嵌入的数量。
- gst_heads (int, optional):
GST多头注意力中的头数。
- gst_conv_layers (int, optional):
GST中的卷积层数量。
- gst_conv_chans_list (Sequence[int], optional):
GST中卷积层的通道数量列表。
- gst_conv_kernel_size (int, optional):
GST中卷积层的内核大小。
- gst_conv_stride (int, optional):
GST中卷积层的步幅大小。
- gst_gru_layers (int, optional):
GST中的GRU层数。
- gst_gru_units (int, optional):
GST中的GRU单元数量。
- transformer_lr (float, optional):
学习率的初始值。
- transformer_warmup_steps (int, optional):
优化器预热步骤。
- transformer_enc_dropout_rate (float, optional):
编码器中的丢失率,不包括注意力和位置编码。
- transformer_enc_positional_dropout_rate (float, optional):
编码器位置编码后的 dropout 率。
- transformer_enc_attn_dropout_rate (float, optional):
编码器自注意力模块中的丢弃率。
- transformer_dec_dropout_rate (float, optional):
解码器中的.dropout 率,不包括注意力 & 位置信息编码。
- transformer_dec_positional_dropout_rate (float, optional):
解码器位置编码后的丢弃率。
- transformer_dec_attn_dropout_rate (float, optional):
解码器自注意力模块中的丢弃率。
- transformer_enc_dec_attn_dropout_rate (float, optional):
编码器-解码器注意力模块中的丢弃率。
- init_type (str, optional):
如何初始化变压器参数。
- init_enc_alpha (float, optional):
编码器中缩放位置编码的alpha初始值。
- init_dec_alpha (float, optional):
解码器的缩放位置编码中 alpha 的初始值。
- eprenet_dropout_rate (float, optional):
编码器前网络中的.dropout 率。
- dprenet_dropout_rate (float, optional):
解码器预训练中的丢弃率。
- postnet_dropout_rate (float, optional):
后处理网络中的丢失率。
- use_masking (bool, optional):
在损失计算中是否对填充部分应用遮罩。
- use_weighted_masking (bool, optional):
是否在损失计算中应用加权掩蔽。
- bce_pos_weight (float, optional):
在 bce 计算中正样本权重(仅在 use_masking=true 时使用)。
- loss_type (str, optional):
如何计算损失。
- use_guided_attn_loss (bool, optional):
是否使用引导注意力损失。
- num_heads_applied_guided_attn (int, optional):
每层中应用引导注意力损失的神经元数量。
- num_layers_applied_guided_attn (int, optional):
应用引导关注损失的层数。
方法
__call__(*inputs, **kwargs)将self作为一个函数调用。
add_parameter(name, parameter)添加一个参数实例。
add_sublayer(name, sublayer)添加一个子层实例。
apply(fn)递归地将
fn应用到每个子层(由.sublayers()返回)以及自身。buffers([include_sublayers])返回当前层及其子层中的所有缓冲区的列表。
children()返回一个迭代器,遍历直接子层。
clear_gradients()清除此层所有参数的梯度。
create_parameter(shape[, attr, dtype, ...])为该层创建参数。
create_tensor([name, persistable, dtype])为该层创建张量。
create_variable([name, persistable, dtype])为该层创建张量。
eval()将该层及其所有子层设置为评估模式。
extra_repr()该层的额外表示,您可以自定义实现自己的层。
forward(text, text_lengths, speech, ...[, ...])计算前向传播。
full_name()此层的完整名称,由 name_scope + "/" + MyLayer.__class__.__name__ 组成
inference(text[, speech, spk_emb, ...])根据字符序列生成特征序列。
load_dict(state_dict[, use_structured_name])从 state_dict 设置参数和可持久化缓存。
named_buffers([prefix, include_sublayers])返回一个迭代器,遍历层中的所有缓冲区,生成名称和张量的元组。
named_children()返回一个直接子层的迭代器,同时提供层的名称和层本身。
named_parameters([prefix, include_sublayers])返回一个迭代器,遍历层中的所有参数,生成名称和参数的元组。
named_sublayers([prefix, include_self, ...])返回Layer中所有子层的迭代器,生成名称和子层的元组。
parameters([include_sublayers])返回当前层及其子层的所有参数的列表。
register_buffer(name, tensor[, persistable])将一个张量注册为该层的缓冲区。
register_forward_post_hook(hook)为层注册一个前向后钩子。
register_forward_pre_hook(hook)为层注册一个前向预钩子。
set_dict(state_dict[, use_structured_name])从 state_dict 设置参数和可持久化的缓冲区。
set_state_dict(state_dict[, use_structured_name])从state_dict设置参数和持久化缓冲区。
state_dict([destination, include_sublayers, ...])获取当前层及其子层的所有参数和可持久化缓冲区。
sublayers([include_self])返回子层的列表。
to([device, dtype, blocking])通过给定的设备、数据类型和阻塞方式转换层的参数和缓冲区。
to_static_state_dict([destination, ...])获取当前层及其子层的所有参数和缓冲区。
train()将此层及其所有子层设置为训练模式。
向后
注册状态字典钩子
- forward(text: Tensor, text_lengths: Tensor, speech: Tensor, speech_lengths: Tensor, spk_emb: Optional[Tensor] = None) Tuple[Tensor, Dict[str, Tensor], Tensor][来源]
计算前向传播。
- Args:
text(Tensor(int64)): 填充的字符ID批次 (B, Tmax)。
text_lengths(Tensor(int64)): 每个输入批次的长度批次 (B,)。
speech(Tensor): 填充的目标特征批次 (B, Lmax, odim)。
speech_lengths(Tensor(int64)): 每个目标的长度批次 (B,)。
spk_emb(Tensor, optional): 说话人嵌入的批次 (B, spk_embed_dim)。- Returns:
张量:损失标量值。
字典:待监控的统计信息。
- inference(text: Tensor, speech: Optional[Tensor] = None, spk_emb: Optional[Tensor] = None, threshold: float = 0.5, minlenratio: float = 0.0, maxlenratio: float = 10.0, use_teacher_forcing: bool = False) Tuple[Tensor, Tensor, Tensor][来源]
根据字符序列生成特征序列。
- Args:
text(Tensor(int64)): 输入字符序列 (T,). speech(Tensor, optional): 提取风格的特征序列 (N, idim). spk_emb(Tensor, optional): 说话人嵌入向量 (spk_embed_dim,). threshold(float, optional): 推理中的阈值. minlenratio(float, optional): 推理中的最小长度比例. maxlenratio(float, optional): 推理中的最大长度比例. use_teacher_forcing(bool, optional): 是否使用教师强制.
- Returns:
张量:特征的输出序列 (L, odim)。 张量:停止概率的输出序列 (L,)。 张量:编码器-解码器(源)注意力权重 (#layers, #heads, L, T)。
- class paddlespeech.t2s.models.transformer_tts.transformer_tts.TransformerTTSInference(normalizer, model)[来源]
基础:
Layer方法
__call__(*inputs, **kwargs)将self作为一个函数调用。
add_parameter(name, parameter)添加一个参数实例。
add_sublayer(name, sublayer)添加一个子层实例。
apply(fn)递归地将
fn应用到每个子层(由.sublayers()返回)以及自身。buffers([include_sublayers])返回当前层及其子层中的所有缓冲区的列表。
children()返回一个迭代器,遍历直接子层。
clear_gradients()清除此层所有参数的梯度。
create_parameter(shape[, attr, dtype, ...])为该层创建参数。
create_tensor([name, persistable, dtype])为该层创建张量。
create_variable([name, persistable, dtype])为该层创建张量。
eval()将该层及其所有子层设置为评估模式。
extra_repr()该层的额外表示,您可以自定义实现自己的层。
forward(text[, spk_id])定义每次调用时执行的计算。
full_name()此层的完整名称,由 name_scope + "/" + MyLayer.__class__.__name__ 组成
load_dict(state_dict[, use_structured_name])从 state_dict 设置参数和可持久化缓存。
named_buffers([prefix, include_sublayers])返回一个迭代器,遍历层中的所有缓冲区,生成名称和张量的元组。
named_children()返回一个直接子层的迭代器,同时提供层的名称和层本身。
named_parameters([prefix, include_sublayers])返回一个迭代器,遍历层中的所有参数,生成名称和参数的元组。
named_sublayers([prefix, include_self, ...])返回Layer中所有子层的迭代器,生成名称和子层的元组。
parameters([include_sublayers])返回当前层及其子层的所有参数的列表。
register_buffer(name, tensor[, persistable])将一个张量注册为该层的缓冲区。
register_forward_post_hook(hook)为层注册一个前向后钩子。
register_forward_pre_hook(hook)为层注册一个前向预钩子。
set_dict(state_dict[, use_structured_name])从 state_dict 设置参数和可持久化的缓冲区。
set_state_dict(state_dict[, use_structured_name])从state_dict设置参数和持久化缓冲区。
state_dict([destination, include_sublayers, ...])获取当前层及其子层的所有参数和可持久化缓冲区。
sublayers([include_self])返回子层的列表。
to([device, dtype, blocking])通过给定的设备、数据类型和阻塞方式转换层的参数和缓冲区。
to_static_state_dict([destination, ...])获取当前层及其子层的所有参数和缓冲区。
train()将此层及其所有子层设置为训练模式。
向后
注册状态字典钩子