From beceb14feca0befb9a0f46a9fe3350546874f867 Mon Sep 17 00:00:00 2001
From: 雾聪 <wucong.lyb@alibaba-inc.com>
Date: 星期五, 01 九月 2023 16:58:22 +0800
Subject: [PATCH] fix fsmn-vad

---
 funasr/runtime/onnxruntime/src/funasrruntime.cpp |   45 +++++++++++++++++++++++++++++----------------
 1 files changed, 29 insertions(+), 16 deletions(-)

diff --git a/funasr/runtime/onnxruntime/src/funasrruntime.cpp b/funasr/runtime/onnxruntime/src/funasrruntime.cpp
index a10e3ec..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){

--
Gitblit v1.9.1