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)[来源]

基础: Layer

TTS-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()

将此层及其所有子层设置为训练模式。

向后

注册状态字典钩子

forward(text, spk_id=None)[来源]

定义每次调用时执行的计算。应该被所有子类重写。

Parameters:

*inputs(tuple): 解包的元组参数 **kwargs(dict): 解包的字典参数