class_docstr: kws task 
code: def __init__(self, config, mode):
      super().__init__(config, mode)
      self.epoch = 0
      self.num = 0
      self.reader = HtkReaderIO()
  
      self.window_len = config["data"]["task"]["audio"]["window_len"]
      self.window_shift = config["data"]["task"]["audio"][
          "window_shift"
      ]
      self.cmvn_path = config["data"]["task"]["audio"]["cmvn_path"]
  
      self.left_context = config["data"]["task"]["audio"][
          "left_context"
      ]
      self.right_context = config["data"]["task"]["audio"][
          "right_context"
      ]
      self.delta_order = config["data"]["task"]["audio"]["delta_order"]
      self.delta_wind = config["data"]["task"]["audio"]["delta_wind"]
      self.splice_frame = config["data"]["task"]["audio"][
          "splice_frame"
      ]
  
      feat_dim = config["data"]["task"]["audio"]["feat_dim"]
      if self.splice_frame:
          feat_dim = config["data"]["task"]["audio"]["feat_dim"] * (
              self.left_context + 1 + self.right_context
          )
      self.final_feat_dim = feat_dim * (self.delta_order + 1)
  
      if mode == utils.TRAIN:
          self.lines = open(
              config["data"]["train"]["paths"]
          ).readlines()
      else:
          self.lines = open(config["data"]["eval"]["paths"]).readlines()
  
file_path: delta/delta/data/task/kws_cls_task.py
imports: import struct
  import numpy
  import delta.compat
  from delta import utils
  from delta.utils.register import registers
  from delta.data.task.base_speech_task import SpeechTask
  from delta.data.utils.htk_reader_lib import HtkReaderIO
label_desc: Use image node_id 1 to create a new KwsClsTask object from inherited base classes: SpeechTask with example: obj = KwsClsTask(config, mode)