paddlespeech.t2s.models.vits.vits模块
VITS模块
- class paddlespeech.t2s.models.vits.vits.VITS(idim: int, odim: int, sampling_rate: int = 22050, generator_type: str = 'vits_generator', generator_params: Dict[str, Any] = {'decoder_channels': 512, 'decoder_kernel_size': 7, 'decoder_resblock_dilations': [[1, 3, 5], [1, 3, 5], [1, 3, 5]], 'decoder_resblock_kernel_sizes': [3, 7, 11], 'decoder_upsample_kernel_sizes': [16, 16, 4, 4], 'decoder_upsample_scales': [8, 8, 2, 2], 'flow_base_dilation': 1, 'flow_dropout_rate': 0.0, 'flow_flows': 4, 'flow_kernel_size': 5, 'flow_layers': 4, 'global_channels': -1, 'hidden_channels': 192, 'langs': None, 'posterior_encoder_base_dilation': 1, 'posterior_encoder_dropout_rate': 0.0, 'posterior_encoder_kernel_size': 5, 'posterior_encoder_layers': 16, 'posterior_encoder_stacks': 1, 'segment_size': 32, 'spk_embed_dim': None, 'spks': None, 'stochastic_duration_predictor_dds_conv_layers': 3, 'stochastic_duration_predictor_dropout_rate': 0.5, 'stochastic_duration_predictor_flows': 4, 'stochastic_duration_predictor_kernel_size': 3, 'text_encoder_activation_type': 'swish', 'text_encoder_attention_dropout_rate': 0.0, 'text_encoder_attention_heads': 2, 'text_encoder_blocks': 6, 'text_encoder_conformer_kernel_size': 7, 'text_encoder_dropout_rate': 0.1, 'text_encoder_ffn_expand': 4, 'text_encoder_normalize_before': True, 'text_encoder_positional_dropout_rate': 0.0, 'text_encoder_positional_encoding_layer_type': 'rel_pos', 'text_encoder_positionwise_conv_kernel_size': 1, 'text_encoder_positionwise_layer_type': 'conv1d', 'text_encoder_self_attention_layer_type': 'rel_selfattn', 'use_conformer_conv_in_text_encoder': True, 'use_macaron_style_in_text_encoder': True, 'use_only_mean_in_flow': True, 'use_weight_norm_in_decoder': True, 'use_weight_norm_in_flow': True, 'use_weight_norm_in_posterior_encoder': True}, discriminator_type: str = 'hifigan_multi_scale_multi_period_discriminator', discriminator_params: Dict[str, Any] = {'follow_official_norm': False, 'period_discriminator_params': {'bias': True, 'channels': 32, 'downsample_scales': [3, 3, 3, 3, 1], 'in_channels': 1, 'kernel_sizes': [5, 3], 'max_downsample_channels': 1024, 'nonlinear_activation': 'leakyrelu', 'nonlinear_activation_params': {'negative_slope': 0.1}, 'out_channels': 1, 'use_spectral_norm': False, 'use_weight_norm': True}, 'periods': [2, 3, 5, 7, 11], 'scale_discriminator_params': {'bias': True, 'channels': 128, 'downsample_scales': [2, 2, 4, 4, 1], 'in_channels': 1, 'kernel_sizes': [15, 41, 5, 3], 'max_downsample_channels': 1024, 'max_groups': 16, 'nonlinear_activation': 'leakyrelu', 'nonlinear_activation_params': {'negative_slope': 0.1}, 'out_channels': 1, 'use_spectral_norm': False, 'use_weight_norm': True}, 'scale_downsample_pooling': 'AvgPool1D', 'scale_downsample_pooling_params': {'kernel_size': 4, 'padding': 2, 'stride': 2}, 'scales': 1}, cache_generator_outputs: bool = True)[来源]
基础:
LayerVITS 模块(生成器 + 判别器)。这是一种在 `条件变分自编码器与对抗学习用于端到端语音合成`_ 中描述的 VITS 模块。.. _`条件变分自编码器与对抗学习用于端到端
文本到语音`: 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, T_feats, aux_channels)。 feats_lengths (Tensor): 特征长度张量 (B,)。 sids (Optional[Tensor]): 说话人索引张量 (B,) 或 (B, 1)。 spembs (Optional[Tensor]): 说话人嵌入张量 (B, spk_embed_dim)。 lids (Optional[Tensor]): 语言索引张量 (B,) 或 (B, 1)。 forward_generator (bool): 是否向前传播生成器。 返回:
full_name()此层的完整名称,由 name_scope + "/" + MyLayer.__class__.__name__ 组成
inference(text[, feats, sids, spembs, lids, ...])进行推断。参数: text (Tensor): 输入文本索引张量 (T_text,)。 feats (Tensor): 特征张量 (T_feats, 辅助通道)。 sids (Tensor): 说话者索引张量 (1,)。 spembs (可选[Tensor]): 说话者嵌入张量 (spk_embed_dim,)。 lids (Tensor): 语言索引张量 (1,)。 durations (Tensor): 真实持续时间张量 (T_text,)。 noise_scale (float): 流的噪声缩放值。 noise_scale_dur (float): 持续时间预测器的噪声缩放值。 alpha (float): 控制生成语音速度的alpha参数。 max_len (可选[int]): 最大长度。 use_teacher_forcing (bool): 是否使用教师强制。 返回: Dict[str, Tensor]: * wav (Tensor): 生成的波形张量 (T_wav,)。 * att_w (Tensor): 单调注意力权重张量 (T_feats, T_text)。 * duration (Tensor): 预测的持续时间张量 (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[, sids_src, ...])运行语音转换。 参数: feats (Tensor): 特征张量 (T_feats, aux_channels)。 sids_src (可选[Tensor]): 源特征的说话人索引张量 (1,)。 sids_tgt (可选[Tensor]): 目标特征的说话人索引张量 (1,)。 spembs_src (可选[Tensor]): 源特征的说话人嵌入张量 (spk_embed_dim,)。 spembs_tgt (可选[Tensor]): 目标特征的说话人嵌入张量 (spk_embed_dim,)。 lids (可选[Tensor]): 语言索引张量 (1,)。 返回: Dict[str, Tensor]: * wav (Tensor): 生成的波形张量 (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, forward_generator: bool = True) Dict[str, Any][来源]
执行生成器前向传播。
参数:
- text (Tensor):
文本索引张量 (B, T_text).
- text_lengths (Tensor):
文本长度张量 (B,).
- feats (Tensor):
特征张量 (B, T_feats, aux_channels).
- feats_lengths (Tensor):
特征长度张量 (B,).
- sids (Optional[Tensor]):
扬声器索引张量 (B,) 或 (B, 1).
- spembs (Optional[Tensor]):
说话人嵌入张量 (B, spk_embed_dim).
- lids (Optional[Tensor]):
语言索引张量 (B,) 或 (B, 1)。
- forward_generator (bool):
是否转发生成器。
返回:
- inference(text: Tensor, feats: Optional[Tensor] = None, sids: Optional[Tensor] = None, spembs: Optional[Tensor] = None, lids: Optional[Tensor] = None, durations: 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) Dict[str, Tensor][来源]
运行推理。 参数:
- text (Tensor):
输入文本索引张量 (T_text,).
- feats (Tensor):
特征张量 (T_feats, aux_channels).
- sids (Tensor):
扬声器索引张量 (1,).
- spembs (Optional[Tensor]):
说话人嵌入张量 (spk_embed_dim,).
- lids (Tensor):
语言索引张量 (1,).
- durations (Tensor):
真实持续时间张量 (T_text,).
- noise_scale (float):
流动的噪声尺度值。
- noise_scale_dur (float):
持续时间预测的噪声尺度值。
- alpha (float):
控制生成语音速度的 Alpha 参数。
- max_len (Optional[int]):
最大长度。
- use_teacher_forcing (bool):
是否使用教师强制。
- Returns:
- Dict[str, Tensor]:
- wav (Tensor):
生成的波形张量 (T_wav,).
- att_w (Tensor):
单调注意力权重张量 (T_feats, T_text).
- duration (Tensor):
预测持续时间张量 (T_text,).
- voice_conversion(feats: Tensor, 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):
特征张量 (T_feats, aux_channels)。
- sids_src (Optional[Tensor]):
源特征的说话人索引张量 (1,)。
- sids_tgt (Optional[Tensor]):
目标特征的说话人索引张量 (1,).
- spembs_src (Optional[Tensor]):
源特征的说话者嵌入张量 (spk_embed_dim,).
- spembs_tgt (Optional[Tensor]):
目标特征的说话者嵌入张量 (spk_embed_dim,)。
- lids (Optional[Tensor]):
语言索引张量 (1,).
- Returns:
- Dict[str, Tensor]:
- wav (Tensor):
生成的波形张量 (T_wav,).
- class paddlespeech.t2s.models.vits.vits.VITSInference(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[, sids])定义每次调用时执行的计算。
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()将此层及其所有子层设置为训练模式。
向后
注册状态字典钩子