class_docstr: Used for performing CTC auto-regressive / non-auto-regressive decoding of the logprobs for subword based
  models.
  
  Args:
      decoding_cfg: A dict-like object which contains the following key-value pairs.
          strategy: str value which represents the type of decoding that can occur.
              Possible values are :
              -   greedy (for greedy decoding).
              -   beam (for DeepSpeed KenLM based decoding).
  
          compute_timestamps: A bool flag, which determines whether to compute the character/subword, or
              word based timestamp mapping the output log-probabilities to discrite intervals of timestamps.
              The timestamps will be available in the returned Hypothesis.timestep as a dictionary.
  
          ctc_timestamp_type: A str value, which represents the types of timestamps that should be calculated.
              Can take the following values - "char" for character/subword time stamps, "word" for word level
              time stamps and "all" (default), for both character level and word level time stamps.
  
          word_seperator: Str token representing the seperator between words.
  
          preserve_alignments: Bool flag which preserves the history of logprobs generated during
              decoding (sample / batched). When set to true, the Hypothesis will contain
              the non-null value for `logprobs` in it. Here, `logprobs` is a torch.Tensors.
  
          confidence_cfg: A dict-like object which contains the following key-value pairs related to confidence
              scores. In order to obtain hypotheses with confidence scores, please utilize
              `ctc_decoder_predictions_tensor` function with the `preserve_frame_confidence` flag set to True.
  
              preserve_frame_confidence: Bool flag which preserves the history of per-frame confidence scores
                  generated during decoding. When set to true, the Hypothesis will contain
                  the non-null value for `frame_confidence` in it. Here, `frame_confidence` is a List of floats.
              preserve_token_confidence: Bool flag which preserves the history of per-token confidence scores
                  generated during greedy decoding (sample / batched). When set to true, the Hypothesis will contain
                  the non-null value for `token_confidence` in it. Here, `token_confidence` is a List of floats.
  
                  The length of the list corresponds to the number of recognized tokens.
              preserve_word_confidence: Bool flag which preserves the history of per-word confidence scores
                  generated during greedy decoding (sample / batched). When set to true, the Hypothesis will contain
                  the non-null value for `word_confidence` in it. Here, `word_confidence` is a List of floats.
  
                  The length of the list corresponds to the number of recognized words.
              exclude_blank: Bool flag indicating that blank token confidence scores are to be excluded
                  from the `token_confidence`.
              aggregation: Which aggregation type to use for collapsing per-token confidence into per-word confidence.
                  Valid options are `mean`, `min`, `max`, `prod`.
              method_cfg: A dict-like object which contains the method name and settings to compute per-frame
                  confidence scores.
  
                  name: The method name (str).
                      Supported values:
                          - 'max_prob' for using the maximum token probability as a confidence.
                          - 'entropy' for using a normalized entropy of a log-likelihood vector.
  
                  entropy_type: Which type of entropy to use (str).
                      Used if confidence_method_cfg.name is set to `entropy`.
                      Supported values:
                          - 'gibbs' for the (standard) Gibbs entropy. If the alpha (α) is provided,
                              the formula is the following: H_α = -sum_i((p^α_i)*log(p^α_i)).
                              Note that for this entropy, the alpha should comply the following inequality:
                              (log(V)+2-sqrt(log^2(V)+4))/(2*log(V)) <= α <= (1+log(V-1))/log(V-1)
                              where V is the model vocabulary size.
                          - 'tsallis' for the Tsallis entropy with the Boltzmann constant one.
                              Tsallis entropy formula is the following: H_α = 1/(α-1)*(1-sum_i(p^α_i)),
                              where α is a parameter. When α == 1, it works like the Gibbs entropy.
                              More: https://en.wikipedia.org/wiki/Tsallis_entropy
                          - 'renyi' for the Rényi entropy.
                              Rényi entropy formula is the following: H_α = 1/(1-α)*log_2(sum_i(p^α_i)),
                              where α is a parameter. When α == 1, it works like the Gibbs entropy.
                              More: https://en.wikipedia.org/wiki/R%C3%A9nyi_entropy
  
                  alpha: Power scale for logsoftmax (α for entropies). Here we restrict it to be > 0.
                      When the alpha equals one, scaling is not applied to 'max_prob',
                      and any entropy type behaves like the Shannon entropy: H = -sum_i(p_i*log(p_i))
  
                  entropy_norm: A mapping of the entropy value to the interval [0,1].
                      Supported values:
                          - 'lin' for using the linear mapping.
                          - 'exp' for using exponential mapping with linear shift.
  
          batch_dim_index: Index of the batch dimension of ``targets`` and ``predictions`` parameters of
              ``ctc_decoder_predictions_tensor`` methods. Can be either 0 or 1.
  
          The config may further contain the following sub-dictionaries:
          "greedy":
              preserve_alignments: Same as above, overrides above value.
              compute_timestamps: Same as above, overrides above value.
              preserve_frame_confidence: Same as above, overrides above value.
              confidence_method_cfg: Same as above, overrides confidence_cfg.method_cfg.
  
          "beam":
              beam_size: int, defining the beam size for beam search. Must be >= 1.
                  If beam_size == 1, will perform cached greedy search. This might be slightly different
                  results compared to the greedy search above.
  
              return_best_hypothesis: optional bool, whether to return just the best hypothesis or all of the
                  hypotheses after beam search has concluded. This flag is set by default.
  
              beam_alpha: float, the strength of the Language model on the final score of a token.
                  final_score = acoustic_score + beam_alpha * lm_score + beam_beta * seq_length.
  
              beam_beta: float, the strength of the sequence length penalty on the final score of a token.
                  final_score = acoustic_score + beam_alpha * lm_score + beam_beta * seq_length.
  
              kenlm_path: str, path to a KenLM ARPA or .binary file (depending on the strategy chosen).
                  If the path is invalid (file is not found at path), will raise a deferred error at the moment
                  of calculation of beam search, so that users may update / change the decoding strategy
                  to point to the correct file.
  
      tokenizer: NeMo tokenizer object, which inherits from TokenizerSpec.
