class_docstr: Tacotron2 module for end-to-end text-to-speech (E2E-TTS).
  
  This is a module of Spectrogram prediction network in Tacotron2 described
  in `Natural TTS Synthesis
  by Conditioning WaveNet on Mel Spectrogram Predictions`_,
  which converts the sequence of characters
  into the sequence of Mel-filterbanks.
  
  .. _`Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions`:
     https://arxiv.org/abs/1712.05884
class_docstr_tok: ["Tacotron2","module","for","end-to-end","text-to-speech","(","E2E-TTS",")",".","This","is","a","module","of","Spectrogram","prediction","network","in","Tacotron2","described","in","`","Natural","TTS","Synthesis","by","Conditioning","WaveNet","on","Mel","Spectrogram","Predictions","`","_",",","which","converts","the","sequence","of","characters","into","the","sequence","of","Mel-filterbanks",".","..","_","`","Natural","TTS","Synthesis","by","Conditioning","WaveNet","on","Mel","Spectrogram","Predictions","`",":","https",":","\/\/arxiv.org\/abs\/1712.05884"]
docstr: Initialize Tacotron2 module.
  
  Args:
      idim (int): Dimension of the inputs.
      odim (int): Dimension of the outputs.
      args (Namespace, optional):
          - spk_embed_dim (int): Dimension of the speaker embedding.
          - embed_dim (int): Dimension of character embedding.
          - elayers (int): The number of encoder blstm layers.
          - eunits (int): The number of encoder blstm units.
          - econv_layers (int): The number of encoder conv layers.
          - econv_filts (int): The number of encoder conv filter size.
          - econv_chans (int): The number of encoder conv filter channels.
          - dlayers (int): The number of decoder lstm layers.
          - dunits (int): The number of decoder lstm units.
          - prenet_layers (int): The number of prenet layers.
          - prenet_units (int): The number of prenet units.
          - postnet_layers (int): The number of postnet layers.
          - postnet_filts (int): The number of postnet filter size.
          - postnet_chans (int): The number of postnet filter channels.
          - output_activation (int): The name of activation function for outputs.
          - adim (int): The number of dimension of mlp in attention.
          - aconv_chans (int): The number of attention conv filter channels.
          - aconv_filts (int): The number of attention conv filter size.
          - cumulate_att_w (bool): Whether to cumulate previous attention weight.
          - use_batch_norm (bool): Whether to use batch normalization.
          - use_concate (int): Whether to concatenate encoder embedding
              with decoder lstm outputs.
          - dropout_rate (float): Dropout rate.
          - zoneout_rate (float): Zoneout rate.
          - reduction_factor (int): Reduction factor.
          - spk_embed_dim (int): Number of speaker embedding dimenstions.
          - spc_dim (int): Number of spectrogram embedding dimenstions
              (only for use_cbhg=True).
          - use_cbhg (bool): Whether to use CBHG module.
          - cbhg_conv_bank_layers (int): The number of convoluional banks in CBHG.
          - cbhg_conv_bank_chans (int): The number of channels of
              convolutional bank in CBHG.
          - cbhg_proj_filts (int):
              The number of filter size of projection layeri in CBHG.
          - cbhg_proj_chans (int):
              The number of channels of projection layer in CBHG.
          - cbhg_highway_layers (int):
              The number of layers of highway network in CBHG.
          - cbhg_highway_units (int):
              The number of units of highway network in CBHG.
          - cbhg_gru_units (int): The number of units of GRU in CBHG.
          - use_masking (bool):
              Whether to apply masking for padded part in loss calculation.
          - use_weighted_masking (bool):
              Whether to apply weighted masking in loss calculation.
          - bce_pos_weight (float):
              Weight of positive sample of stop token (only for use_masking=True).
          - use-guided-attn-loss (bool): Whether to use guided attention loss.
          - guided-attn-loss-sigma (float) Sigma in guided attention loss.
          - guided-attn-loss-lamdba (float): Lambda in guided attention loss.
