From dc8a0445d5460af16e9926a492a85da592f224bb Mon Sep 17 00:00:00 2001
From: lyblsgo <lyblsgo@163.com>
Date: 星期二, 11 四月 2023 20:00:13 +0800
Subject: [PATCH] fix bug: msg.c_str
---
funasr/runtime/onnxruntime/src/FeatureExtract.cpp | 20 ++++++--------------
1 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/funasr/runtime/onnxruntime/src/FeatureExtract.cpp b/funasr/runtime/onnxruntime/src/FeatureExtract.cpp
index 1b0c3c4..e8bfc8e 100644
--- a/funasr/runtime/onnxruntime/src/FeatureExtract.cpp
+++ b/funasr/runtime/onnxruntime/src/FeatureExtract.cpp
@@ -5,14 +5,10 @@
FeatureExtract::FeatureExtract(int mode) : mode(mode)
{
- fftw_init();
}
FeatureExtract::~FeatureExtract()
{
- fftwf_free(fft_input);
- fftwf_free(fft_out);
- fftwf_destroy_plan(p);
}
void FeatureExtract::reset()
@@ -26,23 +22,18 @@
return fqueue.size();
}
-void FeatureExtract::fftw_init()
+void FeatureExtract::insert(fftwf_plan plan, float *din, int len, int flag)
{
int fft_size = 512;
- fft_input = (float *)fftwf_malloc(sizeof(float) * fft_size);
- fft_out = (fftwf_complex *)fftwf_malloc(sizeof(fftwf_complex) * fft_size);
+ float* fft_input = (float *)fftwf_malloc(sizeof(float) * fft_size);
+ fftwf_complex* fft_out = (fftwf_complex *)fftwf_malloc(sizeof(fftwf_complex) * fft_size);
memset(fft_input, 0, sizeof(float) * fft_size);
- p = fftwf_plan_dft_r2c_1d(fft_size, fft_input, fft_out, FFTW_ESTIMATE);
-}
-void FeatureExtract::insert(float *din, int len, int flag)
-{
const float *window = (const float *)&window_hex;
if (mode == 3)
window = (const float *)&window_hamm_hex;
int window_size = 400;
- int fft_size = 512;
int window_shift = 160;
speech.load(din, len);
@@ -70,7 +61,7 @@
pre_val = cur_val;
}
- fftwf_execute(p);
+ fftwf_execute_dft_r2c(plan, fft_input, fft_out);
melspect((float *)fft_out, tmp_feature);
int tmp_flag = S_MIDDLE;
@@ -80,6 +71,8 @@
fqueue.push(tmp_feature, tmp_flag);
}
speech.update(i);
+ fftwf_free(fft_input);
+ fftwf_free(fft_out);
}
bool FeatureExtract::fetch(Tensor<float> *&dout)
@@ -128,7 +121,6 @@
void FeatureExtract::melspect(float *din, float *dout)
{
float fftmag[256];
-// float tmp;
const float *melcoe = (const float *)melcoe_hex;
int i;
for (i = 0; i < 256; i++) {
--
Gitblit v1.9.1