diff --git a/runtime/onnxruntime/src/funasrruntime.cpp b/runtime/onnxruntime/src/funasrruntime.cpp index e1b147764..31f8a955c 100644 --- a/runtime/onnxruntime/src/funasrruntime.cpp +++ b/runtime/onnxruntime/src/funasrruntime.cpp @@ -233,9 +233,13 @@ if(p_result->snippet_time == 0){ return p_result; } + std::vector index_vector={0}; + int msg_idx = 0; if(offline_stream->UseVad()){ - audio.CutSplit(offline_stream); + audio.CutSplit(offline_stream, index_vector); } + std::vector msgs(index_vector.size()); + std::vector msg_stimes(index_vector.size()); float** buff; int* len; @@ -252,27 +256,18 @@ if (wfst_decoder){ wfst_decoder->StartUtterance(); } - vector msgs = (offline_stream->asr_handle)->Forward(buff, len, true, hw_emb, dec_handle, batch_in); + vector msg_batch = (offline_stream->asr_handle)->Forward(buff, len, true, hw_emb, dec_handle, batch_in); for(int idx=0; idx msg_vec = funasr::split(msg, '|'); - if(msg_vec.size()==0){ - continue; - } - if(lang == "en-bpe" && p_result->msg != ""){ - p_result->msg += " "; - } - p_result->msg += msg_vec[0]; - //timestamp - if(msg_vec.size() > 1){ - std::vector msg_stamp = funasr::split(msg_vec[1], ','); - for(int i=0; i msg_vec = funasr::split(msg, '|'); + if(msg_vec.size()==0){ + continue; + } + if(lang == "en-bpe" && p_result->msg != ""){ + p_result->msg += " "; + } + p_result->msg += msg_vec[0]; + //timestamp + if(msg_vec.size() > 1){ + std::vector msg_stamp = funasr::split(msg_vec[1], ','); + for(int i=0; istamp += cur_stamp + "]"; @@ -340,9 +355,13 @@ if(p_result->snippet_time == 0){ return p_result; } + std::vector index_vector={0}; + int msg_idx = 0; if(offline_stream->UseVad()){ - audio.CutSplit(offline_stream); + audio.CutSplit(offline_stream, index_vector); } + std::vector msgs(index_vector.size()); + std::vector msg_stimes(index_vector.size()); float** buff; int* len; @@ -360,26 +379,18 @@ wfst_decoder->StartUtterance(); } vector msgs = (offline_stream->asr_handle)->Forward(buff, len, true, hw_emb, dec_handle, batch_in); + vector msg_batch = (offline_stream->asr_handle)->Forward(buff, len, true, hw_emb, dec_handle, batch_in); for(int idx=0; idx msg_vec = funasr::split(msg, '|'); - if(msg_vec.size()==0){ - continue; - } - if(lang == "en-bpe" && p_result->msg != ""){ - p_result->msg += " "; - } - p_result->msg += msg_vec[0]; - //timestamp - if(msg_vec.size() > 1){ - std::vector msg_stamp = funasr::split(msg_vec[1], ','); - for(int i=0; i msg_vec = funasr::split(msg, '|'); + if(msg_vec.size()==0){ + continue; + } + if(lang == "en-bpe" && p_result->msg != ""){ + p_result->msg += " "; + } + p_result->msg += msg_vec[0]; + //timestamp + if(msg_vec.size() > 1){ + std::vector msg_stamp = funasr::split(msg_vec[1], ','); + for(int i=0; istamp += cur_stamp + "]";