docstr_tok: ["Initialize","Tacotron2","module",".","Args",":","idim","(","int",")",":","Dimension","of","the","inputs",".","odim","(","int",")",":","Dimension","of","the","outputs",".","args","(","Namespace",",","optional",")",":","-","spk_embed_dim","(","int",")",":","Dimension","of","the","speaker","embedding",".","-","embed_dim","(","int",")",":","Dimension","of","character","embedding",".","-","elayers","(","int",")",":","The","number","of","encoder","blstm","layers",".","-","eunits","(","int",")",":","The","number","of","encoder","blstm","units",".","-","econv_layers","(","int",")",":","The","number","of","encoder","conv","layers",".","-","econv_filts","(","int",")",":","The","number","of","encoder","conv","filter","size",".","-","econv_chans","(","int",")",":","The","number","of","encoder","conv","filter","channels",".","-","dlayers","(","int",")",":","The","number","of","decoder","lstm","layers",".","-","dunits","(","int",")",":","The","number","of","decoder","lstm","units",".","-","prenet_layers","(","int",")",":","The","number","of","prenet","layers",".","-","prenet_units","(","int",")",":","The","number","of","prenet","units",".","-","postnet_layers","(","int",")",":","The","number","of","postnet","layers",".","-","postnet_filts","(","int",")",":","The","number","of","postnet","filter","size",".","-","postnet_chans","(","int",")",":","The","number","of","postnet","filter","channels",".","-","output_activation","(","int",")",":","The","name","of","activation","function","for","outputs",".","-","adim","(","int",")",":","The","number","of","dimension","of","mlp","in","attention",".","-","aconv_chans","(","int",")",":","The","number","of","attention","conv","filter","channels",".","-","aconv_filts","(","int",")",":","The","number","of","attention","conv","filter","size",".","-","cumulate_att_w","(","bool",")",":","Whether","to","cumulate","previous","attention","weight",".","-","use_batch_norm","(","bool",")",":","Whether","to","use","batch","normalization",".","-","use_concate","(","int",")",":","Whether","to","concatenate","encoder","embedding","with","decoder","lstm","outputs",".","-","dropout_rate","(","float",")",":","Dropout","rate",".","-","zoneout_rate","(","float",")",":","Zoneout","rate",".","-","reduction_factor","(","int",")",":","Reduction","factor",".","-","spk_embed_dim","(","int",")",":","Number","of","speaker","embedding","dimenstions",".","-","spc_dim","(","int",")",":","Number","of","spectrogram","embedding","dimenstions","(","only","for","use_cbhg=True",")",".","-","use_cbhg","(","bool",")",":","Whether","to","use","CBHG","module",".","-","cbhg_conv_bank_layers","(","int",")",":","The","number","of","convoluional","banks","in","CBHG",".","-","cbhg_conv_bank_chans","(","int",")",":","The","number","of","channels","of","convolutional","bank","in","CBHG",".","-","cbhg_proj_filts","(","int",")",":","The","number","of","filter","size","of","projection","layeri","in","CBHG",".","-","cbhg_proj_chans","(","int",")",":","The","number","of","channels","of","projection","layer","in","CBHG",".","-","cbhg_highway_layers","(","int",")",":","The","number","of","layers","of","highway","network","in","CBHG",".","-","cbhg_highway_units","(","int",")",":","The","number","of","units","of","highway","network","in","CBHG",".","-","cbhg_gru_units","(","int",")",":","The","number","of","units","of","GRU","in","CBHG",".","-","use_masking","(","bool",")",":","Whether","to","apply","masking","for","padded","part","in","loss","calculation",".","-","use_weighted_masking","(","bool",")",":","Whether","to","apply","weighted","masking","in","loss","calculation",".","-","bce_pos_weight","(","float",")",":","Weight","of","positive","sample","of","stop","token","(","only","for","use_masking=True",")",".","-","use-guided-attn-loss","(","bool",")",":","Whether","to","use","guided","attention","loss",".","-","guided-attn-loss-sigma","(","float",")","Sigma","in","guided","attention","loss",".","-","guided-attn-loss-lamdba","(","float",")",":","Lambda","in","guided","attention","loss","."]
code: def __init__(self, idim, odim, args=None):
      """Initialize Tacotron2 module.
  
      Args:
          idim (int): Dimension of the inputs.
          odim (int): Dimension of the outputs.
          args (Namespace, optional):
              - spk_embed_dim (int): Dimension of the speaker embedding.
              - embed_dim (int): Dimension of character embedding.
              - elayers (int): The number of encoder blstm layers.
              - eunits (int): The number of encoder blstm units.
              - econv_layers (int): The number of encoder conv layers.
              - econv_filts (int): The number of encoder conv filter size.
              - econv_chans (int): The number of encoder conv filter channels.
              - dlayers (int): The number of decoder lstm layers.
              - dunits (int): The number of decoder lstm units.
              - prenet_layers (int): The number of prenet layers.
              - prenet_units (int): The number of prenet units.
              - postnet_layers (int): The number of postnet layers.
              - postnet_filts (int): The number of postnet filter size.
              - postnet_chans (int): The number of postnet filter channels.
              - output_activation (int): The name of activation function for outputs.
              - adim (int): The number of dimension of mlp in attention.
              - aconv_chans (int): The number of attention conv filter channels.
              - aconv_filts (int): The number of attention conv filter size.
              - cumulate_att_w (bool): Whether to cumulate previous attention weight.
              - use_batch_norm (bool): Whether to use batch normalization.
              - use_concate (int): Whether to concatenate encoder embedding
                  with decoder lstm outputs.
              - dropout_rate (float): Dropout rate.
              - zoneout_rate (float): Zoneout rate.
              - reduction_factor (int): Reduction factor.
              - spk_embed_dim (int): Number of speaker embedding dimenstions.
              - spc_dim (int): Number of spectrogram embedding dimenstions
                  (only for use_cbhg=True).
              - use_cbhg (bool): Whether to use CBHG module.
              - cbhg_conv_bank_layers (int): The number of convoluional banks in CBHG.
              - cbhg_conv_bank_chans (int): The number of channels of
                  convolutional bank in CBHG.
              - cbhg_proj_filts (int):
                  The number of filter size of projection layeri in CBHG.
              - cbhg_proj_chans (int):
                  The number of channels of projection layer in CBHG.
              - cbhg_highway_layers (int):
                  The number of layers of highway network in CBHG.
              - cbhg_highway_units (int):
                  The number of units of highway network in CBHG.
              - cbhg_gru_units (int): The number of units of GRU in CBHG.
              - use_masking (bool):
                  Whether to apply masking for padded part in loss calculation.
              - use_weighted_masking (bool):
                  Whether to apply weighted masking in loss calculation.
              - bce_pos_weight (float):
                  Weight of positive sample of stop token (only for use_masking=True).
              - use-guided-attn-loss (bool): Whether to use guided attention loss.
              - guided-attn-loss-sigma (float) Sigma in guided attention loss.
              - guided-attn-loss-lamdba (float): Lambda in guided attention loss.
  
      """
      # initialize base classes
      TTSInterface.__init__(self)
      torch.nn.Module.__init__(self)
  
      # fill missing arguments
      args = fill_missing_args(args, self.add_arguments)
  
      # store hyperparameters
      self.idim = idim
      self.odim = odim
      self.spk_embed_dim = args.spk_embed_dim
      self.cumulate_att_w = args.cumulate_att_w
      self.reduction_factor = args.reduction_factor
      self.use_cbhg = args.use_cbhg
      self.use_guided_attn_loss = args.use_guided_attn_loss
  
      # define activation function for the final output
      if args.output_activation is None:
          self.output_activation_fn = None
      elif hasattr(F, args.output_activation):
          self.output_activation_fn = getattr(F, args.output_activation)
      else:
          raise ValueError(
              "there is no such an activation function. (%s)"
              % args.output_activation
          )
  
      # set padding idx
      padding_idx = 0
  
      # define network modules
      self.enc = Encoder(
          idim=idim,
          embed_dim=args.embed_dim,
          elayers=args.elayers,
          eunits=args.eunits,
          econv_layers=args.econv_layers,
          econv_chans=args.econv_chans,
          econv_filts=args.econv_filts,
          use_batch_norm=args.use_batch_norm,
          use_residual=args.use_residual,
          dropout_rate=args.dropout_rate,
          padding_idx=padding_idx,
      )
      dec_idim = (
          args.eunits
          if args.spk_embed_dim is None
          else args.eunits + args.spk_embed_dim
      )
      if args.atype == "location":
          att = AttLoc(
              dec_idim,
              args.dunits,
              args.adim,
              args.aconv_chans,
              args.aconv_filts,
          )
      elif args.atype == "forward":
          att = AttForward(
              dec_idim,
              args.dunits,
              args.adim,
              args.aconv_chans,
              args.aconv_filts,
          )
          if self.cumulate_att_w:
              logging.warning(
                  "cumulation of attention weights is disabled in forward attention."
              )
              self.cumulate_att_w = False
      elif args.atype == "forward_ta":
          att = AttForwardTA(
              dec_idim,
              args.dunits,
              args.adim,
              args.aconv_chans,
              args.aconv_filts,
              odim,
          )
          if self.cumulate_att_w:
              logging.warning(
                  "cumulation of attention weights is disabled in forward attention."
              )
              self.cumulate_att_w = False
      else:
          raise NotImplementedError("Support only location or forward")
      self.dec = Decoder(
          idim=dec_idim,
          odim=odim,
          att=att,
          dlayers=args.dlayers,
          dunits=args.dunits,
          prenet_layers=args.prenet_layers,
          prenet_units=args.prenet_units,
          postnet_layers=args.postnet_layers,
          postnet_chans=args.postnet_chans,
          postnet_filts=args.postnet_filts,
          output_activation_fn=self.output_activation_fn,
          cumulate_att_w=self.cumulate_att_w,
          use_batch_norm=args.use_batch_norm,
          use_concate=args.use_concate,
          dropout_rate=args.dropout_rate,
          zoneout_rate=args.zoneout_rate,
          reduction_factor=args.reduction_factor,
      )
      self.taco2_loss = Tacotron2Loss(
          use_masking=args.use_masking,
          use_weighted_masking=args.use_weighted_masking,
          bce_pos_weight=args.bce_pos_weight,
      )
      if self.use_guided_attn_loss:
          self.attn_loss = GuidedAttentionLoss(
              sigma=args.guided_attn_loss_sigma,
              alpha=args.guided_attn_loss_lambda,
          )
      if self.use_cbhg:
          self.cbhg = CBHG(
              idim=odim,
              odim=args.spc_dim,
              conv_bank_layers=args.cbhg_conv_bank_layers,
              conv_bank_chans=args.cbhg_conv_bank_chans,
              conv_proj_filts=args.cbhg_conv_proj_filts,
              conv_proj_chans=args.cbhg_conv_proj_chans,
              highway_layers=args.cbhg_highway_layers,
              highway_units=args.cbhg_highway_units,
              gru_units=args.cbhg_gru_units,
          )
          self.cbhg_loss = CBHGLoss(use_masking=args.use_masking)
  
      # load pretrained model
      if args.pretrained_model is not None:
          self.load_pretrained_model(args.pretrained_model)
  
imports: import logging
  import numpy
  import torch
  import torch.nn.functional
  from espnet.nets.pytorch_backend.nets_utils import make_non_pad_mask
  from espnet.nets.pytorch_backend.rnn.attentions import AttForward, AttForwardTA, AttLoc
  from espnet.nets.pytorch_backend.tacotron2.cbhg import CBHG, CBHGLoss
  from espnet.nets.pytorch_backend.tacotron2.decoder import Decoder
  from espnet.nets.pytorch_backend.tacotron2.encoder import Encoder
  from espnet.nets.tts_interface import TTSInterface
  from espnet.utils.cli_utils import strtobool
  from espnet.utils.fill_missing_args import fill_missing_args
label_desc: Use image node_id 2 to create a new Tacotron2 object from inherited base classes: TTSInterface, torch.nn with example: obj = Tacotron2(idim, odim, args)