From 0f0dccd75803fd4f2c1fca533e10779adf8c460c Mon Sep 17 00:00:00 2001 From: lyblsgo Date: Wed, 10 May 2023 16:57:16 +0800 Subject: [PATCH] modify fsmn-vad --- funasr/runtime/onnxruntime/include/vad-model.h | 4 ++-- funasr/runtime/onnxruntime/src/fsmn-vad.cpp | 5 ++--- funasr/runtime/onnxruntime/src/fsmn-vad.h | 2 +- funasr/runtime/onnxruntime/src/vad-model.cpp | 8 ++++++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/funasr/runtime/onnxruntime/include/vad-model.h b/funasr/runtime/onnxruntime/include/vad-model.h index 2a8d6e4d6..e37bd976a 100644 --- a/funasr/runtime/onnxruntime/include/vad-model.h +++ b/funasr/runtime/onnxruntime/include/vad-model.h @@ -16,7 +16,7 @@ class VadModel { virtual void LoadConfigFromYaml(const char* filename)=0; virtual void FbankKaldi(float sample_rate, std::vector> &vad_feats, const std::vector &waves)=0; - virtual std::vector> &LfrCmvn(std::vector> &vad_feats)=0; + virtual void LfrCmvn(std::vector> &vad_feats)=0; virtual void Forward( const std::vector> &chunk_feats, std::vector> *out_prob)=0; @@ -24,6 +24,6 @@ class VadModel { virtual void InitCache()=0; }; -VadModel *CreateVadModel(std::map& model_path, int thread_num); +VadModel *CreateVadModel(std::map& model_path, int thread_num, int mode); } // namespace funasr #endif diff --git a/funasr/runtime/onnxruntime/src/fsmn-vad.cpp b/funasr/runtime/onnxruntime/src/fsmn-vad.cpp index 0a646f0ca..f06153498 100644 --- a/funasr/runtime/onnxruntime/src/fsmn-vad.cpp +++ b/funasr/runtime/onnxruntime/src/fsmn-vad.cpp @@ -225,7 +225,7 @@ void FsmnVad::LoadCmvn(const char *filename) } } -std::vector> &FsmnVad::LfrCmvn(std::vector> &vad_feats) { +void FsmnVad::LfrCmvn(std::vector> &vad_feats) { std::vector> out_feats; int T = vad_feats.size(); @@ -264,7 +264,6 @@ std::vector> &FsmnVad::LfrCmvn(std::vector } } vad_feats = out_feats; - return vad_feats; } std::vector> @@ -272,7 +271,7 @@ FsmnVad::Infer(const std::vector &waves) { std::vector> vad_feats; std::vector> vad_probs; FbankKaldi(vad_sample_rate_, vad_feats, waves); - vad_feats = LfrCmvn(vad_feats); + LfrCmvn(vad_feats); Forward(vad_feats, &vad_probs); E2EVadModel vad_scorer = E2EVadModel(); diff --git a/funasr/runtime/onnxruntime/src/fsmn-vad.h b/funasr/runtime/onnxruntime/src/fsmn-vad.h index 7a6707c4d..3d183f8a7 100644 --- a/funasr/runtime/onnxruntime/src/fsmn-vad.h +++ b/funasr/runtime/onnxruntime/src/fsmn-vad.h @@ -36,7 +36,7 @@ private: void FbankKaldi(float sample_rate, std::vector> &vad_feats, const std::vector &waves); - std::vector> &LfrCmvn(std::vector> &vad_feats); + void LfrCmvn(std::vector> &vad_feats); void Forward( const std::vector> &chunk_feats, diff --git a/funasr/runtime/onnxruntime/src/vad-model.cpp b/funasr/runtime/onnxruntime/src/vad-model.cpp index 764db00c9..336758f87 100644 --- a/funasr/runtime/onnxruntime/src/vad-model.cpp +++ b/funasr/runtime/onnxruntime/src/vad-model.cpp @@ -1,10 +1,14 @@ #include "precomp.h" namespace funasr { -VadModel *CreateVadModel(std::map& model_path, int thread_num) +VadModel *CreateVadModel(std::map& model_path, int thread_num, int mode) { VadModel *mm; - mm = new FsmnVad(); + if(mode == FSMN_VAD_OFFLINE){ + mm = new FsmnVad(); + }else{ + LOG(ERROR)<<"Online fsmn vad not imp!"; + } string vad_model_path; string vad_cmvn_path;