From 6e37612b61094e0ab08b38d35f588c2b17eae267 Mon Sep 17 00:00:00 2001
From: lyblsgo <lyblsgo@163.com>
Date: 星期二, 11 四月 2023 19:53:34 +0800
Subject: [PATCH] c++ grpc&onnxruntime support multi threads

---
 funasr/runtime/onnxruntime/src/paraformer_onnx.cpp |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/funasr/runtime/onnxruntime/src/paraformer_onnx.cpp b/funasr/runtime/onnxruntime/src/paraformer_onnx.cpp
index bb00849..f940167 100644
--- a/funasr/runtime/onnxruntime/src/paraformer_onnx.cpp
+++ b/funasr/runtime/onnxruntime/src/paraformer_onnx.cpp
@@ -18,7 +18,11 @@
     cmvn_path = pathAppend(path, "am.mvn");
     config_path = pathAppend(path, "config.yaml");
 
-    //fe = new FeatureExtract(3);
+    int fft_size = 512;
+    fft_input = (float *)fftwf_malloc(sizeof(float) * fft_size);
+    fft_out = (fftwf_complex *)fftwf_malloc(sizeof(fftwf_complex) * fft_size);
+    memset(fft_input, 0, sizeof(float) * fft_size);
+    plan = fftwf_plan_dft_r2c_1d(fft_size, fft_input, fft_out, FFTW_ESTIMATE);
 
     //sessionOptions.SetInterOpNumThreads(1);
     sessionOptions.SetIntraOpNumThreads(nNumThread);
@@ -52,8 +56,6 @@
 
 ModelImp::~ModelImp()
 {
-    //if(fe)
-    //    delete fe;
     if (m_session)
     {
         delete m_session;
@@ -61,11 +63,14 @@
     }
     if(vocab)
         delete vocab;
+    fftwf_free(fft_input);
+    fftwf_free(fft_out);
+    fftwf_destroy_plan(plan);
+    fftwf_cleanup();
 }
 
 void ModelImp::reset()
 {
-    //fe->reset();
     printf("Not Imp!!!!!!\n");
 }
 
@@ -163,7 +168,7 @@
     Tensor<float>* in;
     FeatureExtract* fe = new FeatureExtract(3);
     fe->reset();
-    fe->insert(din, len, flag);
+    fe->insert(plan, din, len, flag);
     fe->fetch(in);
     apply_lfr(in);
     apply_cmvn(in);

--
Gitblit v1.9.1