testmfcc.py 931 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import cmsisdsp as dsp
  2. import numpy as np
  3. import cmsisdsp.fixedpoint as f
  4. import cmsisdsp.mfcc as mfcc
  5. import scipy.signal as sig
  6. from mfccdebugdata import *
  7. from cmsisdsp.datatype import F32
  8. mfccf32=dsp.arm_mfcc_instance_f32()
  9. sample_rate = 16000
  10. FFTSize = 256
  11. numOfDctOutputs = 13
  12. freq_min = 64
  13. freq_high = sample_rate / 2
  14. numOfMelFilters = 20
  15. window = sig.hamming(FFTSize, sym=False)
  16. filtLen,filtPos,packedFilters = mfcc.melFilterMatrix(F32,freq_min, freq_high, numOfMelFilters,sample_rate,FFTSize)
  17. dctMatrixFilters = mfcc.dctMatrix(F32,numOfDctOutputs, numOfMelFilters)
  18. status=dsp.arm_mfcc_init_f32(mfccf32,FFTSize,numOfMelFilters,numOfDctOutputs,dctMatrixFilters,
  19. filtPos,filtLen,packedFilters,window)
  20. print(status)
  21. tmp=np.zeros(FFTSize + 2)
  22. res=dsp.arm_mfcc_f32(mfccf32,debug,tmp)
  23. print(res)
  24. print(ref)
  25. print(mfccf32.fftLen())
  26. print(mfccf32.nbMelFilters())
  27. print(mfccf32.nbDctOutputs())