class_docstr_tok: ["Used","for","performing","CTC","auto-regressive","\/","non-auto-regressive","decoding","of","the","logprobs","for","subword","based","models",".","Args",":","decoding_cfg",":","A","dict-like","object","which","contains","the","following","key-value","pairs",".","strategy",":","str","value","which","represents","the","type","of","decoding","that","can","occur",".","Possible","values","are",":","-","greedy","(","for","greedy","decoding",")",".","-","beam","(","for","DeepSpeed","KenLM","based","decoding",")",".","compute_timestamps",":","A","bool","flag",",","which","determines","whether","to","compute","the","character\/subword",",","or","word","based","timestamp","mapping","the","output","log-probabilities","to","discrite","intervals","of","timestamps",".","The","timestamps","will","be","available","in","the","returned","Hypothesis.timestep","as","a","dictionary",".","ctc_timestamp_type",":","A","str","value",",","which","represents","the","types","of","timestamps","that","should","be","calculated",".","Can","take","the","following","values","-","``","char","''","for","character\/subword","time","stamps",",","``","word","''","for","word","level","time","stamps","and","``","all","''","(","default",")",",","for","both","character","level","and","word","level","time","stamps",".","word_seperator",":","Str","token","representing","the","seperator","between","words",".","preserve_alignments",":","Bool","flag","which","preserves","the","history","of","logprobs","generated","during","decoding","(","sample","\/","batched",")",".","When","set","to","true",",","the","Hypothesis","will","contain","the","non-null","value","for","`","logprobs","`","in","it",".","Here",",","`","logprobs","`","is","a","torch.Tensors",".","confidence_cfg",":","A","dict-like","object","which","contains","the","following","key-value","pairs","related","to","confidence","scores",".","In","order","to","obtain","hypotheses","with","confidence","scores",",","please","utilize","`","ctc_decoder_predictions_tensor","`","function","with","the","`","preserve_frame_confidence","`","flag","set","to","True",".","preserve_frame_confidence",":","Bool","flag","which","preserves","the","history","of","per-frame","confidence","scores","generated","during","decoding",".","When","set","to","true",",","the","Hypothesis","will","contain","the","non-null","value","for","`","frame_confidence","`","in","it",".","Here",",","`","frame_confidence","`","is","a","List","of","floats",".","preserve_token_confidence",":","Bool","flag","which","preserves","the","history","of","per-token","confidence","scores","generated","during","greedy","decoding","(","sample","\/","batched",")",".","When","set","to","true",",","the","Hypothesis","will","contain","the","non-null","value","for","`","token_confidence","`","in","it",".","Here",",","`","token_confidence","`","is","a","List","of","floats",".","The","length","of","the","list","corresponds","to","the","number","of","recognized","tokens",".","preserve_word_confidence",":","Bool","flag","which","preserves","the","history","of","per-word","confidence","scores","generated","during","greedy","decoding","(","sample","\/","batched",")",".","When","set","to","true",",","the","Hypothesis","will","contain","the","non-null","value","for","`","word_confidence","`","in","it",".","Here",",","`","word_confidence","`","is","a","List","of","floats",".","The","length","of","the","list","corresponds","to","the","number","of","recognized","words",".","exclude_blank",":","Bool","flag","indicating","that","blank","token","confidence","scores","are","to","be","excluded","from","the","`","token_confidence","`",".","aggregation",":","Which","aggregation","type","to","use","for","collapsing","per-token","confidence","into","per-word","confidence",".","Valid","options","are","`","mean","`",",","`","min","`",",","`","max","`",",","`","prod","`",".","method_cfg",":","A","dict-like","object","which","contains","the","method","name","and","settings","to","compute","per-frame","confidence","scores",".","name",":","The","method","name","(","str",")",".","Supported","values",":","-","'max_prob","'","for","using","the","maximum","token","probability","as","a","confidence",".","-","'entropy","'","for","using","a","normalized","entropy","of","a","log-likelihood","vector",".","entropy_type",":","Which","type","of","entropy","to","use","(","str",")",".","Used","if","confidence_method_cfg.name","is","set","to","`","entropy","`",".","Supported","values",":","-","'gibbs","'","for","the","(","standard",")","Gibbs","entropy",".","If","the","alpha","(","\u03b1",")","is","provided",",","the","formula","is","the","following",":","H_\u03b1","=","-sum_i","(","(","p^\u03b1_i",")","*","log","(","p^\u03b1_i",")",")",".","Note","that","for","this","entropy",",","the","alpha","should","comply","the","following","inequality",":","(","log","(","V",")","+2-sqrt","(","log^2","(","V",")","+4",")",")","\/","(","2","*","log","(","V",")",")","<","=","\u03b1","<","=","(","1+log","(","V-1",")",")","\/log","(","V-1",")","where","V","is","the","model","vocabulary","size",".","-","'tsallis","'","for","the","Tsallis","entropy","with","the","Boltzmann","constant","one",".","Tsallis","entropy","formula","is","the","following",":","H_\u03b1","=","1\/","(","\u03b1-1",")","*","(","1-sum_i","(","p^\u03b1_i",")",")",",","where","\u03b1","is","a","parameter",".","When","\u03b1","==","1",",","it","works","like","the","Gibbs","entropy",".","More",":","https",":","\/\/en.wikipedia.org\/wiki\/Tsallis_entropy","-","'renyi","'","for","the","R\u00e9nyi","entropy",".","R\u00e9nyi","entropy","formula","is","the","following",":","H_\u03b1","=","1\/","(","1-\u03b1",")","*","log_2","(","sum_i","(","p^\u03b1_i",")",")",",","where","\u03b1","is","a","parameter",".","When","\u03b1","==","1",",","it","works","like","the","Gibbs","entropy",".","More",":","https",":","\/\/en.wikipedia.org\/wiki\/R","%","C3","%","A9nyi_entropy","alpha",":","Power","scale","for","logsoftmax","(","\u03b1","for","entropies",")",".","Here","we","restrict","it","to","be",">","0",".","When","the","alpha","equals","one",",","scaling","is","not","applied","to","'max_prob","'",",","and","any","entropy","type","behaves","like","the","Shannon","entropy",":","H","=","-sum_i","(","p_i","*","log","(","p_i",")",")","entropy_norm",":","A","mapping","of","the","entropy","value","to","the","interval","[","0,1","]",".","Supported","values",":","-","'lin","'","for","using","the","linear","mapping",".","-","'exp","'","for","using","exponential","mapping","with","linear","shift",".","batch_dim_index",":","Index","of","the","batch","dimension","of","``","targets","``","and","``","predictions","``","parameters","of","``","ctc_decoder_predictions_tensor","``","methods",".","Can","be","either","0","or","1",".","The","config","may","further","contain","the","following","sub-dictionaries",":","``","greedy","''",":","preserve_alignments",":","Same","as","above",",","overrides","above","value",".","compute_timestamps",":","Same","as","above",",","overrides","above","value",".","preserve_frame_confidence",":","Same","as","above",",","overrides","above","value",".","confidence_method_cfg",":","Same","as","above",",","overrides","confidence_cfg.method_cfg",".","``","beam","''",":","beam_size",":","int",",","defining","the","beam","size","for","beam","search",".","Must","be",">","=","1",".","If","beam_size","==","1",",","will","perform","cached","greedy","search",".","This","might","be","slightly","different","results","compared","to","the","greedy","search","above",".","return_best_hypothesis",":","optional","bool",",","whether","to","return","just","the","best","hypothesis","or","all","of","the","hypotheses","after","beam","search","has","concluded",".","This","flag","is","set","by","default",".","beam_alpha",":","float",",","the","strength","of","the","Language","model","on","the","final","score","of","a","token",".","final_score","=","acoustic_score","+","beam_alpha","*","lm_score","+","beam_beta","*","seq_length",".","beam_beta",":","float",",","the","strength","of","the","sequence","length","penalty","on","the","final","score","of","a","token",".","final_score","=","acoustic_score","+","beam_alpha","*","lm_score","+","beam_beta","*","seq_length",".","kenlm_path",":","str",",","path","to","a","KenLM","ARPA","or",".binary","file","(","depending","on","the","strategy","chosen",")",".","If","the","path","is","invalid","(","file","is","not","found","at","path",")",",","will","raise","a","deferred","error","at","the","moment","of","calculation","of","beam","search",",","so","that","users","may","update","\/","change","the","decoding","strategy","to","point","to","the","correct","file",".","tokenizer",":","NeMo","tokenizer","object",",","which","inherits","from","TokenizerSpec","."]
code: def __init__(self, decoding_cfg, tokenizer: TokenizerSpec):
      blank_id = tokenizer.tokenizer.vocab_size
      self.tokenizer = tokenizer
  
      super().__init__(decoding_cfg=decoding_cfg, blank_id=blank_id)
  
      # Finalize Beam Search Decoding framework
      if isinstance(
          self.decoding, ctc_beam_decoding.AbstractBeamCTCInfer
      ):
          if hasattr(self.tokenizer.tokenizer, "get_vocab"):
              vocab_dict = self.tokenizer.tokenizer.get_vocab()
              if isinstance(
                  self.tokenizer.tokenizer, DummyTokenizer
              ):  # AggregateTokenizer.DummyTokenizer
                  vocab = vocab_dict
              else:
                  vocab = list(vocab_dict.keys())
              self.decoding.set_vocabulary(vocab)
              self.decoding.set_tokenizer(tokenizer)
          else:
              logging.warning(
                  "Could not resolve the vocabulary of the tokenizer !"
              )
  
          self.decoding.set_decoding_type("subword")
  
imports: import re
  from abc import abstractmethod
  from dataclasses import dataclass, field, is_dataclass
  from typing import Callable, Dict, List, Optional, Tuple, Union
  import numpy
  import torch
  from omegaconf import DictConfig, OmegaConf
  from nemo.collections.asr.parts.submodules import ctc_beam_decoding, ctc_greedy_decoding
  from nemo.collections.asr.parts.utils.asr_confidence_utils import ConfidenceConfig, ConfidenceMixin
  from nemo.collections.asr.parts.utils.rnnt_utils import Hypothesis, NBestHypotheses
  from nemo.collections.common.tokenizers.aggregate_tokenizer import DummyTokenizer
  from nemo.collections.common.tokenizers.tokenizer_spec import TokenizerSpec
  from nemo.utils import logging, logging_mode
label_desc: Use image node_id 1 to create a new CTCBPEDecoding object from inherited base classes: AbstractCTCDecoding with example: obj = CTCBPEDecoding(decoding_cfg, tokenizer)