wav2ftr2.m
上传用户:ay_070428
上传日期:2014-12-04
资源大小:11427k
文件大小:1k
源码类别:

语音合成与识别

开发平台:

Matlab

  1. function parameter= test1(Inwav)
  2. %This file for dll test.
  3. setparam;
  4. if isstr(Inwav),
  5. [Inwav,Fs,NBits] = wavread(Inwav);
  6. end
  7. % ====== Step 1: pre-emphasis.
  8. Inwav = filtermex([1, -0.95], Inwav);
  9. %Inwav = pre_emphasis(Inwav);
  10. % ====== Step 2: frame blocking.
  11. %Frame = enframe(Inwav, frameSize, overlap);
  12. Frame = buffermex(Inwav, frameSize, overlap);
  13. frameCount = size(Frame, 2);
  14. % ====== Step 3: edge detection.
  15. energy = sum(Frame.^2)/frameSize;
  16. index = find(energy < threshold);
  17. Frame(:, index) = [];
  18. energy(index) = [];
  19. % ====== Compute log_energy for parameter.
  20. normalize_coff = 10;
  21. log_eng = 10*log10(energy)/normalize_coff;
  22. % ====== Step 5: hamming window.
  23. Wframe  = hamm_win(Frame);
  24. % ====== Step 6: fast fourier transform and compute its abs.
  25. fft_frame = dfft2abs(Wframe);
  26. % ====== Step 7: triangular bandpass filter.
  27. TBF_coef = bandfilt(fft_frame);
  28. % Step 8: cosine transform.
  29. Cepstrum = mel_cepstrum(TBF_coef);
  30. parameter = [Cepstrum ;log_eng];
  31. %parameter = ceps_logeng(Cepstrum, log_eng, frameCount);
  32. % ====== Step 9: delta function.
  33. parameter = deltafcn(parameter);