paddlespeech.t2s.models.fastspeech2.fastspeech2 模块
Fastspeech2 相关模块用于 paddle
- class paddlespeech.t2s.models.fastspeech2.fastspeech2.FastSpeech2(idim: int, odim: int, adim: int = 384, aheads: int = 4, elayers: int = 6, eunits: int = 1536, dlayers: int = 6, dunits: int = 1536, postnet_layers: int = 5, postnet_chans: int = 512, postnet_filts: int = 5, postnet_dropout_rate: float = 0.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, encoder_type: str = 'transformer', decoder_type: str = 'transformer', 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_activation_type: str = 'relu', conformer_pos_enc_layer_type: str = 'rel_pos', conformer_self_attn_layer_type: str = 'rel_selfattn', conformer_activation_type: str = 'swish', use_macaron_style_in_conformer: bool = True, use_cnn_in_conformer: bool = True, zero_triu: bool = False, conformer_enc_kernel_size: int = 7, conformer_dec_kernel_size: int = 31, cnn_dec_dropout_rate: float = 0.2, cnn_postnet_dropout_rate: float = 0.2, cnn_postnet_resblock_kernel_sizes: List[int] = [256, 256], cnn_postnet_kernel_size: int = 5, cnn_decoder_embedding_dim: int = 256, duration_predictor_layers: int = 2, duration_predictor_chans: int = 384, duration_predictor_kernel_size: int = 3, duration_predictor_dropout_rate: float = 0.1, energy_predictor_layers: int = 2, energy_predictor_chans: int = 384, energy_predictor_kernel_size: int = 3, energy_predictor_dropout: float = 0.5, energy_embed_kernel_size: int = 9, energy_embed_dropout: float = 0.5, stop_gradient_from_energy_predictor: bool = False, pitch_predictor_layers: int = 2, pitch_predictor_chans: int = 384, pitch_predictor_kernel_size: int = 3, pitch_predictor_dropout: float = 0.5, pitch_embed_kernel_size: int = 9, pitch_embed_dropout: float = 0.5, stop_gradient_from_pitch_predictor: bool = False, spk_num: Optional[int] = None, spk_embed_dim: Optional[int] = None, spk_embed_integration_type: str = 'add', tone_num: Optional[int] = None, tone_embed_dim: Optional[int] = None, tone_embed_integration_type: str = 'add', init_type: str = 'xavier_uniform', init_enc_alpha: float = 1.0, init_dec_alpha: float = 1.0, enable_speaker_classifier: bool = False, hidden_sc_dim: int = 256)[来源]
基础:
LayerFastSpeech2 模块。
这是FastSpeech2的一个模块,如FastSpeech 2: Fast and High-Quality End-to-End Text to Speech所述。我们使用在FastPitch: Parallel Text-to-speech with Pitch Prediction中引入的基于Token的平均值,而不是量化的音高和能量。
参数:
返回:
方法
__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[, durations, pitch, energy, ...])生成给定字符序列的特征序列。
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()将此层及其所有子层设置为训练模式。
向后
encoder_infer
注册状态字典钩子
- encoder_infer(text: Tensor, spk_id=None, alpha: float = 1.0, spk_emb=None, tone_id=None) Tuple[Tensor, Tensor, Tensor][来源]
- forward(text: Tensor, text_lengths: Tensor, speech: Tensor, speech_lengths: Tensor, durations: Tensor, pitch: Tensor, energy: Tensor, tone_id: Optional[Tensor] = None, spk_emb: Optional[Tensor] = None, spk_id: 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,)。
- durations(Tensor(int64)):
填充持续时间的批次 (B, Tmax)。
- pitch(Tensor):
填充的标记平均音高的批次(B, Tmax, 1)。
- energy(Tensor):
批处理的填充令牌平均能量 (B, Tmax, 1)。
- tone_id(Tensor, optional(int64)):
填充音调 ID 的批次 (B, Tmax)。
- spk_emb(Tensor, optional):
说话人嵌入的批次 (B, spk_embed_dim).
- spk_id(Tnesor, optional(int64)):
一批扬声器ID (B,)
返回:
- inference(text: Tensor, durations: Optional[Tensor] = None, pitch: Optional[Tensor] = None, energy: Optional[Tensor] = None, alpha: float = 1.0, use_teacher_forcing: bool = False, spk_emb=None, spk_id=None, tone_id=None) Tuple[Tensor, Tensor, Tensor][来源]
根据字符序列生成特征序列。
- Args:
- text(Tensor(int64)):
输入字符序列 (T,).
- durations(Tensor, optional (int64)):
持续时间的真实值 (T,).
- pitch(Tensor, optional):
标记平均音高的真实值 (T, 1).
- energy(Tensor, optional):
令牌平均能量的真实值 (T, 1).
- alpha(float, optional):
Alpha 控制速度。
- use_teacher_forcing(bool, optional):
是否使用教师强制。 如果为真,持续时间、音高和能量的真实值将被使用。
- spk_emb(Tensor, optional, optional):
说话人嵌入向量 (spk_embed_dim,)。 (默认值 = None)
- spk_id(Tensor, optional(int64), optional):
spk ids (1,). (默认值 = None)
- tone_id(Tensor, optional(int64), optional):
音调 ID (T,)。 (默认值 = None)
返回:
- class paddlespeech.t2s.models.fastspeech2.fastspeech2.FastSpeech2Inference(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, spk_emb])定义在每次调用时执行的计算。
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()将此层及其所有子层设置为训练模式。
向后
注册状态字典钩子
- class paddlespeech.t2s.models.fastspeech2.fastspeech2.FastSpeech2Loss(use_masking: bool = True, use_weighted_masking: bool = False)[来源]
基础:
LayerFastSpeech2的损失函数模块。
方法
__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(after_outs, before_outs, d_outs, ...)计算前向传播。
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(after_outs: Tensor, before_outs: Tensor, d_outs: Tensor, p_outs: Tensor, e_outs: Tensor, ys: Tensor, ds: Tensor, ps: Tensor, es: Tensor, ilens: Tensor, olens: Tensor, spk_logits: Optional[Tensor] = None, spk_ids: Optional[Tensor] = None) Tuple[Tensor, Tensor, Tensor, Tensor, Tensor][来源]
计算前向传播。
- Args:
- after_outs(Tensor):
后处理网络的输出批次(B,Lmax,odim)。
- before_outs(Tensor):
后处理之前的输出批次 (B, Lmax, odim)。
- d_outs(Tensor):
持续时间预测器的输出批次 (B, Tmax)。
- p_outs(Tensor):
音高预测器的输出批次 (B, Tmax, 1)。
- e_outs(Tensor):
能量预测器的输出批次(B,Tmax,1)。
- ys(Tensor):
目标特征的批次 (B, Lmax, odim)。
- ds(Tensor):
持续时间批次(B,Tmax)。
- ps(Tensor):
目标令牌的平均音高批次(B,Tmax,1)。
- es(Tensor):
目标令牌平均能量的批次 (B, Tmax, 1).
- ilens(Tensor):
每个输入的长度批次 (B,).
- olens(Tensor):
每个目标的长度批次(B,)。
- spk_logits(Option[Tensor]):
说话者分类器后的输出批次 (B, Lmax, num_spk)
- spk_ids(Option[Tensor]):
目标 spk_id 的批次 (B,)
返回:
- class paddlespeech.t2s.models.fastspeech2.fastspeech2.StyleFastSpeech2Inference(normalizer, model, pitch_stats_path=None, energy_stats_path=None)[来源]
-
方法
__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(文本[, 持续时间, 持续时间比例, ...])参数:
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: Tensor, durations: Optional[Union[Tensor, ndarray]] = None, durations_scale: Optional[Union[int, float]] = None, durations_bias: Optional[Union[int, float]] = None, pitch: Optional[Union[Tensor, ndarray]] = None, pitch_scale: Optional[Union[int, float]] = None, pitch_bias: Optional[Union[int, float]] = None, energy: Optional[Union[Tensor, ndarray]] = None, energy_scale: Optional[Union[int, float]] = None, energy_bias: Optional[Union[int, float]] = None, robot: bool = False, spk_emb=None, spk_id=None)[来源]
- Args:
- text(Tensor(int64)):
输入字符序列 (T,).
- durations(paddle.Tensor/np.ndarray, optional (int64)):
持续时间的真实值 (T,),这将覆盖设置的 durations_scale 和 durations_bias
持续时间缩放(int/float, 可选):
持续时间偏差(int/float, 可选):
- pitch(paddle.Tensor/np.ndarray, optional):
令牌平均音高的真实值 (T, 1),这将覆盖设置的 pitch_scale 和 pitch_bias
- pitch_scale(int/float, optional):
在反规范化的HZ域中。
- pitch_bias(int/float, optional):
在非规范化的HZ域中。
- energy(paddle.Tensor/np.ndarray, optional):
令牌平均能量的真实值 (T, 1),这将覆盖能量_scale 和能量_bias 的设置
- energy_scale(int/float, optional):
在非规范化域中。
- energy_bias(int/float, optional):
在非规范化域中。
机器人(布尔值)(默认值 = 假):
spk_emb(默认值 = None):
spk_id(默认值 = None):
- Returns:
张量: logmel