class_docstr: Emotion Task 
docstr: collect *.wav under `paths` and generate *.npy,
     withoud consider segments file
  filelist: paths: list, path of wav data
docstr_tok: ["collect","*",".wav","under","`","paths","`","and","generate","*",".npy",",","withoud","consider","segments","file","filelist",":","paths",":","list",",","path","of","wav","data"]
code: def generate_feat(self, filelist, dry_run=False):
      """
      collect *.wav under `paths` and generate *.npy,
         withoud consider segments file
      filelist: paths: list, path of wav data
      """
      featconf = (
          self.taskconf["audio"].update({"dry_run": dry_run})
          if dry_run
          else self.taskconf["audio"]
      )
      logging.debug("feat config: {}".format(featconf))
  
      files = []
      threads = []
      for data_path in filelist:
          for root, dirname, filenames in os.walk(data_path):
              del dirname
              for filename in filenames:
                  if filename.endswith(".wav"):
                      filename = os.path.join(root, filename)
                      files.append(filename)
  
          if self._feature_type == "tffeat":
              func = feat_lib.extract_feature
              featconf.update({"feature_name": self._feature_name})
          elif self._feature_type == "pyfeat":
              func = feat_lib.extract_feat
          else:
              raise ValueError(
                  "Not support feat: {}".format(self._feature_type)
              )
  
          # pylint: disable=invalid-name
          t = threading.Thread(
              target=func,
              args=tuple(files),
              kwargs=featconf,
              daemon=True,
          )
          threads.append(t)
          t.start()
          files = []
  
      for t in threads:  # pylint: disable=invalid-name
          t.join()
      logging.info("generate feature done")
  
imports: import re
  import ast
  import os
  import copy
  import threading
  import itertools
  import functools
  import random
  from collections import defaultdict
  import librosa
  import numpy
  import pandas
  import delta.compat
  from absl import logging
  from sklearn.model_selection import train_test_split
  from delta import utils
  from delta.data import feat
  from delta.utils.register import registers
  from delta.data.task.base_speech_task import SpeechTask
label_desc: Use image node_id 13 for calling the SpeechClsTask obj's underlying member method code with example usage: obj.generate_feat(filelist, dry_run) without return types