fs=16000; type=0; % set MEL band spacing and shape [y, jout] = module_dftmsq(x, 0); [w,jout] = module_mel_bank(y,jout,Nc,'spa',type,fs); [z,jout] = module_log(w, jout, [1:Nc]); z=dct(z);We do not recommend DCT truncation. This chain can be inverted using:
fs=16000; type=0; % set MEL band spacing and shape z=idct(z); w=exp(z); y = module_mel_bank_synth(w,N,'maxent',type,fs); x = module_dftmsq_synth(y, N);
For potentially better performance, but slightly more computation, there is the ML version:
fs=16000; type=0; % set MEL band spacing and shape [y, jout] = module_dftmsq(x, 0); [w,jout] = module_mel_ml(y,jout,Nc,type,fs,0); [z,jout] = module_log(w, jout, [1:Nc]); z=dct(z);which can be inverted using:
fs=16000; type=0; % set MEL band spacing and shape z=idct(z); w=exp(z); y = module_mel_ml_synth(w,N,type,fs); x = module_dftmsq_synth(y, N);