class_docstr: custom batch converter for kaldi
  :param int subsampling_factor: The subsampling factor
  :param object preprocess_conf: The preprocessing config
class_docstr_tok: ["custom","batch","converter","for","kaldi",":","param","int","subsampling_factor",":","The","subsampling","factor",":","param","object","preprocess_conf",":","The","preprocessing","config"]
docstr: Transforms a batch
  param: batch, list of (uttid, {'input': [{...}], 'output': [{...}]})
docstr_tok: ["Transforms","a","batch","param",":","batch",",","list","of","(","uttid",",","{","'input","'",":","[","{","...","}","]",",","'output","'",":","[","{","...","}","]","}",")"]
code: def __call__(self, batch):
      """Transforms a batch
      param: batch, list of (uttid, {'input': [{...}], 'output': [{...}]})
      """
      # batch should be located in list
      # list of examples
      (xs, ys), uttid_list = self.transform(
          batch
      )  # pylint: disable=invalid-name
  
      # perform subsampling
      if self.subsampling_factor > 1:
          xs = [
              x[:: self.subsampling_factor, :] for x in xs
          ]  # pylint: disable=invalid-name
  
      # get batch of lengths of input and output sequences
      ilens = [x.shape[0] for x in xs]
      olens = [y.shape[0] for y in ys]
  
      return xs, ilens, ys, olens, uttid_list
  
file_path: delta/delta/data/utils/espnet_utils.py
imports: import json
  from collections import OrderedDict
  import numpy
  from absl import logging
  from espnet.utils.cli_readers import file_reader_helper
  from espnet.utils.cli_writers import file_writer_helper
  from espnet.utils.training.batchfy import make_batchset
  from espnet.utils.io_utils import LoadInputsAndTargets
  from delta import utils
label_desc: Use image node_id 4 for calling the Converter obj's underlying member method code with example usage: obj.__call__(batch) and returns: xs,  ilens,  ys,  olens,  uttid_list