FunASR/funasr/runtime/python/websocket
2023-05-08 16:14:25 +08:00
..
parse_args.py websocket offline 2023-05-07 23:02:56 +08:00
README.md websocket python offline/online 2pass demo 2023-05-08 16:14:25 +08:00
requirements_client.txt websocket 2023-03-23 13:41:38 +08:00
requirements_server.txt websocket 2023-03-23 13:33:55 +08:00
ws_client.py websocket python offline/online 2pass demo 2023-05-08 16:14:25 +08:00
ws_server_2pass.py websocket python offline/online 2pass demo 2023-05-08 16:14:25 +08:00
ws_server_offline.py websocket python 2023-05-08 11:25:38 +08:00
ws_server_online.py websocket python offline/online 2pass demo 2023-05-08 16:14:25 +08:00

Service with websocket-python

This is a demo using funasr pipeline with websocket python-api.

For the Server

Install the modelscope and funasr

pip install -U modelscope funasr
# For the users in China, you could install with the command:
# pip install -U modelscope funasr -i https://mirror.sjtu.edu.cn/pypi/web/simple
git clone https://github.com/alibaba/FunASR.git && cd FunASR

Install the requirements for server

cd funasr/runtime/python/websocket
pip install -r requirements_server.txt

Start server

ASR offline server

python ws_server_offline.py --port 10095 --asr_model "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch"

ASR streaming server

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

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"

For the client

Install the requirements for client

git clone https://github.com/alibaba/FunASR.git && cd FunASR
cd funasr/runtime/python/websocket
pip install -r requirements_client.txt

Start client

ASR offline client

Recording from mircrophone
# --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
Loadding from wav.scp(kaldi style)
# --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"

ASR streaming client

Recording from mircrophone
# --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
Loadding from wav.scp(kaldi style)
# --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"

ASR offline/online 2pass client

Recording from mircrophone
# --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
Loadding from wav.scp(kaldi style)
# --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"

Acknowledge

  1. This project is maintained by FunASR community.
  2. We acknowledge zhaoming for contributing the websocket service.
  3. We acknowledge cgisky1980 for contributing the websocket service of offline model.