class_docstr: Use MFCCs as latent variables.
code: def compute_z(self, audio):
      mfccs = []
      for fft_size, mel_bin, mfcc_bin in zip(
          self.fft_sizes, self.mel_bins, self.mfcc_bins
      ):
          mfcc = spectral_ops.compute_mfcc(
              audio,
              lo_hz=20.0,
              hi_hz=8000.0,
              fft_size=fft_size,
              mel_bins=mel_bin,
              mfcc_bins=mfcc_bin,
          )
          mfccs.append(ddsp.core.resample(mfcc, self.time_steps))
  
      mfccs = tf.concat(mfccs, axis=-1)
  
      return self.nom_out(mfccs[:, :, tf.newaxis, :])[:, :, 0, :]
  
imports: import ddsp
  from ddsp import spectral_ops
  from ddsp.training import nn
  import gin
  import tensorflow.compat.v2
label_desc: Use image node_id 2 for calling the MfccEncoder obj's underlying member method code with example usage: obj.compute_z(audio) and returns: self