paddlespeech.t2s.models.vits.generator 模块

VITS中的生成器模块。

此代码基于 https://github.com/jaywalnut310/vits

class paddlespeech.t2s.models.vits.generator.VITSGenerator(vocabs: int, aux_channels: int = 513, hidden_channels: int = 192, spks: Optional[int] = None, langs: Optional[int] = None, spk_embed_dim: Optional[int] = None, global_channels: int = -1, segment_size: int = 32, text_encoder_attention_heads: int = 2, text_encoder_ffn_expand: int = 4, text_encoder_blocks: int = 6, text_encoder_positionwise_layer_type: str = 'conv1d', text_encoder_positionwise_conv_kernel_size: int = 1, text_encoder_positional_encoding_layer_type: str = 'rel_pos', text_encoder_self_attention_layer_type: str = 'rel_selfattn', text_encoder_activation_type: str = 'swish', text_encoder_normalize_before: bool = True, text_encoder_dropout_rate: float = 0.1, text_encoder_positional_dropout_rate: float = 0.0, text_encoder_attention_dropout_rate: float = 0.0, text_encoder_conformer_kernel_size: int = 7, use_macaron_style_in_text_encoder: bool = True, use_conformer_conv_in_text_encoder: bool = True, decoder_kernel_size: int = 7, decoder_channels: int = 512, decoder_upsample_scales: List[int] = [8, 8, 2, 2], decoder_upsample_kernel_sizes: List[int] = [16, 16, 4, 4], decoder_resblock_kernel_sizes: List[int] = [3, 7, 11], decoder_resblock_dilations: List[List[int]] = [[1, 3, 5], [1, 3, 5], [1, 3, 5]], use_weight_norm_in_decoder: bool = True, posterior_encoder_kernel_size: int = 5, posterior_encoder_layers: int = 16, posterior_encoder_stacks: int = 1, posterior_encoder_base_dilation: int = 1, posterior_encoder_dropout_rate: float = 0.0, use_weight_norm_in_posterior_encoder: bool = True, flow_flows: int = 4, flow_kernel_size: int = 5, flow_base_dilation: int = 1, flow_layers: int = 4, flow_dropout_rate: float = 0.0, use_weight_norm_in_flow: bool = True, use_only_mean_in_flow: bool = True, stochastic_duration_predictor_kernel_size: int = 3, stochastic_duration_predictor_dropout_rate: float = 0.5, stochastic_duration_predictor_flows: int = 4, stochastic_duration_predictor_dds_conv_layers: int = 3)[来源]

基础: Layer

