From 9fcb3cc06b4e324f0913d2f61b89becc2baeef1b Mon Sep 17 00:00:00 2001
From: hnluo <haoneng.lhn@alibaba-inc.com>
Date: 星期一, 11 九月 2023 17:40:03 +0800
Subject: [PATCH] Merge pull request #932 from alibaba-damo-academy/dev_lhn
---
funasr/runtime/onnxruntime/src/model.cpp | 60 ++++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 48 insertions(+), 12 deletions(-)
diff --git a/funasr/runtime/onnxruntime/src/model.cpp b/funasr/runtime/onnxruntime/src/model.cpp
index 65ea172..646f260 100644
--- a/funasr/runtime/onnxruntime/src/model.cpp
+++ b/funasr/runtime/onnxruntime/src/model.cpp
@@ -1,20 +1,56 @@
#include "precomp.h"
-Model *CreateModel(std::map<std::string, std::string>& model_path, int thread_num)
+namespace funasr {
+Model *CreateModel(std::map<std::string, std::string>& model_path, int thread_num, ASR_TYPE type)
{
- string am_model_path;
- string am_cmvn_path;
- string am_config_path;
+ // offline
+ if(type == ASR_OFFLINE){
+ string am_model_path;
+ string am_cmvn_path;
+ string am_config_path;
- am_model_path = PathAppend(model_path.at(MODEL_DIR), MODEL_NAME);
- if(model_path.find(QUANTIZE) != model_path.end() && model_path.at(QUANTIZE) == "true"){
- am_model_path = PathAppend(model_path.at(MODEL_DIR), QUANT_MODEL_NAME);
+ am_model_path = PathAppend(model_path.at(MODEL_DIR), MODEL_NAME);
+ if(model_path.find(QUANTIZE) != model_path.end() && model_path.at(QUANTIZE) == "true"){
+ am_model_path = PathAppend(model_path.at(MODEL_DIR), QUANT_MODEL_NAME);
+ }
+ am_cmvn_path = PathAppend(model_path.at(MODEL_DIR), AM_CMVN_NAME);
+ am_config_path = PathAppend(model_path.at(MODEL_DIR), AM_CONFIG_NAME);
+
+ Model *mm;
+ mm = new Paraformer();
+ mm->InitAsr(am_model_path, am_cmvn_path, am_config_path, thread_num);
+ return mm;
+ }else if(type == ASR_ONLINE){
+ // online
+ string en_model_path;
+ string de_model_path;
+ string am_cmvn_path;
+ string am_config_path;
+
+ en_model_path = PathAppend(model_path.at(MODEL_DIR), ENCODER_NAME);
+ de_model_path = PathAppend(model_path.at(MODEL_DIR), DECODER_NAME);
+ if(model_path.find(QUANTIZE) != model_path.end() && model_path.at(QUANTIZE) == "true"){
+ en_model_path = PathAppend(model_path.at(MODEL_DIR), QUANT_ENCODER_NAME);
+ de_model_path = PathAppend(model_path.at(MODEL_DIR), QUANT_DECODER_NAME);
+ }
+ am_cmvn_path = PathAppend(model_path.at(MODEL_DIR), AM_CMVN_NAME);
+ am_config_path = PathAppend(model_path.at(MODEL_DIR), AM_CONFIG_NAME);
+
+ Model *mm;
+ mm = new Paraformer();
+ mm->InitAsr(en_model_path, de_model_path, am_cmvn_path, am_config_path, thread_num);
+ return mm;
+ }else{
+ LOG(ERROR)<<"Wrong ASR_TYPE : " << type;
+ exit(-1);
}
- am_cmvn_path = PathAppend(model_path.at(MODEL_DIR), AM_CMVN_NAME);
- am_config_path = PathAppend(model_path.at(MODEL_DIR), AM_CONFIG_NAME);
+}
- Model *mm;
- mm = new paraformer::Paraformer();
- mm->InitAsr(am_model_path, am_cmvn_path, am_config_path, thread_num);
+Model *CreateModel(void* asr_handle, std::vector<int> chunk_size)
+{
+ Model* mm;
+ mm = new ParaformerOnline((Paraformer*)asr_handle, chunk_size);
return mm;
}
+
+} // namespace funasr
\ No newline at end of file
--
Gitblit v1.9.1