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

基础: Layer

VITS 模块(生成器 + 判别器)。这是一种在 `条件变分自编码器与对抗学习用于端到端语音合成`_ 中描述的 VITS 模块。.. _`条件变分自编码器与对抗学习用于端到端

方法

__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,).

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

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

向后

注册状态字典钩子

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

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

Parameters:

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