class_docstr: Use MFCCs as latent variables, distribute across timesteps.
code: def compute_z(self, audio):
      mfccs = spectral_ops.compute_mfcc(
          audio,
          lo_hz=20.0,
          hi_hz=8000.0,
          fft_size=self.fft_size,
          mel_bins=128,
          mfcc_bins=30,
          overlap=self.overlap,
          pad_end=True,
      )
  
      # Normalize.
      z = self.z_norm(mfccs[:, :, tf.newaxis, :])[:, :, 0, :]
      # Run an RNN over the latents.
      z = self.rnn(z)
      # Bounce down to compressed z dimensions.
      z = self.dense_out(z)
      return 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 MfccTimeDistributedRnnEncoder obj's underlying member method code with example usage: obj.compute_z(audio) and returns: z