class_docstr: Sort TEDLIUM3 samples by target length and batch to max durations.
code: def _target_length(self, fileid, line):
      transcript_path = os.path.join(
          self.base_dataset._path, "stm", fileid
      )
      with open(transcript_path + ".stm") as f:
          transcript = f.readlines()[line]
          (
              _,
              _,
              _,
              start_time,
              end_time,
              _,
              transcript,
          ) = transcript.split(" ", 6)
          if transcript.lower() == "ignore_time_segment_in_scoring\n":
              return -1
          else:
              return float(end_time) - float(start_time)
  
imports: import os
  from functools import partial
  from typing import List
  import sentencepiece
  import torch
  import torchaudio
  from common import Batch, batch_by_token_count, FunctionalModule, GlobalStatsNormalization, piecewise_linear_log, post_process_hypos, spectrogram_transform, WarmupLR
  from pytorch_lightning import LightningModule
  from torchaudio.models import emformer_rnnt_base, RNNTBeamSearch
label_desc: Use image node_id 2 for calling the CustomDataset obj's underlying member method code with example usage: obj._target_length(fileid, line) and returns: unknown, unknown