code: def citrinet_rnnt_model():
      labels = list(chr(i % 28) for i in range(0, 1024))
      model_defaults = {
          "enc_hidden": 640,
          "pred_hidden": 256,
          "joint_hidden": 320,
      }
  
      preprocessor = {
          "cls": "nemo.collections.asr.modules.AudioToMelSpectrogramPreprocessor",
          "params": dict({}),
      }
      encoder = {
          "_target_": "nemo.collections.asr.modules.ConvASREncoder",
          "feat_in": 80,
          "activation": "relu",
          "conv_mask": True,
          "jasper": [
              {
                  "filters": 512,
                  "repeat": 1,
                  "kernel": [5],
                  "stride": [1],
                  "dilation": [1],
                  "dropout": 0.0,
                  "residual": False,
                  "separable": True,
                  "se": True,
                  "se_context_size": -1,
              },
              {
                  "filters": 512,
                  "repeat": 5,
                  "kernel": [11],
                  "stride": [2],
                  "dilation": [1],
                  "dropout": 0.1,
                  "residual": True,
                  "separable": True,
                  "se": True,
                  "se_context_size": -1,
                  "stride_last": True,
                  "residual_mode": "stride_add",
              },
              {
                  "filters": 512,
                  "repeat": 5,
                  "kernel": [13],
                  "stride": [1],
                  "dilation": [1],
                  "dropout": 0.1,
                  "residual": True,
                  "separable": True,
                  "se": True,
                  "se_context_size": -1,
              },
              {
                  "filters": 640,
                  "repeat": 1,
                  "kernel": [41],
                  "stride": [1],
                  "dilation": [1],
                  "dropout": 0.0,
                  "residual": True,
                  "separable": True,
                  "se": True,
                  "se_context_size": -1,
              },
          ],
      }
  
      decoder = {
          "_target_": "nemo.collections.asr.modules.RNNTDecoder",
          "prednet": {
              "pred_hidden": 256,
              "pred_rnn_layers": 1,
              "dropout": 0.0,
          },
      }
  
      joint = {
          "_target_": "nemo.collections.asr.modules.RNNTJoint",
          "fuse_loss_wer": False,
          "jointnet": {
              "joint_hidden": 320,
              "activation": "relu",
              "dropout": 0.0,
          },
      }
  
      decoding = {
          "strategy": "greedy_batch",
          "greedy": {"max_symbols": 5},
      }
  
      modelConfig = DictConfig(
          {
              "preprocessor": DictConfig(preprocessor),
              "labels": labels,
              "model_defaults": DictConfig(model_defaults),
              "encoder": DictConfig(encoder),
              "decoder": DictConfig(decoder),
              "joint": DictConfig(joint),
              "decoding": DictConfig(decoding),
          }
      )
      citri_model = EncDecRNNTModel(cfg=modelConfig)
      return citri_model
  
imports: import os
  import tempfile
  import onnx
  import pytest
  import torch.cuda
  from omegaconf import DictConfig, ListConfig, OmegaConf
  from nemo.collections.asr.models import EncDecClassificationModel, EncDecCTCModel, EncDecRNNTModel, EncDecSpeakerLabelModel
  from nemo.collections.asr.parts.utils import asr_module_utils
  from nemo.collections.common.parts.adapter_modules import LinearAdapterConfig
  from nemo.core.utils import numba_utils
  from nemo.core.utils.numba_utils import __NUMBA_MINIMUM_VERSION__
label_desc: Use image node_id 4 for calling a global function with example usage: citrinet_rnnt_model() and returns: citri_model