class_docstr: Base class for hybrid RNNT/CTC models.
class_docstr_tok: ["Base","class","for","hybrid","RNNT\/CTC","models","."]
code: def predict_step(self, batch, batch_idx, dataloader_idx=0):
      # TODO: add support for CTC decoding
      signal, signal_len, transcript, transcript_len, sample_id = batch
  
      # forward() only performs encoder forward
      encoded, encoded_len = self.forward(
          input_signal=signal, input_signal_length=signal_len
      )
      del signal
  
      (
          best_hyp_text,
          all_hyp_text,
      ) = self.decoding.rnnt_decoder_predictions_tensor(
          encoder_output=encoded,
          encoded_lengths=encoded_len,
          return_hypotheses=False,
      )
  
      sample_id = sample_id.cpu().detach().numpy()
      return list(zip(sample_id, best_hyp_text))
  
imports: import copy
  import json
  import os
  import tempfile
  from typing import List, Optional
  import torch
  from omegaconf import DictConfig, OmegaConf, open_dict
  from pytorch_lightning import Trainer
  from tqdm.auto import tqdm
  from nemo.collections.asr.losses.ctc import CTCLoss
  from nemo.collections.asr.metrics.wer import WER
  from nemo.collections.asr.parts.mixins import ASRBPEMixin, InterCTCMixin
  from nemo.collections.asr.parts.submodules.ctc_decoding import CTCDecoding, CTCDecodingConfig
  from nemo.collections.asr.parts.utils.audio_utils import ChannelSelectorType
  from nemo.collections.multimodal.speech_cv.models.visual_rnnt_models import VisualEncDecRNNTModel
  from nemo.core.classes.common import PretrainedModelInfo
  from nemo.core.classes.mixins import AccessMixin
  from nemo.utils import logging, model_utils
label_desc: Use image node_id 6 for calling the VisualEncDecHybridRNNTCTCModel obj's underlying member method code with example usage: obj.predict_step(batch, batch_idx, dataloader_idx) and returns: list