From 63a70a00f7c9f162e8d7b3e330516438fb8cd87b Mon Sep 17 00:00:00 2001
From: 雾聪 <wucong.lyb@alibaba-inc.com>
Date: 星期五, 19 四月 2024 16:08:05 +0800
Subject: [PATCH] add dynamic batch for fetch
---
runtime/onnxruntime/src/paraformer-torch.cpp | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/runtime/onnxruntime/src/paraformer-torch.cpp b/runtime/onnxruntime/src/paraformer-torch.cpp
index e7fbadf..113d43f 100644
--- a/runtime/onnxruntime/src/paraformer-torch.cpp
+++ b/runtime/onnxruntime/src/paraformer-torch.cpp
@@ -281,13 +281,18 @@
if(asr_feats.size() != 0){
LfrCmvn(asr_feats);
}
- feats_batch.emplace_back(asr_feats);
- int32_t num_frames = asr_feats.size() / feature_dim;
+ int32_t num_frames = asr_feats.size();
paraformer_length.emplace_back(num_frames);
- if(max_size < asr_feats.size()){
- max_size = asr_feats.size();
+ if(max_size < asr_feats.size()*feature_dim){
+ max_size = asr_feats.size()*feature_dim;
max_frames = num_frames;
}
+
+ std::vector<float> flattened;
+ for (const auto& sub_vector : asr_feats) {
+ flattened.insert(flattened.end(), sub_vector.begin(), sub_vector.end());
+ }
+ feats_batch.emplace_back(flattened);
}
torch::NoGradGuard no_grad;
@@ -368,6 +373,9 @@
}
}
results.push_back(result);
+ if (wfst_decoder){
+ wfst_decoder->StartUtterance();
+ }
}
}
catch (std::exception const &e)
--
Gitblit v1.9.1