code: def create_ctc_decoder(codec, params: CTCDecoderParams = None):
      params = params or CTCDecoderParams()
      if params.type == CTCDecoderType.Default:
          from .default_ctc_decoder import DefaultCTCDecoder
  
          return DefaultCTCDecoder(params, codec)
      elif params.type == CTCDecoderType.TokenPassing:
          from .token_passing_ctc_decoder import TokenPassingCTCDecoder
  
          return TokenPassingCTCDecoder(params, codec)
      elif params.type == CTCDecoderType.WordBeamSearch:
          from .ctcwordbeamsearchdecoder import WordBeamSearchCTCDecoder
  
          return WordBeamSearchCTCDecoder(params, codec)
  
      raise NotImplemented
  
file_path: calamari/calamari_ocr/ocr/model/ctcdecoder/ctc_decoder.py
imports: from abc import ABC, abstractmethod
  from dataclasses import field, dataclass
  from typing import List
  import numpy
  from paiargparse import pai_dataclass
  from tfaip.util.enum import StrEnum
  from calamari_ocr.ocr.predict.params import Prediction, PredictionPosition, PredictionCharacter
label_desc: Use image node_id 1 for calling a global function with example usage: create_ctc_decoder(codec, params) and returns: DefaultCTCDecoder, TokenPassingCTCDecoder, WordBeamSearchCTCDecoder