class_docstr: ASR model wrapper to perform alignment building.
  Functionality is limited to the components needed to build an alignment.
code: def predict_step(
      self, batch, batch_idx, dataloader_idx=0
  ) -> List[Tuple[int, "FrameCtmUnit"]]:
      signal, signal_len, transcript, transcript_len, sample_id = batch
  
      if isinstance(batch, DALIOutputs) and batch.has_processed_signal:
          encoded, encoded_len = self._model.forward(
              processed_signal=signal,
              processed_signal_length=signal_len,
          )[:2]
      else:
          encoded, encoded_len = self._model.forward(
              input_signal=signal, input_signal_length=signal_len
          )[:2]
  
      return self._predict_impl(
          encoded, encoded_len, transcript, transcript_len, sample_id
      )
  
imports: import copy
  import os
  from typing import Dict, List, Optional, Tuple, Union
  import numpy
  import torch
  from omegaconf import DictConfig, OmegaConf, open_dict
  from tqdm.auto import tqdm
  from nemo.collections.asr.data.audio_to_ctm_dataset import FrameCtmUnit
  from nemo.collections.asr.data.audio_to_text_dali import DALIOutputs
  from nemo.collections.asr.models.asr_model import ASRModel
  from nemo.utils import logging
label_desc: Use image node_id 14 for calling the AlignerWrapperModel obj's underlying member method code with example usage: obj.predict_step(batch, batch_idx, dataloader_idx) and returns: self