RMUL2025/lib/cmsis_5/CMSIS/DSP/PythonWrapper/examples/testmfcc.py

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())