VITS中的生成器模块。 这是VITS中的一个模块,描述在`条件变分自编码器 与对抗学习用于端到端文本到语音`_中。 作为文本编码器,我们使用顺序架构,而不是相对位置的 Transformer,它包含额外的卷积层。 .. _`条件变分自编码器与对抗学习用于端到端

方法

__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, feats, feats_lengths)

计算前向传播。 参数: text (Tensor): 文本索引张量 (B, T_text)。 text_lengths (Tensor): 文本长度张量 (B,)。 feats (Tensor): 特征张量 (B, aux_channels, T_feats)。 feats_lengths (Tensor): 特征长度张量 (B)。 sids (Optional[Tensor]): 说话人索引张量 (B,) 或 (B, 1)。 spembs (Optional[Tensor]): 说话人嵌入张量 (B, spk_embed_dim)。 lids (Optional[Tensor]): 语言索引张量 (B,) 或 (B, 1)。 返回: Tensor: 波形张量 (B, 1, segment_size * upsample_factor)。 Tensor: 持续时间负对数似然 (NLL) 张量 (B,)。 Tensor: 单调注意力权重张量 (B, 1, T_feats, T_text)。 Tensor: 段开始索引张量 (B,)。 Tensor: 文本掩码张量 (B, 1, T_text)。 Tensor: 特征掩码张量 (B, 1, T_feats)。 tuple[Tensor, Tensor, Tensor, Tensor, Tensor, Tensor]: - Tensor: 后验编码器隐藏表示 (B, H, T_feats)。 - Tensor: 流隐藏表示 (B, H, T_feats)。 - Tensor: 扩展文本编码器投影均值 (B, H, T_feats)。 - Tensor: 扩展文本编码器投影尺度 (B, H, T_feats)。 - Tensor: 后验编码器投影均值 (B, H, T_feats)。 - Tensor: 后验编码器投影尺度 (B, H, T_feats)。

full_name()

此层的完整名称,由 name_scope + "/" + MyLayer.__class__.__name__ 组成

inference(text, text_lengths[, feats, ...])

运行推理。 参数: text (Tensor): 输入文本索引张量 (B, T_text,)。 text_lengths (Tensor): 文本长度张量 (B,)。 feats (Tensor): 特征张量 (B, aux_channels, T_feats,)。 feats_lengths (Tensor): 特征长度张量 (B,)。 sids (Optional[Tensor]): 说话者索引张量 (B,) 或 (B, 1)。 spembs (Optional[Tensor]): 说话者嵌入张量 (B, spk_embed_dim)。 lids (Optional[Tensor]): 语言索引张量 (B,) 或 (B, 1)。 dur (Optional[Tensor]): 真实持续时间 (B, T_text,)。 如果提供, 跳过持续时间的预测 (即,教师强制)。 noise_scale (float): 流的噪声尺度参数。 noise_scale_dur (float): 持续时间预测器的噪声尺度参数。 alpha (float): 控制生成语音速度的 alpha 参数。 max_len (Optional[int]): 声学特征序列的最大长度。 use_teacher_forcing (bool): 是否使用教师强制。 返回: Tensor: 生成的波形张量 (B, T_wav)。 Tensor: 单调注意力权重张量 (B, T_feats, T_text)。 Tensor: 持续时间张量 (B, T_text)。

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

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

voice_conversion([feats, feats_lengths, ...])

运行语音转换。 参数: feats (Tensor): 特征张量 (B, aux_channels, T_feats,)。 feats_lengths (Tensor): 特征长度张量 (B,)。 sids_src (Optional[Tensor]): 源特征的说话人索引张量 (B,) 或 (B, 1)。 sids_tgt (Optional[Tensor]): 目标特征的说话人索引张量 (B,) 或 (B, 1)。 spembs_src (Optional[Tensor]): 源特征的说话人嵌入张量 (B, spk_embed_dim)。 spembs_tgt (Optional[Tensor]): 目标特征的说话人嵌入张量 (B, spk_embed_dim)。 lids (Optional[Tensor]): 语言索引张量 (B,) 或 (B, 1)。 返回: Tensor: 生成的波形张量 (B, T_wav)。

向后

注册状态字典钩子

forward(text: Tensor, text_lengths: Tensor, feats: Tensor, feats_lengths: Tensor, sids: Optional[Tensor] = None, spembs: Optional[Tensor] = None, lids: Optional[Tensor] = None) Tuple[Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tuple[Tensor, Tensor, Tensor, Tensor, Tensor, Tensor]][来源]

计算前向传播。 参数:

text (Tensor):

文本索引张量 (B, T_text).

text_lengths (Tensor):

文本长度张量 (B,).

feats (Tensor):

特征张量 (B, aux_channels, T_feats).

feats_lengths (Tensor):

特征长度张量 (B,).

sids (Optional[Tensor]):

扬声器索引张量 (B,) 或 (B, 1).

spembs (Optional[Tensor]):

说话人嵌入张量 (B, spk_embed_dim).

lids (Optional[Tensor]):

语言索引张量 (B,) 或 (B, 1)。

Returns:
Tensor:

波形张量 (B, 1, 段大小 * 上采样因子).

Tensor:

持续时间负对数似然(NLL)张量(B,)。

Tensor:

单调注意力权重张量 (B, 1, T_feats, T_text).

Tensor:

片段开始索引张量 (B,).

Tensor:

文本掩码张量 (B, 1, T_text).

Tensor:

特征掩码张量 (B, 1, T_feats).
元组[张量, 张量, 张量, 张量, 张量, 张量]:

  • 张量:后验编码器隐藏表示(B,H,T_feats)。

  • 张量:隐藏表示(B,H,T_feats)。

  • 张量:扩展文本编码器投影均值(B,H,T_feats)。

  • 张量:扩展文本编码器投影规模(B,H,T_feats)。

  • 张量:后验编码器投影均值 (B, H, T_feats).

  • 张量:后验编码器投影比例 (B, H, T_feats)。

inference(text: Tensor, text_lengths: Tensor, feats: Optional[Tensor] = None, feats_lengths: Optional[Tensor] = None, sids: Optional[Tensor] = None, spembs: Optional[Tensor] = None, lids: Optional[Tensor] = None, dur: Optional[Tensor] = None, noise_scale: float = 0.667, noise_scale_dur: float = 0.8, alpha: float = 1.0, max_len: Optional[int] = None, use_teacher_forcing: bool = False) Tuple[Tensor, Tensor, Tensor][来源]

运行推理。

参数:

text (Tensor):

输入文本索引张量 (B, T_text,).

text_lengths (Tensor):

文本长度张量 (B,).

feats (Tensor):

特征张量 (B, aux_channels, T_feats,).

feats_lengths (Tensor):

特征长度张量 (B,).

sids (Optional[Tensor]):

扬声器索引张量 (B,) 或 (B, 1)。

spembs (Optional[Tensor]):

说话人嵌入张量 (B, spk_embed_dim).

lids (Optional[Tensor]):

语言索引张量 (B,) 或 (B, 1)。

dur (Optional[Tensor]):

真实持续时间 (B, T_text,)。如果提供,跳过持续时间的预测(即,教师逼迫)。

noise_scale (float):

流动的噪声尺度参数。

noise_scale_dur (float):

持续时间预测器的噪声尺度参数。

alpha (float):

控制生成语音速度的 Alpha 参数。

max_len (Optional[int]):

声学特征序列的最大长度。

use_teacher_forcing (bool):

是否使用教师强制。

Returns:
Tensor:

生成的波形张量 (B, T_wav).

Tensor:

单调注意力权重张量 (B, T_feats, T_text).

Tensor:

持续时间张量 (B, T_text).

voice_conversion(feats: Optional[Tensor] = None, feats_lengths: Optional[Tensor] = None, sids_src: Optional[Tensor] = None, sids_tgt: Optional[Tensor] = None, spembs_src: Optional[Tensor] = None, spembs_tgt: Optional[Tensor] = None, lids: Optional[Tensor] = None) Tensor[来源]

运行语音转换。

参数:

feats (Tensor):

特征张量 (B, aux_channels, T_feats,).

feats_lengths (Tensor):

特征长度张量 (B,).

sids_src (Optional[Tensor]):

源特征的讲话者索引张量 (B,) 或 (B, 1)。

sids_tgt (Optional[Tensor]):

目标特征的扬声器索引张量 (B,) 或 (B, 1)。

spembs_src (Optional[Tensor]):

源特征的说话者嵌入张量 (B, spk_embed_dim)。

spembs_tgt (Optional[Tensor]):

目标特征的说话者嵌入张量 (B, spk_embed_dim)。

lids (Optional[Tensor]):

语言索引张量 (B,) 或 (B, 1)。

Returns:
Tensor:

生成的波形张量 (B, T_wav).