From 1e22c58ead3348b0298d0902756bb5e587a66105 Mon Sep 17 00:00:00 2001
From: mayong <mayong@qianxin.com>
Date: 星期五, 03 三月 2023 21:36:21 +0800
Subject: [PATCH] The initial version of pararformer-onnxruntime.

---
 funasr/runtime/cpp/onnxruntime/CMakeLists.txt     |   30 ++++++++++
 funasr/runtime/cpp/onnxruntime/readme.md          |  107 +++++++++++++++++++++++++++++++++++
 funasr/runtime/cpp/onnxruntime/CMakeSettings.json |   26 ++++++++
 3 files changed, 163 insertions(+), 0 deletions(-)

diff --git a/funasr/runtime/cpp/onnxruntime/CMakeLists.txt b/funasr/runtime/cpp/onnxruntime/CMakeLists.txt
new file mode 100644
index 0000000..8d502c4
--- /dev/null
+++ b/funasr/runtime/cpp/onnxruntime/CMakeLists.txt
@@ -0,0 +1,30 @@
+cmake_minimum_required(VERSION 3.10)
+
+#-DONNXRUNTIME_DIR=D:\thirdpart\onnxruntime
+project(FastASR)
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+
+# for onnxruntime
+
+IF(WIN32)
+
+
+	if(CMAKE_CL_64)
+		link_directories(${ONNXRUNTIME_DIR}\\lib)
+	else()
+		add_definitions(-D_WIN_X86)
+	endif()
+ELSE()
+
+
+link_directories(${ONNXRUNTIME_DIR}/lib)
+
+endif()
+
+#option(FASTASR_BUILD_PYTHON_MODULE "build python module, using FastASR in Python" OFF)
+
+add_subdirectory("./third_party/webrtc")
+add_subdirectory(src)
+add_subdirectory(tester)
diff --git a/funasr/runtime/cpp/onnxruntime/CMakeSettings.json b/funasr/runtime/cpp/onnxruntime/CMakeSettings.json
new file mode 100644
index 0000000..f515d1f
--- /dev/null
+++ b/funasr/runtime/cpp/onnxruntime/CMakeSettings.json
@@ -0,0 +1,26 @@
+锘縶
+  "configurations": [
+    {
+      "name": "x64-Debug",
+      "generator": "Ninja",
+      "configurationType": "Debug",
+      "inheritEnvironments": [ "msvc_x64_x64" ],
+      "buildRoot": "${projectDir}\\out\\build\\${name}",
+      "installRoot": "${projectDir}\\out\\install\\${name}",
+      "buildCommandArgs": "",
+      "ctestCommandArgs": ""
+    },
+    {
+      "name": "x64-Release",
+      "generator": "Ninja",
+      "configurationType": "RelWithDebInfo",
+      "buildRoot": "${projectDir}\\out\\build\\${name}",
+      "installRoot": "${projectDir}\\out\\install\\${name}",
+      "cmakeCommandArgs": "",
+      "buildCommandArgs": "",
+      "ctestCommandArgs": "",
+      "inheritEnvironments": [ "msvc_x64_x64" ],
+      "variables": []
+    }
+  ]
+}
\ No newline at end of file
diff --git a/funasr/runtime/cpp/onnxruntime/readme.md b/funasr/runtime/cpp/onnxruntime/readme.md
new file mode 100644
index 0000000..56e9787
--- /dev/null
+++ b/funasr/runtime/cpp/onnxruntime/readme.md
@@ -0,0 +1,107 @@
+
+## 鐗瑰埆楦h阿
+
+鏈▼搴忎腑鐨勯澶勭悊鍙婂悗澶勭悊浠g爜锛屾潵鑷簬锛歨ttps://github.com/chenkui164/FastASR
+
+
+## 绾跨▼鏁颁笌鎬ц兘鍏崇郴
+
+娴嬭瘯鐜Rocky Linux 8锛屼粎娴嬭瘯cpp鐗堟湰缁撴灉锛堟湭娴媝ython鐗堟湰锛夛紝@acely 
+
+绠�杩帮細
+鍦�3鍙伴厤缃笉鍚岀殑鏈哄櫒涓婂垎鍒紪璇戝苟娴嬭瘯锛屽湪fftw鍜宱nnxruntime鐗堟湰閮界浉鍚岀殑鍓嶆彁涓嬶紝璇嗗埆鍚屼竴涓�30鍒嗛挓鐨勯煶棰戞枃浠讹紝鍒嗗埆娴嬭瘯涓嶅悓onnx绾跨▼鏁伴噺鐨勮〃鐜般��
+
+![绾跨▼鏁板叧绯籡(images/threadnum.png "Windows ASR")
+
+鐩墠鍙互鎬荤粨鍑哄ぇ鑷磋寰嬶細
+
+骞堕潪onnx绾跨▼鏁拌秺澶氳秺濂�
+2绾跨▼姣�1绾跨▼鎻愬崌鏄捐憲锛岀嚎绋嬪啀澶氬垯鎻愬崌杈冨皬
+绾跨▼鏁扮瓑浜嶤PU鐗╃悊鏍稿績鏁版椂鏁堢巼鏈�濂�
+瀹炴搷寤鸿锛�
+
+澶ч儴鍒嗗満鏅敤3-4绾跨▼鎬т环姣旀渶楂�
+浣庨厤鏈哄櫒鐢�2绾跨▼鍚堥��
+
+
+
+##  婕旂ず
+
+![Windows婕旂ず](images/demo.png "Windows ASR")
+
+## 娉ㄦ剰
+鏈▼搴忓彧鏀寔 閲囨牱鐜�16000hz, 浣嶆繁16bit鐨� **鍗曞0閬�** 闊抽銆�
+
+## 蹇�熶娇鐢�
+
+### Windows
+
+ 瀹夎Vs2022 鎵撳紑cpp_onnx鐩綍涓嬬殑cmake宸ョ▼锛岀洿鎺� build鍗冲彲銆� 鏈粨搴撳凡缁忓噯澶囧ソ鎵�鏈夌浉鍏充緷璧栧簱銆�
+
+ Windows涓嬪凡缁忛缃甪ftw3銆乷nnxruntime鍙妎penblas搴�
+
+
+### Linux
+See the bottom of this page: Building Guidance
+
+
+###  杩愯绋嬪簭
+
+tester  /path/to/models/dir /path/to/wave/file
+
+ 渚嬪锛� tester /data/models  /data/test.wav
+
+/data/models 闇�瑕佸寘鎷涓嬩袱涓枃浠讹細 model.onnx 鍜寁ocab.txt
+
+
+## 鏀寔骞冲彴
+- Windows
+- Linux/Unix
+
+## 渚濊禆
+- fftw3
+- onnxruntime
+
+## 瀵煎嚭onnx鏍煎紡妯″瀷鏂囦欢
+瀹夎 modelscope涓嶧unASR锛屼緷璧栵細torch锛宼orchaudio锛屽畨瑁呰繃绋媅璇︾粏鍙傝�冩枃妗(https://github.com/alibaba-damo-academy/FunASR/wiki)
+```shell
+pip install "modelscope[audio_asr]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
+git clone https://github.com/alibaba/FunASR.git && cd FunASR
+pip install --editable ./
+```
+瀵煎嚭onnx妯″瀷锛孾璇﹁](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/export)锛屽弬鑰冪ず渚嬶紝浠巑odelscope涓ā鍨嬪鍑猴細
+
+```
+python -m funasr.export.export_model 'damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch' "./export" true
+```
+
+## Building Guidance for Linux/Unix
+
+```
+git clone https://github.com/RapidAI/RapidASR.git
+cd RapidASR/cpp_onnx/
+mkdir build
+cd build
+# download an appropriate onnxruntime from https://github.com/microsoft/onnxruntime/releases/tag/v1.14.0
+# here we get a copy of onnxruntime for linux 64
+wget https://github.com/microsoft/onnxruntime/releases/download/v1.14.0/onnxruntime-linux-x64-1.14.0.tgz
+# ls
+# onnxruntime-linux-x64-1.14.0  onnxruntime-linux-x64-1.14.0.tgz
+
+#install fftw3-dev
+apt install libfftw3-dev
+
+# build
+ cmake  -DCMAKE_BUILD_TYPE=release .. -DONNXRUNTIME_DIR=/mnt/c/Users/ma139/RapidASR/cpp_onnx/build/onnxruntime-linux-x64-1.14.0
+ make
+
+ # then in the subfolder tester of current direcotry, you will see a program, tester
+
+````
+
+### The structure of a qualified onnxruntime package.
+```
+onnxruntime_xxx
+鈹溾攢鈹�鈹�include
+鈹斺攢鈹�鈹�lib
+```

--
Gitblit v1.9.1