From 1a6242fd4fb9e3b3827908520c876ee541b60af5 Mon Sep 17 00:00:00 2001
From: lyblsgo <lyblsgo@163.com>
Date: 星期五, 14 四月 2023 13:08:33 +0800
Subject: [PATCH] support arbitrary sampling rate

---
 funasr/runtime/onnxruntime/src/libfunasrapi.cpp |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/funasr/runtime/onnxruntime/src/libfunasrapi.cpp b/funasr/runtime/onnxruntime/src/libfunasrapi.cpp
index 0d77d20..a2ecf10 100644
--- a/funasr/runtime/onnxruntime/src/libfunasrapi.cpp
+++ b/funasr/runtime/onnxruntime/src/libfunasrapi.cpp
@@ -17,8 +17,9 @@
 		if (!pRecogObj)
 			return nullptr;
 
+		int32_t sampling_rate = -1;
 		Audio audio(1);
-		if (!audio.loadwav(szBuf, nLen))
+		if (!audio.loadwav(szBuf, nLen, &sampling_rate))
 			return nullptr;
 		//audio.split();
 
@@ -41,14 +42,14 @@
 		return pResult;
 	}
 
-	_FUNASRAPI FUNASR_RESULT FunASRRecogPCMBuffer(FUNASR_HANDLE handle, const char* szBuf, int nLen, FUNASR_MODE Mode, QM_CALLBACK fnCallback)
+	_FUNASRAPI FUNASR_RESULT FunASRRecogPCMBuffer(FUNASR_HANDLE handle, const char* szBuf, int nLen, int sampling_rate, FUNASR_MODE Mode, QM_CALLBACK fnCallback)
 	{
 		Model* pRecogObj = (Model*)handle;
 		if (!pRecogObj)
 			return nullptr;
 
 		Audio audio(1);
-		if (!audio.loadpcmwav(szBuf, nLen))
+		if (!audio.loadpcmwav(szBuf, nLen, &sampling_rate))
 			return nullptr;
 		//audio.split();
 
@@ -71,14 +72,14 @@
 		return pResult;
 	}
 
-	_FUNASRAPI FUNASR_RESULT FunASRRecogPCMFile(FUNASR_HANDLE handle, const char* szFileName, FUNASR_MODE Mode, QM_CALLBACK fnCallback)
+	_FUNASRAPI FUNASR_RESULT FunASRRecogPCMFile(FUNASR_HANDLE handle, const char* szFileName, int sampling_rate, FUNASR_MODE Mode, QM_CALLBACK fnCallback)
 	{
 		Model* pRecogObj = (Model*)handle;
 		if (!pRecogObj)
 			return nullptr;
 
 		Audio audio(1);
-		if (!audio.loadpcmwav(szFileName))
+		if (!audio.loadpcmwav(szFileName, &sampling_rate))
 			return nullptr;
 		//audio.split();
 
@@ -106,9 +107,10 @@
 		Model* pRecogObj = (Model*)handle;
 		if (!pRecogObj)
 			return nullptr;
-
+		
+		int32_t sampling_rate = -1;
 		Audio audio(1);
-		if(!audio.loadwav(szWavfile))
+		if(!audio.loadwav(szWavfile, &sampling_rate))
 			return nullptr;
 		//audio.split();
 

--
Gitblit v1.9.1