45 lines
931 B
Python
Executable File
45 lines
931 B
Python
Executable File
import cmsisdsp as dsp
|
|
import numpy as np
|
|
import cmsisdsp.fixedpoint as f
|
|
import cmsisdsp.mfcc as mfcc
|
|
import scipy.signal as sig
|
|
from mfccdebugdata import *
|
|
from cmsisdsp.datatype import F32
|
|
|
|
|
|
mfccf32=dsp.arm_mfcc_instance_f32()
|
|
|
|
sample_rate = 16000
|
|
FFTSize = 256
|
|
numOfDctOutputs = 13
|
|
|
|
freq_min = 64
|
|
freq_high = sample_rate / 2
|
|
numOfMelFilters = 20
|
|
|
|
window = sig.hamming(FFTSize, sym=False)
|
|
|
|
filtLen,filtPos,packedFilters = mfcc.melFilterMatrix(F32,freq_min, freq_high, numOfMelFilters,sample_rate,FFTSize)
|
|
|
|
|
|
dctMatrixFilters = mfcc.dctMatrix(F32,numOfDctOutputs, numOfMelFilters)
|
|
|
|
|
|
|
|
|
|
status=dsp.arm_mfcc_init_f32(mfccf32,FFTSize,numOfMelFilters,numOfDctOutputs,dctMatrixFilters,
|
|
filtPos,filtLen,packedFilters,window)
|
|
print(status)
|
|
|
|
tmp=np.zeros(FFTSize + 2)
|
|
|
|
res=dsp.arm_mfcc_f32(mfccf32,debug,tmp)
|
|
|
|
print(res)
|
|
|
|
print(ref)
|
|
|
|
print(mfccf32.fftLen())
|
|
print(mfccf32.nbMelFilters())
|
|
print(mfccf32.nbDctOutputs())
|