class VADRNNJIT(Module):
  __parameters__ = []
  __buffers__ = []
  training : bool
  _is_full_backward_hook : Optional[bool]
  sample_rate : int
  adaptive_normalization : __torch__.models.stt_model_blocks.AdaptiveAudioNormalizationNew
  feature_extractor : __torch__.vad.utils.pytorch_stft.STFT
  first_layer : __torch__.torch.nn.modules.container.___torch_mangle_2.Sequential
  encoder : __torch__.torch.nn.modules.container.___torch_mangle_27.Sequential
  decoder : __torch__.vad.model.vad_annotator.VADDecoderRNNJIT
  def forward(self: __torch__.vad.model.vad_annotator.___torch_mangle_28.VADRNNJIT,
    x: Tensor,
    h: Tensor=CONSTANTS.c0,
    c: Tensor=CONSTANTS.c0) -> Tuple[Tensor, Tensor, Tensor]:
    feature_extractor = self.feature_extractor
    x0 = (feature_extractor).forward(x, )
    adaptive_normalization = self.adaptive_normalization
    norm = (adaptive_normalization).forward(x0, )
    x1 = torch.cat([x0, norm], 1)
    first_layer = self.first_layer
    x2 = (first_layer).forward(x1, )
    encoder = self.encoder
    x3 = (encoder).forward(x2, )
    decoder = self.decoder
    x4, h0, c0, = (decoder).forward(x3, h, c, )
    _0 = torch.mean(torch.squeeze(x4, 1), [1])
    out = torch.unsqueeze(_0, 1)
    return (out, h0, c0)
  def audio_forward(self: __torch__.vad.model.vad_annotator.___torch_mangle_28.VADRNNJIT,
    x: Tensor,
    num_samples: int=512) -> Tensor:
    _1 = annotate(List[Tensor], [])
    hn = torch.zeros([0])
    cn = torch.zeros([0])
    if torch.eq(torch.dim(x), 1):
      x5 = torch.unsqueeze(x, 0)
    else:
      x5 = x
    _2 = torch.remainder((torch.size(x5))[1], num_samples)
    if bool(_2):
      _3 = torch.remainder((torch.size(x5))[1], num_samples)
      pad_num = torch.sub(num_samples, _3)
      x7 = torch.pad(x5, [0, pad_num], "constant", 0.)
      x6 = x7
    else:
      x6 = x5
    _4 = torch.__range_length(0, (torch.size(x6))[1], num_samples)
    cn0 = cn
    hn0 = hn
    for _5 in range(_4):
      i = torch.__derive_index(_5, 0, num_samples)
      wavs_batch = torch.slice(torch.slice(x6), 1, i, torch.add(i, num_samples))
      _6 = (self).forward(wavs_batch, hn0, cn0, )
      out_chunk, hn1, cn1, = _6
      _7 = torch.append(_1, out_chunk)
      cn0, hn0 = cn1, hn1
    stacked = torch.cat(_1, 1)
    return torch.cpu(stacked)
