code: def make_kenlm(kenlm_bin_path: str, ngram_arpa: str, force: bool):
      """
      Builds a language model from an ARPA format file using the KenLM toolkit.
  
      Args:
      - kenlm_bin_path (str): The path to the KenLM toolkit binary.
      - ngram_arpa (str): The path to the ARPA format file.
      - force (bool): If True, the KenLM language model will be generated even if it already exists.
  
      Raises:
      - AssertionError: If the shell command execution returns a non-zero exit code.
      - FileNotFoundError: If the KenLM binary or ARPA format file does not exist.
      """
      ngram_kenlm = ngram_arpa + ".kenlm"
      if os.path.isfile(ngram_kenlm) and not force:
          logging.info("File " + ngram_kenlm + " exists. Skipping.")
          return None
      else:
          sh_args = [
              os.path.join(kenlm_bin_path, "build_binary"),
              "trie",
              "-i",
              ngram_arpa,
              ngram_kenlm,
          ]
          return subprocess.run(
              sh_args,
              capture_output=False,
              text=True,
              stdout=sys.stdout,
              stderr=sys.stderr,
          )
  
imports: import argparse
  import os
  import subprocess
  import sys
  from typing import Tuple
  import kenlm_utils
  import torch
  import nemo.collections.asr
  from nemo.collections.asr.modules.rnnt import RNNTDecoder
  from nemo.collections.asr.parts.submodules.ctc_beam_decoding import DEFAULT_TOKEN_OFFSET
  from nemo.utils import logging
label_desc: Use image node_id 2 for calling a global function with example usage: make_kenlm(kenlm_bin_path, ngram_arpa, force) and returns: None, subprocess