class_docstr: Base class for encoder decoder RNNT-based models.
docstr: Forward pass of the model. Note that for RNNT Models, the forward pass of the model is a 3 step process,
  and this method only performs the first step - forward of the acoustic/visual model.
  
  Please refer to the `training_step` in order to see the full `forward` step for training - which
  performs the forward of the acoustic model, the prediction network and then the joint network.
  Finally, it computes the loss and possibly compute the detokenized text via the `decoding` step.
  
  Please refer to the `validation_step` in order to see the full `forward` step for inference - which
  performs the forward of the acoustic model, the prediction network and then the joint network.
  Finally, it computes the decoded tokens via the `decoding` step and possibly compute the batch metrics.
  
  Args:
      input_signal: Tensor that represents a batch of video signals,
          of shape [B, T, H, W, C]. T here represents timesteps, H height, W width and C channels
      input_signal_length: Vector of length B, that contains the individual lengths of the video
          sequences.
  
  Returns:
      A tuple of 2 elements -
      1) The log probabilities tensor of shape [B, T, D].
      2) The lengths of the acoustic sequence after propagation through the encoder, of shape [B].
docstr_tok: ["Forward","pass","of","the","model",".","Note","that","for","RNNT","Models",",","the","forward","pass","of","the","model","is","a","3","step","process",",","and","this","method","only","performs","the","first","step","-","forward","of","the","acoustic\/visual","model",".","Please","refer","to","the","`","training_step","`","in","order","to","see","the","full","`","forward","`","step","for","training","-","which","performs","the","forward","of","the","acoustic","model",",","the","prediction","network","and","then","the","joint","network",".","Finally",",","it","computes","the","loss","and","possibly","compute","the","detokenized","text","via","the","`","decoding","`","step",".","Please","refer","to","the","`","validation_step","`","in","order","to","see","the","full","`","forward","`","step","for","inference","-","which","performs","the","forward","of","the","acoustic","model",",","the","prediction","network","and","then","the","joint","network",".","Finally",",","it","computes","the","decoded","tokens","via","the","`","decoding","`","step","and","possibly","compute","the","batch","metrics",".","Args",":","input_signal",":","Tensor","that","represents","a","batch","of","video","signals",",","of","shape","[","B",",","T",",","H",",","W",",","C","]",".","T","here","represents","timesteps",",","H","height",",","W","width","and","C","channels","input_signal_length",":","Vector","of","length","B",",","that","contains","the","individual","lengths","of","the","video","sequences",".","Returns",":","A","tuple","of","2","elements","-","1",")","The","log","probabilities","tensor","of","shape","[","B",",","T",",","D","]",".","2",")","The","lengths","of","the","acoustic","sequence","after","propagation","through","the","encoder",",","of","shape","[","B","]","."]
code: def forward(self, input_signal=None, input_signal_length=None):
      """
      Forward pass of the model. Note that for RNNT Models, the forward pass of the model is a 3 step process,
      and this method only performs the first step - forward of the acoustic/visual model.
  
      Please refer to the `training_step` in order to see the full `forward` step for training - which
      performs the forward of the acoustic model, the prediction network and then the joint network.
      Finally, it computes the loss and possibly compute the detokenized text via the `decoding` step.
  
      Please refer to the `validation_step` in order to see the full `forward` step for inference - which
      performs the forward of the acoustic model, the prediction network and then the joint network.
      Finally, it computes the decoded tokens via the `decoding` step and possibly compute the batch metrics.
  
      Args:
          input_signal: Tensor that represents a batch of video signals,
              of shape [B, T, H, W, C]. T here represents timesteps, H height, W width and C channels
          input_signal_length: Vector of length B, that contains the individual lengths of the video
              sequences.
  
      Returns:
          A tuple of 2 elements -
          1) The log probabilities tensor of shape [B, T, D].
          2) The lengths of the acoustic sequence after propagation through the encoder, of shape [B].
      """
  
      # Preprocessing
      (
          processed_video_signal,
          processed_video_signal_length,
      ) = self.video_preprocessor(
          input_signal=input_signal, length=input_signal_length
      )
  
      # Augmentation
      processed_video_signal = self.video_augmentation(
          input_signal=processed_video_signal,
          length=processed_video_signal_length,
      )
  
      # Front-end Networks
      (
          processed_video_signal,
          processed_video_signal_length,
      ) = self.video_front_end(
          input_signal=processed_video_signal,
          length=processed_video_signal_length,
      )
  
      # Back-end Networks
      encoded, encoded_len = self.encoder(
          audio_signal=processed_video_signal,
          length=processed_video_signal_length,
      )
  
      return encoded, encoded_len
  
imports: import copy
  import json
  import os
  import tempfile
  from math import ceil
  from typing import Dict, List, Optional, Tuple, Union
  import torch
  from omegaconf import DictConfig, OmegaConf, open_dict
  from pytorch_lightning import Trainer
  from tqdm.auto import tqdm
  from nemo.collections.asr.data import audio_to_text_dataset
  from nemo.collections.asr.losses.rnnt import RNNTLoss, resolve_rnnt_default_loss_name
  from nemo.collections.asr.metrics.wer import WER
  from nemo.collections.asr.models.asr_model import ASRModel
  from nemo.collections.asr.modules.rnnt import RNNTDecoderJoint
  from nemo.collections.asr.parts.mixins import ASRModuleMixin
  from nemo.collections.asr.parts.submodules.rnnt_decoding import RNNTDecoding, RNNTDecodingConfig
  from nemo.collections.asr.parts.utils.audio_utils import ChannelSelectorType
  from nemo.collections.multimodal.speech_cv.data import video_to_text_dataset
  from nemo.core.classes import Exportable
  from nemo.core.classes.common import PretrainedModelInfo, typecheck
  from nemo.core.classes.mixins import AccessMixin
  from nemo.core.neural_types import AcousticEncodedRepresentation, LengthsType, NeuralType, VideoSignal
  from nemo.utils import logging
label_desc: Use image node_id 13 for calling the VisualEncDecRNNTModel obj's underlying member method code with example usage: obj.forward(input_signal, input_signal_length) and returns: encoded,  encoded_len