From 30c40c643c19f6e2ac8679fa76d09d0f9ceccc65 Mon Sep 17 00:00:00 2001
From: chenmengzheAAA <123789350+chenmengzheAAA@users.noreply.github.com>
Date: 星期四, 14 九月 2023 18:00:43 +0800
Subject: [PATCH] Update modelscope_models.md

---
 funasr/runtime/onnxruntime/src/fsmn-vad.cpp |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/funasr/runtime/onnxruntime/src/fsmn-vad.cpp b/funasr/runtime/onnxruntime/src/fsmn-vad.cpp
index 697828b..fb79ad7 100644
--- a/funasr/runtime/onnxruntime/src/fsmn-vad.cpp
+++ b/funasr/runtime/onnxruntime/src/fsmn-vad.cpp
@@ -58,7 +58,7 @@
         LOG(INFO) << "Successfully load model from " << vad_model;
     } catch (std::exception const &e) {
         LOG(ERROR) << "Error when load vad onnx model: " << e.what();
-        exit(0);
+        exit(-1);
     }
     GetInputOutputInfo(vad_session_, &vad_in_names_, &vad_out_names_);
 }
@@ -148,7 +148,7 @@
                 vad_inputs.size(), vad_out_names_.data(), vad_out_names_.size());
     } catch (std::exception const &e) {
         LOG(ERROR) << "Error when run vad onnx forword: " << (e.what());
-        exit(0);
+        return;
     }
 
     // 5. Change infer result to output shapes
@@ -197,7 +197,7 @@
         ifstream cmvn_stream(filename);
         if (!cmvn_stream.is_open()) {
             LOG(ERROR) << "Failed to open file: " << filename;
-            exit(0);
+            exit(-1);
         }
         string line;
 
@@ -230,7 +230,7 @@
         }
     }catch(std::exception const &e) {
         LOG(ERROR) << "Error when load vad cmvn : " << e.what();
-        exit(0);
+        exit(-1);
     }
 }
 
@@ -279,12 +279,15 @@
 FsmnVad::Infer(std::vector<float> &waves, bool input_finished) {
     std::vector<std::vector<float>> vad_feats;
     std::vector<std::vector<float>> vad_probs;
+    std::vector<std::vector<int>> vad_segments;
     FbankKaldi(vad_sample_rate_, vad_feats, waves);
+    if(vad_feats.size() == 0){
+      return vad_segments;
+    }
     LfrCmvn(vad_feats);
     Forward(vad_feats, &vad_probs, &in_cache_, input_finished);
 
     E2EVadModel vad_scorer = E2EVadModel();
-    std::vector<std::vector<int>> vad_segments;
     vad_segments = vad_scorer(vad_probs, waves, true, false, vad_silence_duration_, vad_max_len_,
                               vad_speech_noise_thres_, vad_sample_rate_);
     return vad_segments;

--
Gitblit v1.9.1