class_docstr: Use MFCCs as latent variables, compress to single timestep.
code: def compute_z(self, audio):
      mfccs = spectral_ops.compute_mfcc(
          audio,
          lo_hz=20.0,
          hi_hz=8000.0,
          fft_size=1024,
          mel_bins=128,
          mfcc_bins=30,
      )
      z = self.norm_in(mfccs[:, :, tf.newaxis, :])[:, :, 0, :]
  
      if self.mean_aggregate:
          z = self.rnn(z)
          z = tf.reduce_mean(z, axis=1, keepdims=True)
      else:
          z = self.rnn(z)
          z = tf.concat(z, axis=-1)[:, tf.newaxis, :]
  
      # Bounce down to compressed dimensions.
      return self.dense_z(z)
  
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 MfccRnnEncoder obj's underlying member method code with example usage: obj.compute_z(audio) and returns: self