| funasr/runtime/onnxruntime/include/Audio.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| funasr/runtime/onnxruntime/include/librapidasrapi.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| funasr/runtime/onnxruntime/src/Audio.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| funasr/runtime/onnxruntime/src/commonfunc.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| funasr/runtime/onnxruntime/src/librapidasrapi.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| funasr/runtime/onnxruntime/tester/tester.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
funasr/runtime/onnxruntime/include/Audio.h
@@ -51,6 +51,7 @@ int fetch(float *&dout, int &len, int &flag); void padding(); void split(); float get_time_len(); int get_queue_size() { return (int)frame_queue.size(); } }; funasr/runtime/onnxruntime/include/librapidasrapi.h
@@ -88,6 +88,7 @@ _RAPIDASRAPI void RapidAsrUninit(RPASR_HANDLE Handle); _RAPIDASRAPI const float RapidAsrGetRetSnippetTime(RPASR_RESULT Result); #ifdef __cplusplus funasr/runtime/onnxruntime/src/Audio.cpp
@@ -116,6 +116,12 @@ speech_len); } float Audio::get_time_len() { return (float)speech_len / 16000; //speech_len); } bool Audio::loadwav(const char *filename) { funasr/runtime/onnxruntime/src/commonfunc.h
@@ -4,7 +4,7 @@ typedef struct { std::string msg; float snippet_time; }RPASR_RECOG_RESULT; funasr/runtime/onnxruntime/src/librapidasrapi.cpp
@@ -1,9 +1,6 @@ #include "precomp.h" #ifdef __cplusplus // void __attribute__ ((visibility ("default"))) fun(); extern "C" { #endif @@ -12,12 +9,6 @@ _RAPIDASRAPI RPASR_HANDLE RapidAsrInit(const char* szModelDir, int nThreadNum) { #ifdef NDEBUG QMLIC_BOOL bMatched = QmLicCheckValid(QLFM_ASR); if (!bMatched) { return nullptr; } #endif Model* mm = create_model(szModelDir, nThreadNum); @@ -42,6 +33,7 @@ int len; int flag=0; RPASR_RECOG_RESULT* pResult = new RPASR_RECOG_RESULT; pResult->snippet_time = audio.get_time_len(); int nStep = 0; int nTotal = audio.get_queue_size(); while (audio.fetch(buff, len, flag) > 0) { @@ -73,6 +65,7 @@ int len; int flag = 0; RPASR_RECOG_RESULT* pResult = new RPASR_RECOG_RESULT; pResult->snippet_time = audio.get_time_len(); int nStep = 0; int nTotal = audio.get_queue_size(); while (audio.fetch(buff, len, flag) > 0) { @@ -105,6 +98,7 @@ int len; int flag = 0; RPASR_RECOG_RESULT* pResult = new RPASR_RECOG_RESULT; pResult->snippet_time = audio.get_time_len(); int nStep = 0; int nTotal = audio.get_queue_size(); while (audio.fetch(buff, len, flag) > 0) { @@ -139,6 +133,7 @@ int nStep = 0; int nTotal = audio.get_queue_size(); RPASR_RECOG_RESULT* pResult = new RPASR_RECOG_RESULT; pResult->snippet_time = audio.get_time_len(); while (audio.fetch(buff, len, flag) > 0) { pRecogObj->reset(); string msg = pRecogObj->forward(buff, len, flag); @@ -162,6 +157,17 @@ return 1; } _RAPIDASRAPI const float RapidAsrGetRetSnippetTime(RPASR_RESULT Result) { if (!Result) return 0.0f; return ((RPASR_RECOG_RESULT*)Result)->snippet_time; } _RAPIDASRAPI const char* RapidAsrGetResult(RPASR_RESULT Result,int nIndex) { RPASR_RECOG_RESULT * pResult = (RPASR_RECOG_RESULT*)Result; funasr/runtime/onnxruntime/tester/tester.cpp
@@ -34,21 +34,24 @@ gettimeofday(&end, NULL); long seconds = (end.tv_sec - start.tv_sec); long micros = ((seconds * 1000000) + end.tv_usec) - (start.tv_usec); printf("Model initialization takes %lfs.\n", (double)micros / 1000000); long modle_init_micros = ((seconds * 1000000) + end.tv_usec) - (start.tv_usec); printf("Model initialization takes %lfs.\n", (double)modle_init_micros / 1000000); setbuf(stdout, NULL); cout << "Result: \""; gettimeofday(&start, NULL); RPASR_RESULT Result=RapidAsrRecogPCMFile(AsrHanlde, argv[2], RASR_NONE, NULL); gettimeofday(&end, NULL); float snippet_time = 0.0f; if (Result) { string msg = RapidAsrGetResult(Result, 0); setbuf(stdout, NULL); cout << "Result: \""; cout << msg << endl; cout << "\"." << endl; snippet_time = RapidAsrGetRetSnippetTime(Result); RapidAsrFreeResult(Result); } else @@ -56,11 +59,13 @@ cout <<("no return data!"); } printf("Audio length %lfs.\n", (double)snippet_time); seconds = (end.tv_sec - start.tv_sec); long taking_micros = ((seconds * 1000000) + end.tv_usec) - (start.tv_usec); printf("Model inference takes %lfs.\n", (double)micros / 1000000); printf("Model inference takes %lfs.\n", (double)taking_micros / 1000000); printf("Model inference RTF: %04lf.\n", (double)taking_micros/micros ); printf("Model inference RTF: %04lf.\n", (double)taking_micros/ (snippet_time*1000000)); RapidAsrUninit(AsrHanlde);