class_docstr: Constructs a Wav2Vec2CTC tokenizer.
  
  This tokenizer inherits from [`PreTrainedTokenizer`] which contains some of the main methods. Users should refer to
  the superclass for more information regarding such methods.
  
  Args:
      vocab_file (`str`):
          File containing the vocabulary.
      bos_token (`str`, *optional*, defaults to `"<s>"`):
          The beginning of sentence token.
      eos_token (`str`, *optional*, defaults to `"</s>"`):
          The end of sentence token.
      unk_token (`str`, *optional*, defaults to `"<unk>"`):
          The unknown token. A token that is not in the vocabulary cannot be converted to an ID and is set to be this
          token instead.
      pad_token (`str`, *optional*, defaults to `"<pad>"`):
          The token used for padding, for example when batching sequences of different lengths.
      word_delimiter_token (`str`, *optional*, defaults to `"|"`):
          The token used for defining the end of a word.
      do_lower_case (`bool`, *optional*, defaults to `False`):
          Whether or not to accept lowercase input and lowercase the output when decoding.
  
      **kwargs
          Additional keyword arguments passed along to [`PreTrainedTokenizer`]
class_docstr_tok: ["Constructs","a","Wav2Vec2CTC","tokenizer",".","This","tokenizer","inherits","from","[","`","PreTrainedTokenizer","`","]","which","contains","some","of","the","main","methods",".","Users","should","refer","to","the","superclass","for","more","information","regarding","such","methods",".","Args",":","vocab_file","(","`","str","`",")",":","File","containing","the","vocabulary",".","bos_token","(","`","str","`",",","*","optional","*",",","defaults","to","`","``","<","s",">","''","`",")",":","The","beginning","of","sentence","token",".","eos_token","(","`","str","`",",","*","optional","*",",","defaults","to","`","``","<","\/s",">","''","`",")",":","The","end","of","sentence","token",".","unk_token","(","`","str","`",",","*","optional","*",",","defaults","to","`","``","<","unk",">","''","`",")",":","The","unknown","token",".","A","token","that","is","not","in","the","vocabulary","can","not","be","converted","to","an","ID","and","is","set","to","be","this","token","instead",".","pad_token","(","`","str","`",",","*","optional","*",",","defaults","to","`","``","<","pad",">","''","`",")",":","The","token","used","for","padding",",","for","example","when","batching","sequences","of","different","lengths",".","word_delimiter_token","(","`","str","`",",","*","optional","*",",","defaults","to","`","``","|","''","`",")",":","The","token","used","for","defining","the","end","of","a","word",".","do_lower_case","(","`","bool","`",",","*","optional","*",",","defaults","to","`","False","`",")",":","Whether","or","not","to","accept","lowercase","input","and","lowercase","the","output","when","decoding",".","*","*","kwargs","Additional","keyword","arguments","passed","along","to","[","`","PreTrainedTokenizer","`","]"]
docstr: Converts a connectionist-temporal-classification (CTC) output tokens into a single string.
docstr_tok: ["Converts","a","connectionist-temporal-classification","(","CTC",")","output","tokens","into","a","single","string","."]
code: def convert_tokens_to_string(
      self,
      tokens: List[str],
      group_tokens: bool = True,
      spaces_between_special_tokens: bool = False,
      output_char_offsets: bool = False,
      output_word_offsets: bool = False,
  ) -> Dict[str, Union[str, float]]:
      """
      Converts a connectionist-temporal-classification (CTC) output tokens into a single string.
      """
      if len(tokens) == 0:
          return {"text": "", "char_offsets": [], "word_offsets": []}
      # group same tokens into non-repeating tokens in CTC style decoding
      if group_tokens:
          chars, char_repetitions = zip(
              *(
                  (token, len(list(group_iter)))
                  for token, group_iter in groupby(tokens)
              )
          )
      else:
          chars = tokens
          char_repetitions = len(tokens) * [1]
  
      # filter self.pad_token which is used as CTC-blank token
      processed_chars = list(
          filter(lambda char: char != self.pad_token, chars)
      )
  
      # replace delimiter token
      processed_chars = [
          self.replace_word_delimiter_char
          if char == self.word_delimiter_token
          else char
          for char in processed_chars
      ]
  
      # retrieve offsets
      char_offsets = word_offsets = None
      if output_char_offsets or output_word_offsets:
          char_offsets = self._compute_offsets(
              char_repetitions, chars, self.pad_token
          )
  
          if len(char_offsets) != len(processed_chars):
              raise ValueError(
                  f"`char_offsets`: {char_offsets} and `processed_tokens`: {processed_chars}"
                  " have to be of the same length, but are: "
                  f"`len(offsets)`: {len(char_offsets)} and `len(processed_tokens)`:"
                  f" {len(processed_chars)}"
              )
  
          # set tokens to correct processed token
          for i, char in enumerate(processed_chars):
              char_offsets[i]["char"] = char
  
          # retrieve word offsets from character offsets
          word_offsets = None
          if output_word_offsets:
              word_offsets = self._get_word_offsets(
                  char_offsets, self.replace_word_delimiter_char
              )
  
          # don't output chars if not set to True
          if not output_char_offsets:
              char_offsets = None
  
      # join to string
      join_char = " " if spaces_between_special_tokens else ""
      string = join_char.join(processed_chars).strip()
  
      if self.do_lower_case:
          string = string.lower()
  
      return {
          "text": string,
          "char_offsets": char_offsets,
          "word_offsets": word_offsets,
      }
  
imports: import json
  import os
  import sys
  import warnings
  from dataclasses import dataclass
  from itertools import groupby
  from typing import TYPE_CHECKING, Dict, List, Optional, Tuple, Union
  import numpy
  from ...tokenization_utils import PreTrainedTokenizer, _insert_one_token_to_ordered_list
  from ...tokenization_utils_base import AddedToken, BatchEncoding
  from ...utils import ModelOutput, PaddingStrategy, TensorType, add_end_docstrings, is_flax_available, is_tf_available, is_torch_available, logging, to_py_obj
label_desc: Use image node_id 11 for calling the Wav2Vec2CTCTokenizer obj's underlying member method code with example usage: obj.convert_tokens_to_string(tokens, group_tokens, spaces_between_special_tokens, output_char_offsets, output_word_offsets) and returns: dict, dict