From 4d148f1fed31571c2c05e2b18f5437591dc69d74 Mon Sep 17 00:00:00 2001 From: 游雁 <zhifu.gzf@alibaba-inc.com> Date: 星期三, 19 七月 2023 12:50:07 +0800 Subject: [PATCH] runtime docs --- funasr/runtime/onnxruntime/third_party/download_onnxruntime.sh | 5 + funasr/runtime/websocket/readme_zh.md | 188 +++++++++++++++++++++++++++++++++++++++++++++++ funasr/runtime/onnxruntime/third_party/download_ffmpeg.sh | 5 + 3 files changed, 198 insertions(+), 0 deletions(-) diff --git a/funasr/runtime/onnxruntime/third_party/download_ffmpeg.sh b/funasr/runtime/onnxruntime/third_party/download_ffmpeg.sh new file mode 100644 index 0000000..4a52184 --- /dev/null +++ b/funasr/runtime/onnxruntime/third_party/download_ffmpeg.sh @@ -0,0 +1,5 @@ +wget https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2023-07-09-12-50/ffmpeg-N-111383-g20b8688092-linux64-gpl-shared.tar.xz +tar -xvf ffmpeg-N-111383-g20b8688092-linux64-gpl-shared.tar.xz +# 鍥藉唴鍙互浣跨敤涓嬭堪鏂瑰紡 +# wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/dep_libs/ffmpeg-N-111383-g20b8688092-linux64-gpl-shared.tar.xz +# tar -xvf ffmpeg-N-111383-g20b8688092-linux64-gpl-shared.tar.xz diff --git a/funasr/runtime/onnxruntime/third_party/download_onnxruntime.sh b/funasr/runtime/onnxruntime/third_party/download_onnxruntime.sh new file mode 100644 index 0000000..adaddc5 --- /dev/null +++ b/funasr/runtime/onnxruntime/third_party/download_onnxruntime.sh @@ -0,0 +1,5 @@ + +# 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 +tar -zxvf onnxruntime-linux-x64-1.14.0.tgz \ No newline at end of file diff --git a/funasr/runtime/websocket/readme_zh.md b/funasr/runtime/websocket/readme_zh.md new file mode 100644 index 0000000..2df03a7 --- /dev/null +++ b/funasr/runtime/websocket/readme_zh.md @@ -0,0 +1,188 @@ +# 閲囩敤websocket鍗忚鐨刢++閮ㄧ讲鏂规 + +## 蹇�熶笂鎵� +### 闀滃儚鍚姩 + +閫氳繃涓嬭堪鍛戒护鎷夊彇骞跺惎鍔‵unASR runtime-SDK鐨刣ocker闀滃儚锛� + +```shell +sudo docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.1.0 + +sudo docker run -p 10095:10095 -it --privileged=true -v /root:/workspace/models registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.1.0 +``` +濡傛灉鎮ㄦ病鏈夊畨瑁卍ocker锛屽彲鍙傝�僛Docker瀹夎](#Docker瀹夎) + +### 鏈嶅姟绔惎鍔� + +docker鍚姩涔嬪悗锛屽惎鍔� funasr-wss-server鏈嶅姟绋嬪簭锛� +```shell +cd FunASR/funasr/runtime +./run_server.sh \ + --download-model-dir /workspace/models \ + --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ + --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ + --punc-dir damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx +``` +鏈嶅姟绔缁嗗弬鏁颁粙缁嶅彲鍙傝�僛鏈嶅姟绔弬鏁颁粙缁峕(#鏈嶅姟绔弬鏁颁粙缁�) + +### 瀹㈡埛绔祴璇曚笌浣跨敤 + +涓嬭浇瀹㈡埛绔祴璇曞伐鍏风洰褰晄amples +```shell +wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/sample/funasr_samples.tar.gz +``` +鎴戜滑浠ython璇█瀹㈡埛绔负渚嬶紝杩涜璇存槑锛屾敮鎸佸绉嶉煶棰戞牸寮忚緭鍏ワ紙.wav, .pcm, .mp3绛夛級锛屼篃鏀寔瑙嗛杈撳叆(.mp4绛�)锛屼互鍙婂鏂囦欢鍒楄〃wav.scp杈撳叆锛屽叾浠栫増鏈鎴风璇峰弬鑰冩枃妗o紙[鐐瑰嚮姝ゅ](#瀹㈡埛绔敤娉曡瑙�)锛夛紝瀹氬埗鏈嶅姟閮ㄧ讲璇峰弬鑰僛濡備綍瀹氬埗鏈嶅姟閮ㄧ讲](#濡備綍瀹氬埗鏈嶅姟閮ㄧ讲) +```shell +python3 wss_client_asr.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav" +``` + +------------------ + +## 鎿嶄綔姝ラ璇﹁В + +### 渚濊禆搴撲笅杞� + +#### Download onnxruntime +```shell +bash third_party/download_onnxruntime.sh +``` + +#### Download ffmpeg +```shell +bash third_party/download_ffmpeg.sh +``` + +#### Install openblas and openssl +```shell +sudo apt-get install libopenblas-dev libssl-dev #ubuntu +# sudo yum -y install openblas-devel openssl-devel #centos + +``` + +### 缂栬瘧 + +```shell +git clone https://github.com/alibaba-damo-academy/FunASR.git && cd FunASR/funasr/runtime/websocket +mkdir build && cd build +cmake -DCMAKE_BUILD_TYPE=release .. -DONNXRUNTIME_DIR=/path/to/onnxruntime-linux-x64-1.14.0 -DFFMPEG_DIR=/path/to/ffmpeg-N-111383-g20b8688092-linux64-gpl-shared +make +``` + +### 鍚姩鏈嶅姟閮ㄧ讲 + +#### 浠巑odelscope涓ā鍨嬪惎鍔ㄧず渚� +```shell +./funasr-wss-server \ + --download-model-dir /workspace/models \ + --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ + --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ + --punc-dir damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx +``` + +娉ㄦ剰锛氫笂闈㈢ず渚嬩腑锛宍model-dir`锛宍vad-dir`锛宍punc-dir`涓烘ā鍨嬪湪modelscope涓ā鍨嬪悕瀛楋紝鐩存帴浠巑odelscope涓嬭浇妯″瀷骞朵笖瀵煎嚭閲忓寲鍚庣殑onnx銆傚鏋滈渶瑕佷粠鏈湴鍚姩锛岄渶瑕佹敼鎴愭湰鍦扮粷瀵硅矾寰勩�� + +#### 浠庢湰鍦版ā鍨嬪惎鍔ㄧず渚� + +##### 瀵煎嚭妯″瀷 + +```shell +python -m funasr.export.export_model \ +--export-dir ./export \ +--type onnx \ +--quantize True \ +--model-name damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch \ +--model-name damo/speech_fsmn_vad_zh-cn-16k-common-pytorch \ +--model-name damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch +``` +瀵煎嚭杩囩▼璇︾粏浠嬬粛锛圼鐐瑰嚮姝ゅ](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/export)锛� + +##### 鍚姩鏈嶅姟 +```shell +./funasr-wss-server \ + --download-model-dir /workspace/models \ + --model-dir ./exportdamo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ + --vad-dir ./exportdamo/speech_fsmn_vad_zh-cn-16k-common-onnx \ + --punc-dir ./export/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx +``` + +#### 鍛戒护鍙傛暟浠嬬粛锛� +```text +--download-model-dir 妯″瀷涓嬭浇鍦板潃锛岄�氳繃璁剧疆model ID浠嶮odelscope涓嬭浇妯″瀷銆傚鏋滀粠鏈湴妯″瀷鍚姩锛屽彲浠ヤ笉璁剧疆銆� +--model-dir modelscope 涓� ASR model ID锛屾垨鑰呮湰鍦版ā鍨嬬粷瀵硅矾寰� +--quantize True涓洪噺鍖朅SR妯″瀷锛孎alse涓洪潪閲忓寲ASR妯″瀷锛岄粯璁ゆ槸True +--vad-dir modelscope 涓� VAD model ID锛屾垨鑰呮湰鍦版ā鍨嬬粷瀵硅矾寰� +--vad-quant True涓洪噺鍖朧AD妯″瀷锛孎alse涓洪潪閲忓寲VAD妯″瀷锛岄粯璁ゆ槸True +--punc-dir modelscope 涓� 鏍囩偣 model ID锛屾垨鑰呮湰鍦版ā鍨嬬粷瀵硅矾寰� +--punc-quant True涓洪噺鍖朠UNC妯″瀷锛孎alse涓洪潪閲忓寲PUNC妯″瀷锛岄粯璁ゆ槸True +--port 鏈嶅姟绔洃鍚殑绔彛鍙凤紝榛樿涓� 10095 +--decoder-thread-num 鏈嶅姟绔惎鍔ㄧ殑鎺ㄧ悊绾跨▼鏁帮紝榛樿涓� 8 +--io-thread-num 鏈嶅姟绔惎鍔ㄧ殑IO绾跨▼鏁帮紝榛樿涓� 1 +--certfile ssl鐨勮瘉涔︽枃浠讹紝榛樿涓猴細../../../ssl_key/server.crt +--keyfile ssl鐨勫瘑閽ユ枃浠讹紝榛樿涓猴細../../../ssl_key/server.key +``` + +### 瀹㈡埛绔敤娉曡瑙� + +涓嬭浇瀹㈡埛绔祴璇曞伐鍏风洰褰晄amples +```shell +wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/sample/funasr_samples.tar.gz +``` + +鍦ㄦ湇鍔″櫒涓婂畬鎴怓unASR鏈嶅姟閮ㄧ讲浠ュ悗锛屽彲浠ラ�氳繃濡備笅鐨勬楠ゆ潵娴嬭瘯鍜屼娇鐢ㄧ绾挎枃浠惰浆鍐欐湇鍔°�� +鐩墠鍒嗗埆鏀寔浠ヤ笅鍑犵缂栫▼璇█瀹㈡埛绔� + +- [Python](#python-client) +- [CPP](#cpp-client) +- [html缃戦〉鐗堟湰](#Html缃戦〉鐗�) +- [Java](#Java-client) + +#### python-client +鑻ユ兂鐩存帴杩愯client杩涜娴嬭瘯锛屽彲鍙傝�冨涓嬬畝鏄撹鏄庯紝浠ython鐗堟湰涓轰緥锛� + +```shell +python3 wss_client_asr.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav" --output_dir "./results" +``` + +鍛戒护鍙傛暟璇存槑锛� +```text +--host 涓篎unASR runtime-SDK鏈嶅姟閮ㄧ讲鏈哄櫒ip锛岄粯璁や负鏈満ip锛�127.0.0.1锛夛紝濡傛灉client涓庢湇鍔′笉鍦ㄥ悓涓�鍙版湇鍔″櫒锛岄渶瑕佹敼涓洪儴缃叉満鍣╥p +--port 10095 閮ㄧ讲绔彛鍙� +--mode offline琛ㄧず绂荤嚎鏂囦欢杞啓 +--audio_in 闇�瑕佽繘琛岃浆鍐欑殑闊抽鏂囦欢锛屾敮鎸佹枃浠惰矾寰勶紝鏂囦欢鍒楄〃wav.scp +--output_dir 璇嗗埆缁撴灉淇濆瓨璺緞 +``` + +### cpp-client +杩涘叆samples/cpp鐩綍鍚庯紝鍙互鐢╟pp杩涜娴嬭瘯锛屾寚浠ゅ涓嬶細 +```shell +./funasr-wss-client --server-ip 127.0.0.1 --port 10095 --wav-path ../audio/asr_example.wav +``` + +鍛戒护鍙傛暟璇存槑锛� + +```text +--server-ip 涓篎unASR runtime-SDK鏈嶅姟閮ㄧ讲鏈哄櫒ip锛岄粯璁や负鏈満ip锛�127.0.0.1锛夛紝濡傛灉client涓庢湇鍔′笉鍦ㄥ悓涓�鍙版湇鍔″櫒锛岄渶瑕佹敼涓洪儴缃叉満鍣╥p +--port 10095 閮ㄧ讲绔彛鍙� +--wav-path 闇�瑕佽繘琛岃浆鍐欑殑闊抽鏂囦欢锛屾敮鎸佹枃浠惰矾寰� +``` + +### Html缃戦〉鐗� + +鍦ㄦ祻瑙堝櫒涓墦寮� html/static/index.html锛屽嵆鍙嚭鐜板涓嬮〉闈紝鏀寔楹﹀厠椋庤緭鍏ヤ笌鏂囦欢涓婁紶锛岀洿鎺ヨ繘琛屼綋楠� + +<img src="images/html.png" width="900"/> + +### Java-client + +```shell +FunasrWsClient --host localhost --port 10095 --audio_in ./asr_example.wav --mode offline +``` +璇︾粏鍙互鍙傝�冩枃妗o紙[鐐瑰嚮姝ゅ](../java/readme.md)锛� + + + +## Acknowledge +1. This project is maintained by [FunASR community](https://github.com/alibaba-damo-academy/FunASR). +2. We acknowledge [zhaoming](https://github.com/zhaomingwork/FunASR/tree/add-offline-websocket-srv/funasr/runtime/websocket) for contributing the websocket(cpp-api). + + -- Gitblit v1.9.1