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