From d29ed02c569de40ceb23861fe95a0e1c24b0b514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=BE=E8=81=AA?= Date: Wed, 17 May 2023 15:50:43 +0800 Subject: [PATCH] fix fbank input --- funasr/runtime/onnxruntime/include/vad-model.h | 8 ++------ funasr/runtime/onnxruntime/src/fsmn-vad.h | 4 ++-- funasr/runtime/onnxruntime/src/paraformer.cpp | 6 +++++- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/funasr/runtime/onnxruntime/include/vad-model.h b/funasr/runtime/onnxruntime/include/vad-model.h index e37bd976a..b1b1e9dbc 100644 --- a/funasr/runtime/onnxruntime/include/vad-model.h +++ b/funasr/runtime/onnxruntime/include/vad-model.h @@ -11,15 +11,11 @@ class VadModel { public: virtual ~VadModel(){}; virtual void InitVad(const std::string &vad_model, const std::string &vad_cmvn, const std::string &vad_config, int thread_num)=0; - virtual std::vector> Infer(const std::vector &waves)=0; + virtual std::vector> Infer(std::vector &waves, bool input_finished=true)=0; virtual void ReadModel(const char* vad_model)=0; virtual void LoadConfigFromYaml(const char* filename)=0; virtual void FbankKaldi(float sample_rate, std::vector> &vad_feats, - const std::vector &waves)=0; - virtual void LfrCmvn(std::vector> &vad_feats)=0; - virtual void Forward( - const std::vector> &chunk_feats, - std::vector> *out_prob)=0; + std::vector &waves)=0; virtual void LoadCmvn(const char *filename)=0; virtual void InitCache()=0; }; diff --git a/funasr/runtime/onnxruntime/src/fsmn-vad.h b/funasr/runtime/onnxruntime/src/fsmn-vad.h index 3d183f8a7..a8ec4ce90 100644 --- a/funasr/runtime/onnxruntime/src/fsmn-vad.h +++ b/funasr/runtime/onnxruntime/src/fsmn-vad.h @@ -21,7 +21,7 @@ public: ~FsmnVad(); void Test(); void InitVad(const std::string &vad_model, const std::string &vad_cmvn, const std::string &vad_config, int thread_num); - std::vector> Infer(const std::vector &waves); + std::vector> Infer(std::vector &waves, bool input_finished=true); void Reset(); private: @@ -34,7 +34,7 @@ private: std::vector *in_names, std::vector *out_names); void FbankKaldi(float sample_rate, std::vector> &vad_feats, - const std::vector &waves); + std::vector &waves); void LfrCmvn(std::vector> &vad_feats); diff --git a/funasr/runtime/onnxruntime/src/paraformer.cpp b/funasr/runtime/onnxruntime/src/paraformer.cpp index 74366a0fa..1957a12d4 100644 --- a/funasr/runtime/onnxruntime/src/paraformer.cpp +++ b/funasr/runtime/onnxruntime/src/paraformer.cpp @@ -69,7 +69,11 @@ void Paraformer::Reset() vector Paraformer::FbankKaldi(float sample_rate, const float* waves, int len) { knf::OnlineFbank fbank_(fbank_opts); - fbank_.AcceptWaveform(sample_rate, waves, len); + std::vector buf(len); + for (int32_t i = 0; i != len; ++i) { + buf[i] = waves[i] * 32768; + } + fbank_.AcceptWaveform(sample_rate, buf.data(), buf.size()); //fbank_->InputFinished(); int32_t frames = fbank_.NumFramesReady(); int32_t feature_dim = fbank_opts.mel_opts.num_bins;