code: def __init__(
      self,
      tacotron_model_path: str,
      tacotron_dict_path: str,
      waveglow_path: str,
      max_decoder_steps: int = 2000,
      denoiser_strength: float = 0.1,
  ):
      super().__init__()
      self.max_decoder_steps = max_decoder_steps
      self.denoiser_strength = denoiser_strength
      (
          self.tacotron_model,
          self.tacotron_sample_rate,
          self.tacotron_hparams,
      ) = load_tacotron(
          tacotron_model_path=tacotron_model_path,
          code_dict_path=tacotron_dict_path,
          max_decoder_steps=self.max_decoder_steps,
      )
      (
          self.waveglow_model,
          self.denoiser_model,
      ) = load_waveglow_standalone(
          waveglow_path=waveglow_path,
      )
      self.tts_dataset = TacotronInputDataset(self.tacotron_hparams)
      self.register_buffer(
          "_float_tensor", torch.tensor([0], dtype=torch.float)
      )
  
file_path: textlesslib/textless/vocoders/tacotron2/vocoder.py
imports: import torch.nn
  import torch
  from .tts_data import TacotronInputDataset
  from .model import Tacotron2
  from .glow import WaveGlow
  from .waveglow_denoiser import Denoiser
  from textless.checkpoint_manager import CHECKPOINT_MANAGER
  from typing import Union
label_desc: Use image node_id 1 to create a new TacotronVocoder object from inherited base classes: nn with example: obj = TacotronVocoder(tacotron_model_path, tacotron_dict_path, waveglow_path, max_decoder_steps, denoiser_strength)