class_docstr: ASR Task 
class_docstr_tok: ["ASR","Task"]
docstr: :return: feat, feat_len, target, terget_len
docstr_tok: [":","return",":","feat",",","feat_len",",","target",",","terget_len"]
code: def generate_data(self):  # pylint: disable=too-many-locals
      """
      :return: feat, feat_len, target, terget_len
      """
      if self.batch_mode:
          for batch in self.batches:
              (
                  batch_uttid,
                  batch_feat,
                  ilens,
                  batch_target,
                  olens,
              ) = self._process_batch(batch)
              yield batch_uttid, batch_feat, ilens, batch_target, olens
      else:
          for batch in self.batches:
              srcs, ilens, tgts, olens, uttid_list = self.converter(
                  batch
              )
              for i in range(len(srcs)):
                  yield uttid_list[i], srcs[i], ilens[i], tgts[
                      i
                  ], olens[i]
  
imports: import numpy
  import delta.compat
  from absl import logging
  from delta import utils
  from delta.data.utils import espnet_utils
  from delta.utils.register import registers
  from delta.data.task.base_speech_task import SpeechTask
label_desc: Use image node_id 12 for calling the AsrSeqTask obj's underlying member method code with example usage: obj.generate_data() without return types