class_docstr: test speech feat ops
class_docstr_tok: ["test","speech","feat","ops"]
docstr: test spectrogram op 
docstr_tok: ["test","spectrogram","op"]
code: def test_powspec_feat(self):
      """test spectrogram op"""
      with self.cached_session(use_gpu=False, force_gpu=False):
          wavfile = tf.constant(self.wavpath)
          # read wav
          audio, sample_rate = tffeat.read_wav(wavfile, self.hp)
          del sample_rate
          # spectorgram
          spectrogram = tffeat.powspec_feat(
              audio,
              sr=self.sr_true,
              nfft=None,
              winlen=self.hp.audio_frame_length,
              winstep=self.hp.audio_frame_step,
              lowfreq=self.hp.audio_lower_edge_hertz,
              highfreq=self.hp.audio_upper_edge_hertz,
              preemph=self.hp.audio_preemphasis,
          )
  
          nfft = (
              int(np.log2(self.hp.audio_frame_length * self.sr_true))
              + 1
          )
          nfft = 1 << nfft
          self.assertEqual(
              spectrogram.eval().shape, (1, 11, int(nfft / 2 + 1))
          )
  
file_path: delta/delta/data/feat/speech_ops_test.py
imports: import os
  from pathlib import Path
  import numpy
  import delta.compat
  from absl import logging
  from delta.data.feat.speech_feature import load_wav
  from delta.data.feat import speech_ops
  from delta import PACKAGE_ROOT_DIR
label_desc: Use image node_id 3 for calling the SpeechOpsFeatTest obj's underlying member method code with example usage: obj.test_powspec_feat() without return types