class_docstr: Dataset that loads tensors via a json file containing paths to audio feature
  files, transcripts, durations (in seconds) and optional RTTM files. Each new line is a
  different sample. Example below:
  {"feature_filepath": "/path/to/audio_feature.pt", "text_filepath":
  "/path/to/audio.txt", "duration": 23.147, "rttm_filepath": "/path/to/audio_rttm.rttm",}
  ...
  {"feature_filepath": "/path/to/audio_feature.pt", "text": "the
  transcription", "offset": 301.75, "duration": 0.82, "utt":
  "utterance_id", "ctm_utt": "en_4156", "side": "A"}
  
  Args:
      manifest_filepath (str): Path to manifest json as described above. Can
          be comma-separated paths.
      labels (str): String containing all the possible characters to map to
      normalize (str): how to normalize feature, must be one of [None, "post_norm", "pre_norm"]
      normalize_type (Union[str, dict]): how to normalize feature, see `nemo.collections.asr.parts.preprocessing.features.normalize_batch`
      use_rttm (bool): whether to use RTTM files if there is any, default to False
      rttm_mode (str): how to use RTTM files, must be one of ['mask', 'drop'], default to 'mask'
      feat_min_len (int): minimum length of feature, default to 4
      feat_mask_val (Optional[float]): value used to mask features with RTTM files, default to None to use zero mel-spectralgram
      frame_unit_time_secs: time in seconds for each frame
      sample_rate (int): Sample rate to resample loaded audio to
      int_values (bool): If true, load samples as 32-bit integers. Defauts to False.
      augmentor (nemo.collections.asr.parts.perturb.AudioAugmentor): An AudioAugmentor
          object used to augment loaded audio
      max_duration: If audio exceeds this length, do not include in dataset
      min_duration: If audio is less than this length, do not include
          in dataset
      max_utts: Limit number of utterances
      blank_index: blank character index, default = -1
      unk_index: unk_character index, default = -1
      bos_id: Id of beginning of sequence symbol to append if not None
      eos_id: Id of end of sequence symbol to append if not None
      return_sample_id (bool): whether to return the sample_id as a part of each sample
      channel_selector (int | Iterable[int] | str): select a single channel or a subset of channels from multi-channel audio. If set to `'average'`, it performs averaging across channels. Disabled if set to `None`. Defaults to `None`. Uses zero-based indexing.
code: def __init__(
      self,
      manifest_filepath: str,
      labels: Union[str, List[str]],
      normalize: Optional[str] = "post_norm",
      normalize_type: Union[str, dict] = "per_feature",
      use_rttm: bool = False,
      rttm_mode: str = "mask",
      feat_min_len: int = 4,
      feat_mask_val: Optional[float] = None,
      frame_unit_time_secs: float = 0.01,
      sample_rate: Optional[int] = 16000,
      augmentor: "nemo.collections.asr.parts.perturb.FeatureAugmentor" = None,
      max_duration: Optional[int] = None,
      min_duration: Optional[int] = None,
      max_utts: int = 0,
      blank_index: int = -1,
      unk_index: int = -1,
      trim: bool = False,
      bos_id: Optional[int] = None,
      eos_id: Optional[int] = None,
      pad_id: int = 0,
      parser: Union[str, Callable] = "en",
      return_sample_id: bool = False,
      channel_selector: Optional[ChannelSelectorType] = None,
  ):
      self.labels = labels
  
      parser = parsers.make_parser(
          labels=labels,
          name=parser,
          unk_id=unk_index,
          blank_id=blank_index,
          do_normalize=normalize,
      )
  
      super().__init__(
          manifest_filepath=manifest_filepath,
          parser=parser,
          normalize=normalize,
          normalize_type=normalize_type,
          use_rttm=use_rttm,
          rttm_mode=rttm_mode,
          feat_min_len=feat_min_len,
          feat_mask_val=feat_mask_val,
          frame_unit_time_secs=frame_unit_time_secs,
          sample_rate=sample_rate,
          augmentor=augmentor,
          max_duration=max_duration,
          min_duration=min_duration,
          max_utts=max_utts,
          trim=trim,
          bos_id=bos_id,
          eos_id=eos_id,
          pad_id=pad_id,
          return_sample_id=return_sample_id,
          channel_selector=channel_selector,
      )
  
imports: from typing import Callable, Dict, List, Optional, Tuple, Union
  import torch
  from nemo.collections.asr.data.feature_to_label import _audio_feature_collate_fn
  from nemo.collections.asr.parts.preprocessing.feature_loader import ExternalFeatureLoader
  from nemo.collections.asr.parts.preprocessing.features import normalize_batch
  from nemo.collections.asr.parts.utils.audio_utils import ChannelSelectorType
  from nemo.collections.asr.parts.utils.vad_utils import load_speech_segments_from_rttm
  from nemo.collections.common import tokenizers
  from nemo.collections.common.parts.preprocessing import collections, parsers
  from nemo.core.classes import Dataset
  from nemo.core.neural_types import AcousticEncodedRepresentation, LabelsType, LengthsType, NeuralType
label_desc: Use image node_id 1 to create a new FeatureToCharDataset object from inherited base classes: _FeatureTextDataset with example: obj = FeatureToCharDataset(manifest_filepath, labels, normalize, normalize_type, use_rttm, rttm_mode, feat_min_len, feat_mask_val, frame_unit_time_secs, sample_rate, augmentor, max_duration, min_duration, max_utts, blank_index, unk_index, trim, bos_id, eos_id, pad_id, parser, return_sample_id, channel_selector)