lyblsgo
2023-04-11 8e449d676d4f06ba3de02c451c3b4fa3433a3792
funasr/runtime/onnxruntime/src/librapidasrapi.cpp
@@ -4,24 +4,16 @@
extern "C" {
#endif
   // APIs for qmasr
   _RAPIDASRAPI RPASR_HANDLE  RapidAsrInit(const char* szModelDir, int nThreadNum)
   _RAPIDASRAPI RPASR_HANDLE  RapidAsrInit(const char* szModelDir, int nThreadNum, bool quantize)
   {
      Model* mm = create_model(szModelDir, nThreadNum);
      Model* mm = create_model(szModelDir, nThreadNum, quantize);
      return mm;
   }
   _RAPIDASRAPI RPASR_RESULT RapidAsrRecogBuffer(RPASR_HANDLE handle, const char* szBuf, int nLen, RPASR_MODE Mode, QM_CALLBACK fnCallback)
   {
      Model* pRecogObj = (Model*)handle;
      if (!pRecogObj)
         return nullptr;
@@ -38,7 +30,7 @@
      int nStep = 0;
      int nTotal = audio.get_queue_size();
      while (audio.fetch(buff, len, flag) > 0) {
         pRecogObj->reset();
         //pRecogObj->reset();
         string msg = pRecogObj->forward(buff, len, flag);
         pResult->msg += msg;
         nStep++;
@@ -46,15 +38,12 @@
            fnCallback(nStep, nTotal);
      }
      return pResult;
   }
   _RAPIDASRAPI RPASR_RESULT RapidAsrRecogPCMBuffer(RPASR_HANDLE handle, const char* szBuf, int nLen, RPASR_MODE Mode, QM_CALLBACK fnCallback)
   {
      Model* pRecogObj = (Model*)handle;
      if (!pRecogObj)
         return nullptr;
@@ -71,7 +60,7 @@
      int nStep = 0;
      int nTotal = audio.get_queue_size();
      while (audio.fetch(buff, len, flag) > 0) {
         pRecogObj->reset();
         //pRecogObj->reset();
         string msg = pRecogObj->forward(buff, len, flag);
         pResult->msg += msg;
         nStep++;
@@ -79,16 +68,12 @@
            fnCallback(nStep, nTotal);
      }
      return pResult;
   }
   _RAPIDASRAPI RPASR_RESULT RapidAsrRecogPCMFile(RPASR_HANDLE handle, const char* szFileName, RPASR_MODE Mode, QM_CALLBACK fnCallback)
   {
      Model* pRecogObj = (Model*)handle;
      if (!pRecogObj)
         return nullptr;
@@ -105,7 +90,7 @@
      int nStep = 0;
      int nTotal = audio.get_queue_size();
      while (audio.fetch(buff, len, flag) > 0) {
         pRecogObj->reset();
         //pRecogObj->reset();
         string msg = pRecogObj->forward(buff, len, flag);
         pResult->msg += msg;
         nStep++;
@@ -113,15 +98,12 @@
            fnCallback(nStep, nTotal);
      }
      return pResult;
   }
   _RAPIDASRAPI RPASR_RESULT RapidAsrRecogFile(RPASR_HANDLE handle, const char* szWavfile, RPASR_MODE Mode, QM_CALLBACK fnCallback)
   {
      Model* pRecogObj = (Model*)handle;
      if (!pRecogObj)
         return nullptr;
@@ -138,7 +120,7 @@
      RPASR_RECOG_RESULT* pResult = new RPASR_RECOG_RESULT;
      pResult->snippet_time = audio.get_time_len();
      while (audio.fetch(buff, len, flag) > 0) {
         pRecogObj->reset();
         //pRecogObj->reset();
         string msg = pRecogObj->forward(buff, len, flag);
         pResult->msg+= msg;
         nStep++;
@@ -146,9 +128,6 @@
            fnCallback(nStep, nTotal);
      }
   
      return pResult;
   }
@@ -158,7 +137,6 @@
         return 0;
      return 1;
   }
@@ -168,7 +146,6 @@
         return 0.0f;
      return ((RPASR_RECOG_RESULT*)Result)->snippet_time;
   }
   _RAPIDASRAPI const char* RapidAsrGetResult(RPASR_RESULT Result,int nIndex)
@@ -178,33 +155,25 @@
         return nullptr;
      return pResult->msg.c_str();
   }
   _RAPIDASRAPI void RapidAsrFreeResult(RPASR_RESULT Result)
   {
      if (Result)
      {
         delete (RPASR_RECOG_RESULT*)Result;
      }
   }
   _RAPIDASRAPI void RapidAsrUninit(RPASR_HANDLE handle)
   {
      Model* pRecogObj = (Model*)handle;
      if (!pRecogObj)
         return;
      delete pRecogObj;
   }
#ifdef __cplusplus