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/funasrruntime.cpp | 50 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/funasr/runtime/onnxruntime/src/funasrruntime.cpp b/funasr/runtime/onnxruntime/src/funasrruntime.cpp
index 5dc1618..207cf8b 100644
--- a/funasr/runtime/onnxruntime/src/funasrruntime.cpp
+++ b/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;
--
Gitblit v1.9.1