code: def dct_spectrum(spec):
      
      ncep = spec.shape[0]
      dctm = np.zeros((ncep, ncep))
      for i in range(ncep):
          dctm[i, :] = np.cos(i * np.arange(1, 2 * ncep, 2) / (2 * ncep) * np.pi) * np.sqrt(2 / ncep)
      dctm *= 0.230258509299405
      cep = np.dot(dctm, (10 * np.log10(spec + np.spacing(1))))
      return cep
docs: Convert a spectrum into a cepstrum via type-III DCT (following HTK).
  
      Parameters
      ----------
      spec : array
          Spectrum to perform a DCT on.
  
      Returns
      -------
      array
          Cepstrum of the input spectrum.