From c2e4e3c2e9be855277d9f4fa9cd0544892ff829a Mon Sep 17 00:00:00 2001 From: 游雁 <zhifu.gzf@alibaba-inc.com> Date: 星期三, 30 八月 2023 09:57:30 +0800 Subject: [PATCH] Merge branch 'main' of github.com:alibaba-damo-academy/FunASR add --- funasr/runtime/python/websocket/README.md | 86 ++++++++++++++++++------------------------- 1 files changed, 36 insertions(+), 50 deletions(-) diff --git a/funasr/runtime/python/websocket/README.md b/funasr/runtime/python/websocket/README.md index 4764232..686ad86 100644 --- a/funasr/runtime/python/websocket/README.md +++ b/funasr/runtime/python/websocket/README.md @@ -1,6 +1,6 @@ # Service with websocket-python -This is a demo using funasr pipeline with websocket python-api. +This is a demo using funasr pipeline with websocket python-api. It supports the offline, online, offline/online-2pass unifying speech recognition. ## For the Server @@ -21,46 +21,22 @@ ``` ### Start server -#### ASR offline server -```shell -python ws_server_offline.py \ ---port [port id] \ ---asr_model [asr model_name] \ ---punc_model [punc model_name] \ ---ngpu [0 or 1] \ ---ncpu [1 or 4] -``` -`e.g.` -```shell -python ws_server_offline.py --port 10095 --asr_model "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" -``` -#### ASR streaming server +##### API-reference ```shell -python ws_server_online.py \ ---port [port id] \ ---asr_model_online [asr model_name] \ ---ngpu [0 or 1] \ ---ncpu [1 or 4] -``` -`e.g.` -```shell -python ws_server_online.py --port 10095 --asr_model_online "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online" -``` - -#### ASR offline/online 2pass server -```shell -python ws_server_2pass.py \ +python funasr_wss_server.py \ --port [port id] \ --asr_model [asr model_name] \ --asr_model_online [asr model_name] \ --punc_model [punc model_name] \ --ngpu [0 or 1] \ ---ncpu [1 or 4] +--ncpu [1 or 4] \ +--certfile [path of certfile for ssl] \ +--keyfile [path of keyfile for ssl] ``` -`e.g.` +##### Usage examples ```shell -python ws_server_2pass.py --port 10095 --asr_model "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" --asr_model_online "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online" +python funasr_wss_server.py --port 10095 ``` ## For the client @@ -71,11 +47,19 @@ cd funasr/runtime/python/websocket pip install -r requirements_client.txt ``` +If you want infer from videos, you should install `ffmpeg` +```shell +apt-get install -y ffmpeg #ubuntu +# yum install -y ffmpeg # centos +# brew install ffmpeg # mac +# winget install ffmpeg # wins +pip3 install websockets ffmpeg-python +``` ### Start client - +#### API-reference ```shell -python ws_client.py \ +python funasr_wss_client.py \ --host [ip_address] \ --port [port id] \ --chunk_size ["5,10,5"=600ms, "8,8,4"=480ms] \ @@ -83,43 +67,45 @@ --words_max_print [max number of words to print] \ --audio_in [if set, loadding from wav.scp, else recording from mircrophone] \ --output_dir [if set, write the results to output_dir] \ ---send_without_sleep [only set for offline] +--mode [`online` for streaming asr, `offline` for non-streaming, `2pass` for unifying streaming and non-streaming asr] \ +--thread_num [thread_num for send data] ``` -#### ASR offline client -##### Recording from mircrophone +#### Usage examples +##### ASR offline client +Recording from mircrophone ```shell # --chunk_interval, "10": 600/10=60ms, "5"=600/5=120ms, "20": 600/12=30ms -python ws_client.py --host "0.0.0.0" --port 10095 --chunk_interval 10 --words_max_print 100 +python funasr_wss_client.py --host "0.0.0.0" --port 10095 --mode offline ``` -##### Loadding from wav.scp(kaldi style) +Loadding from wav.scp(kaldi style) ```shell # --chunk_interval, "10": 600/10=60ms, "5"=600/5=120ms, "20": 600/12=30ms -python ws_client.py --host "0.0.0.0" --port 10095 --chunk_interval 10 --words_max_print 100 --audio_in "./data/wav.scp" --send_without_sleep --output_dir "./results" +python funasr_wss_client.py --host "0.0.0.0" --port 10095 --mode offline --audio_in "./data/wav.scp" --output_dir "./results" ``` -#### ASR streaming client -##### Recording from mircrophone +##### ASR streaming client +Recording from mircrophone ```shell # --chunk_size, "5,10,5"=600ms, "8,8,4"=480ms -python ws_client.py --host "0.0.0.0" --port 10095 --chunk_size "5,10,5" --words_max_print 100 +python funasr_wss_client.py --host "0.0.0.0" --port 10095 --mode online --chunk_size "5,10,5" ``` -##### Loadding from wav.scp(kaldi style) +Loadding from wav.scp(kaldi style) ```shell # --chunk_size, "5,10,5"=600ms, "8,8,4"=480ms -python ws_client.py --host "0.0.0.0" --port 10095 --chunk_size "5,10,5" --audio_in "./data/wav.scp" --words_max_print 100 --output_dir "./results" +python funasr_wss_client.py --host "0.0.0.0" --port 10095 --mode online --chunk_size "5,10,5" --audio_in "./data/wav.scp" --output_dir "./results" ``` -#### ASR offline/online 2pass client -##### Recording from mircrophone +##### ASR offline/online 2pass client +Recording from mircrophone ```shell # --chunk_size, "5,10,5"=600ms, "8,8,4"=480ms -python ws_client.py --host "0.0.0.0" --port 10095 --chunk_size "8,8,4" --words_max_print 10000 +python funasr_wss_client.py --host "0.0.0.0" --port 10095 --mode 2pass --chunk_size "8,8,4" ``` -##### Loadding from wav.scp(kaldi style) +Loadding from wav.scp(kaldi style) ```shell # --chunk_size, "5,10,5"=600ms, "8,8,4"=480ms -python ws_client.py --host "0.0.0.0" --port 10095 --chunk_size "8,8,4" --audio_in "./data/wav.scp" --words_max_print 10000 --output_dir "./results" +python funasr_wss_client.py --host "0.0.0.0" --port 10095 --mode 2pass --chunk_size "8,8,4" --audio_in "./data/wav.scp" --output_dir "./results" ``` ## Acknowledge 1. This project is maintained by [FunASR community](https://github.com/alibaba-damo-academy/FunASR). -- Gitblit v1.9.1