hnluo
2023-09-11 9fcb3cc06b4e324f0913d2f61b89becc2baeef1b
funasr/runtime/onnxruntime/src/funasrruntime.cpp
@@ -224,12 +224,18 @@
         return nullptr;
      funasr::Audio audio(1);
      if(wav_format == "pcm" || wav_format == "PCM"){
         if (!audio.LoadPcmwav(sz_buf, n_len, &sampling_rate))
            return nullptr;
      }else{
         if (!audio.FfmpegLoad(sz_buf, n_len))
            return nullptr;
      try{
         if(wav_format == "pcm" || wav_format == "PCM"){
            if (!audio.LoadPcmwav(sz_buf, n_len, &sampling_rate))
               return nullptr;
         }else{
            if (!audio.FfmpegLoad(sz_buf, n_len))
               return nullptr;
         }
      }catch (std::exception const &e)
      {
         LOG(ERROR)<<e.what();
         return nullptr;
      }
      funasr::FUNASR_RECOG_RESULT* p_result = new funasr::FUNASR_RECOG_RESULT;
@@ -288,17 +294,24 @@
         return nullptr;
      
      funasr::Audio audio(1);
      if(funasr::is_target_file(sz_filename, "wav")){
         int32_t sampling_rate_ = -1;
         if(!audio.LoadWav(sz_filename, &sampling_rate_))
            return nullptr;
      }else if(funasr::is_target_file(sz_filename, "pcm")){
         if (!audio.LoadPcmwav(sz_filename, &sampling_rate))
            return nullptr;
      }else{
         if (!audio.FfmpegLoad(sz_filename))
            return nullptr;
      try{
         if(funasr::is_target_file(sz_filename, "wav")){
            int32_t sampling_rate_ = -1;
            if(!audio.LoadWav(sz_filename, &sampling_rate_))
               return nullptr;
         }else if(funasr::is_target_file(sz_filename, "pcm")){
            if (!audio.LoadPcmwav(sz_filename, &sampling_rate))
               return nullptr;
         }else{
            if (!audio.FfmpegLoad(sz_filename))
               return nullptr;
         }
      }catch (std::exception const &e)
      {
         LOG(ERROR)<<e.what();
         return nullptr;
      }
      funasr::FUNASR_RECOG_RESULT* p_result = new funasr::FUNASR_RECOG_RESULT;
      p_result->snippet_time = audio.GetTimeLen();
      if(p_result->snippet_time == 0){
@@ -318,6 +331,9 @@
      while (audio.Fetch(buff, len, flag, start_time) > 0) {
         string msg = (offline_stream->asr_handle)->Forward(buff, len, true, hw_emb);
         std::vector<std::string> msg_vec = funasr::split(msg, '|');
         if(msg_vec.size()==0){
            continue;
         }
         p_result->msg += msg_vec[0];
         //timestamp
         if(msg_vec.size() > 1){
@@ -387,7 +403,7 @@
         // if (!audio->FfmpegLoad(sz_buf, n_len))
         //    return nullptr;
         LOG(ERROR) <<"Wrong wav_format: " << wav_format ;
         exit(-1);
         return nullptr;
      }
      funasr::FUNASR_RECOG_RESULT* p_result = new funasr::FUNASR_RECOG_RESULT;