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)[来源]
基础:
LayerVITS中的生成器模块。 这是VITS中的一个模块,描述在`条件变分自编码器 与对抗学习用于端到端文本到语音`_中。 作为文本编码器,我们使用顺序架构,而不是相对位置的 Transformer,它包含额外的卷积层。 .. _`条件变分自编码器与对抗学习用于端到端
文本到语音`: https://arxiv.org/abs/2006.04558
方法
__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).