雾聪
2024-03-21 d4aaa84ad16c2c862ffcb5d73bf7852c8ee90d24
runtime/onnxruntime/src/funasrruntime.cpp
@@ -33,9 +33,9 @@
      return mm;
   }
   _FUNASRAPI FUNASR_HANDLE  FunOfflineInit(std::map<std::string, std::string>& model_path, int thread_num)
   _FUNASRAPI FUNASR_HANDLE  FunOfflineInit(std::map<std::string, std::string>& model_path, int thread_num, bool use_gpu)
   {
      funasr::OfflineStream* mm = funasr::CreateOfflineStream(model_path, thread_num);
      funasr::OfflineStream* mm = funasr::CreateOfflineStream(model_path, thread_num, use_gpu);
      return mm;
   }
@@ -146,6 +146,7 @@
      funasr::FUNASR_VAD_RESULT* p_result = new funasr::FUNASR_VAD_RESULT;
      p_result->snippet_time = audio.GetTimeLen();
      if(p_result->snippet_time == 0){
         p_result->segments = new vector<std::vector<int>>();
            return p_result;
        }
      
@@ -178,6 +179,7 @@
      funasr::FUNASR_VAD_RESULT* p_result = new funasr::FUNASR_VAD_RESULT;
      p_result->snippet_time = audio.GetTimeLen();
      if(p_result->snippet_time == 0){
         p_result->segments = new vector<std::vector<int>>();
            return p_result;
        }
      
@@ -243,7 +245,7 @@
            return p_result;
        }
      if(offline_stream->UseVad()){
         audio.Split(offline_stream);
         audio.CutSplit(offline_stream);
      }
      float* buff;
@@ -341,7 +343,7 @@
            return p_result;
        }
      if(offline_stream->UseVad()){
         audio.Split(offline_stream);
         audio.CutSplit(offline_stream);
      }
      float* buff;
@@ -478,7 +480,7 @@
      
      audio->Split(vad_online_handle, chunk_len, input_finished, mode);
      funasr::AudioFrame* frame = NULL;
      funasr::AudioFrame* frame = nullptr;
      while(audio->FetchChunck(frame) > 0){
         string msg = ((funasr::ParaformerOnline*)asr_online_handle)->Forward(frame->data, frame->len, frame->is_final);
         if(mode == ASR_ONLINE){
@@ -502,9 +504,9 @@
         }else if(mode == ASR_TWO_PASS){
            p_result->msg += msg;
         }
         if(frame != NULL){
         if(frame != nullptr){
            delete frame;
            frame = NULL;
            frame = nullptr;
         }
      }
@@ -559,9 +561,9 @@
         if (!(p_result->stamp).empty()){
            p_result->stamp_sents = funasr::TimestampSentence(p_result->tpass_msg, p_result->stamp);
         }
         if(frame != NULL){
         if(frame != nullptr){
            delete frame;
            frame = NULL;
            frame = nullptr;
         }
      }
@@ -765,13 +767,13 @@
      funasr::WfstDecoder* mm = nullptr;
      if (asr_type == ASR_OFFLINE) {
         funasr::OfflineStream* offline_stream = (funasr::OfflineStream*)handle;
         funasr::Paraformer* paraformer = (funasr::Paraformer*)offline_stream->asr_handle.get();
         funasr::Model* paraformer = offline_stream->asr_handle.get();
         if (paraformer->lm_)
            mm = new funasr::WfstDecoder(paraformer->lm_.get(),
               paraformer->GetPhoneSet(), paraformer->GetLmVocab(), glob_beam, lat_beam, am_scale);
      } else if (asr_type == ASR_TWO_PASS){
         funasr::TpassStream* tpass_stream = (funasr::TpassStream*)handle;
         funasr::Paraformer* paraformer = (funasr::Paraformer*)tpass_stream->asr_handle.get();
         funasr::Model* paraformer = tpass_stream->asr_handle.get();
         if (paraformer->lm_)
            mm = new funasr::WfstDecoder(paraformer->lm_.get(), 
               paraformer->GetPhoneSet(), paraformer->GetLmVocab(), glob_beam, lat_beam, am_scale);