code: def extract_feature(waveforms, params):
      """waveforms: [samples, audio_channels]
      return: features, [nframes, feat_size, channels]
      """
      p = params
      with tf.variable_scope("feature_extractor"):
          mel_fbanks = extract_logfbank_with_delta(waveforms, params)
          # shape: [nframes, nbins, nchannels]
          fbank_size = utils.shape_list(mel_fbanks)
          # assert fbank_size[0] == 1
          logging.debug("fbank size : {}".format(fbank_size))
  
          # This replaces CMVN estimation on data
          if not p.audio_global_cmvn:
              mean = tf.reduce_mean(mel_fbanks, keepdims=True, axis=1)
              variance = tf.reduce_mean(
                  tf.square(mel_fbanks - mean), keepdims=True, axis=1
              )
          else:
              assert p.audio_cmvn_path
              mean, variance = utils.load_cmvn(p.audio_cmvn_path)
  
          var_epsilon = 1e-09
          mel_fbanks = utils.apply_cmvn(
              mel_fbanks, mean, variance, var_epsilon
          )
  
          # Later models like to flatten the two spatial dims. Instead, we add a
          # unit spatial dim and flatten the frequencies and channels.
          feats = tf.concat(
              [
                  tf.reshape(
                      mel_fbanks,
                      [fbank_size[0], fbank_size[1], fbank_size[2]],
                  ),
                  tf.zeros(
                      (
                          p.num_zeropad_frames,
                          fbank_size[1],
                          fbank_size[2],
                      )
                  ),
              ],
              0,
          )
      return feats
  
file_path: delta/delta/data/feat/speech_ops.py
imports: import numpy
  from absl import logging
  import delta.compat
  from tensorflow.python.ops import gen_audio_ops
  from delta import utils
  from delta.utils.hparam import HParams
  from core.ops import py_x_ops
label_desc: Use image node_id 8 for calling a global function with example usage: extract_feature(waveforms, params) and returns: feats