Merge branch 'main' of https://github.com/alibaba-damo-academy/FunASR into main
| | |
| | | pre-build-command: "pip install sphinx-markdown-tables nbsphinx jinja2 recommonmark sphinx_rtd_theme myst-parser" |
| | | |
| | | - name: deploy copy |
| | | if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev_wjm' || github.ref == 'refs/heads/dev_lyh' |
| | | if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev_wjm' || github.ref == 'refs/heads/dev_lyh' || github.ref == 'refs/heads/dev_lhn' |
| | | run: | |
| | | mkdir public |
| | | touch public/.nojekyll |
| | |
| | | cp -r docs/m2met2/_build/html/* public/m2met2/ |
| | | |
| | | - name: deploy github.io pages |
| | | if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev_wjm' || github.ref == 'refs/heads/dev_lyh' |
| | | if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev_wjm' || github.ref == 'refs/heads/dev_lyh' || github.ref == 'refs/heads/dev_lhn' |
| | | uses: peaceiris/actions-gh-pages@v2.3.1 |
| | | env: |
| | | GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} |
| | |
| | | Then you can directly start the recipe as follows: |
| | | ```sh |
| | | conda activate funasr |
| | | . ./run.sh --CUDA_VISIBLE_DEVICES="0,1" --gpu_num=2 |
| | | bash run.sh --CUDA_VISIBLE_DEVICES "0,1" --gpu_num 2 |
| | | ``` |
| | | |
| | | The training log files are saved in `${exp_dir}/exp/${model_dir}/log/train.log.*`, which can be viewed using the following command: |
| | |
| | | |
| | | ### Decoding by CPU or GPU |
| | | |
| | | We support CPU and GPU decoding. For CPU decoding, set `gpu_inference=false` and `njob` to specific the total number of CPU jobs. For GPU decoding, first set `gpu_inference=true`. Then set `gpuid_list` to specific which GPUs for decoding and `njob` to specific the number of decoding jobs on each GPU. |
| | | We support CPU and GPU decoding. For CPU decoding, set `gpu_inference=false` and `njob` to specific the total number of CPU jobs. For GPU decoding, first set `gpu_inference=true`. Then set `gpuid_list` to specific which GPUs for decoding and `njob` to specific the number of decoding jobs on each GPU. |
| | |
| | | ``` |
| | | Full code of demo, please ref to [demo](https://github.com/alibaba-damo-academy/FunASR/discussions/241) |
| | | |
| | | #### [Paraformer-contextual Model](https://www.modelscope.cn/models/damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404/summary) |
| | | ```python |
| | | from modelscope.pipelines import pipeline |
| | | from modelscope.utils.constant import Tasks |
| | | |
| | | param_dict = dict() |
| | | # param_dict['hotword'] = "https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/hotword.txt" |
| | | param_dict['hotword']="邓郁松 王颖春 王晔君" |
| | | inference_pipeline = pipeline( |
| | | task=Tasks.auto_speech_recognition, |
| | | model="damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404", |
| | | param_dict=param_dict) |
| | | |
| | | rec_result = inference_pipeline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_hotword.wav') |
| | | print(rec_result) |
| | | ``` |
| | | |
| | | #### [UniASR Model](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online/summary) |
| | | There are three decoding mode for UniASR model(`fast`、`normal`、`offline`), for more model details, please refer to [docs](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online/summary) |
| | | ```python |
| | |
| | | ``` |
| | | 演示代码完整版本,请参考[demo](https://github.com/alibaba-damo-academy/FunASR/discussions/241) |
| | | |
| | | #### [Paraformer-contextual Model](https://www.modelscope.cn/models/damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404/summary) |
| | | ```python |
| | | from modelscope.pipelines import pipeline |
| | | from modelscope.utils.constant import Tasks |
| | | |
| | | param_dict = dict() |
| | | # param_dict['hotword'] = "https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/hotword.txt" |
| | | param_dict['hotword']="邓郁松 王颖春 王晔君" |
| | | inference_pipeline = pipeline( |
| | | task=Tasks.auto_speech_recognition, |
| | | model="damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404", |
| | | param_dict=param_dict) |
| | | |
| | | rec_result = inference_pipeline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_hotword.wav') |
| | | print(rec_result) |
| | | ``` |
| | | |
| | | #### [UniASR 模型](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online/summary) |
| | | UniASR 模型有三种解码模式(fast、normal、offline),更多模型细节请参考[文档](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online/summary) |
| | | ```python |
| New file |
| | |
| | | ../TEMPLATE/README.md |
| New file |
| | |
| | | ../TEMPLATE/README_zh.md |
| New file |
| | |
| | | from modelscope.pipelines import pipeline |
| | | from modelscope.utils.constant import Tasks |
| | | |
| | | if __name__ == '__main__': |
| | | audio_in = 'https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_en.wav' |
| | | output_dir = "./results" |
| | | inference_pipeline = pipeline( |
| | | task=Tasks.auto_speech_recognition, |
| | | model='damo/speech_paraformer-large-vad-punc_asr_nat-en-16k-common-vocab10020', |
| | | model_revision='v1.0.0', |
| | | vad_model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch', |
| | | punc_model='damo/punc_ct-transformer_cn-en-common-vocab471067-large', |
| | | punc_model_revision='v1.0.0', |
| | | output_dir=output_dir, |
| | | ) |
| | | rec_result = inference_pipeline(audio_in=audio_in, batch_size_token=5000, batch_size_token_threshold_s=40, max_single_segment_time=6000) |
| | | print(rec_result) |
| | | |
| New file |
| | |
| | | import os |
| | | import shutil |
| | | import argparse |
| | | from modelscope.pipelines import pipeline |
| | | from modelscope.utils.constant import Tasks |
| | | |
| | | def modelscope_infer(args): |
| | | os.environ['CUDA_VISIBLE_DEVICES'] = str(args.gpuid) |
| | | inference_pipeline = pipeline( |
| | | task=Tasks.auto_speech_recognition, |
| | | model=args.model, |
| | | output_dir=args.output_dir, |
| | | param_dict={"decoding_model": args.decoding_mode, "hotword": args.hotword_txt} |
| | | ) |
| | | inference_pipeline(audio_in=args.audio_in, batch_size_token=args.batch_size_token) |
| | | |
| | | if __name__ == "__main__": |
| | | parser = argparse.ArgumentParser() |
| | | parser.add_argument('--model', type=str, default="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch") |
| | | parser.add_argument('--audio_in', type=str, default="./data/test/wav.scp") |
| | | parser.add_argument('--output_dir', type=str, default="./results/") |
| | | parser.add_argument('--decoding_mode', type=str, default="normal") |
| | | parser.add_argument('--hotword_txt', type=str, default=None) |
| | | parser.add_argument('--batch_size_token', type=int, default=5000) |
| | | parser.add_argument('--gpuid', type=str, default="0") |
| | | args = parser.parse_args() |
| | | modelscope_infer(args) |
| New file |
| | |
| | | #!/usr/bin/env bash |
| | | |
| | | set -e |
| | | set -u |
| | | set -o pipefail |
| | | |
| | | stage=1 |
| | | stop_stage=2 |
| | | model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" |
| | | data_dir="./data/test" |
| | | output_dir="./results" |
| | | batch_size=64 |
| | | gpu_inference=true # whether to perform gpu decoding |
| | | gpuid_list="0,1" # set gpus, e.g., gpuid_list="0,1" |
| | | njob=64 # the number of jobs for CPU decoding, if gpu_inference=false, use CPU decoding, please set njob |
| | | checkpoint_dir= |
| | | checkpoint_name="valid.cer_ctc.ave.pb" |
| | | |
| | | . utils/parse_options.sh || exit 1; |
| | | |
| | | if ${gpu_inference} == "true"; then |
| | | nj=$(echo $gpuid_list | awk -F "," '{print NF}') |
| | | else |
| | | nj=$njob |
| | | batch_size=1 |
| | | gpuid_list="" |
| | | for JOB in $(seq ${nj}); do |
| | | gpuid_list=$gpuid_list"-1," |
| | | done |
| | | fi |
| | | |
| | | mkdir -p $output_dir/split |
| | | split_scps="" |
| | | for JOB in $(seq ${nj}); do |
| | | split_scps="$split_scps $output_dir/split/wav.$JOB.scp" |
| | | done |
| | | perl utils/split_scp.pl ${data_dir}/wav.scp ${split_scps} |
| | | |
| | | if [ -n "${checkpoint_dir}" ]; then |
| | | python utils/prepare_checkpoint.py ${model} ${checkpoint_dir} ${checkpoint_name} |
| | | model=${checkpoint_dir}/${model} |
| | | fi |
| | | |
| | | if [ $stage -le 1 ] && [ $stop_stage -ge 1 ];then |
| | | echo "Decoding ..." |
| | | gpuid_list_array=(${gpuid_list//,/ }) |
| | | for JOB in $(seq ${nj}); do |
| | | { |
| | | id=$((JOB-1)) |
| | | gpuid=${gpuid_list_array[$id]} |
| | | mkdir -p ${output_dir}/output.$JOB |
| | | python infer.py \ |
| | | --model ${model} \ |
| | | --audio_in ${output_dir}/split/wav.$JOB.scp \ |
| | | --output_dir ${output_dir}/output.$JOB \ |
| | | --batch_size ${batch_size} \ |
| | | --gpuid ${gpuid} |
| | | }& |
| | | done |
| | | wait |
| | | |
| | | mkdir -p ${output_dir}/1best_recog |
| | | for f in token score text; do |
| | | if [ -f "${output_dir}/output.1/1best_recog/${f}" ]; then |
| | | for i in $(seq "${nj}"); do |
| | | cat "${output_dir}/output.${i}/1best_recog/${f}" |
| | | done | sort -k1 >"${output_dir}/1best_recog/${f}" |
| | | fi |
| | | done |
| | | fi |
| | | |
| | | if [ $stage -le 2 ] && [ $stop_stage -ge 2 ];then |
| | | echo "Computing WER ..." |
| | | cp ${output_dir}/1best_recog/text ${output_dir}/1best_recog/text.proc |
| | | cp ${data_dir}/text ${output_dir}/1best_recog/text.ref |
| | | python utils/compute_wer.py ${output_dir}/1best_recog/text.ref ${output_dir}/1best_recog/text.proc ${output_dir}/1best_recog/text.cer |
| | | tail -n 3 ${output_dir}/1best_recog/text.cer |
| | | fi |
| | | |
| | | if [ $stage -le 3 ] && [ $stop_stage -ge 3 ];then |
| | | echo "SpeechIO TIOBE textnorm" |
| | | echo "$0 --> Normalizing REF text ..." |
| | | ./utils/textnorm_zh.py \ |
| | | --has_key --to_upper \ |
| | | ${data_dir}/text \ |
| | | ${output_dir}/1best_recog/ref.txt |
| | | |
| | | echo "$0 --> Normalizing HYP text ..." |
| | | ./utils/textnorm_zh.py \ |
| | | --has_key --to_upper \ |
| | | ${output_dir}/1best_recog/text.proc \ |
| | | ${output_dir}/1best_recog/rec.txt |
| | | grep -v $'\t$' ${output_dir}/1best_recog/rec.txt > ${output_dir}/1best_recog/rec_non_empty.txt |
| | | |
| | | echo "$0 --> computing WER/CER and alignment ..." |
| | | ./utils/error_rate_zh \ |
| | | --tokenizer char \ |
| | | --ref ${output_dir}/1best_recog/ref.txt \ |
| | | --hyp ${output_dir}/1best_recog/rec_non_empty.txt \ |
| | | ${output_dir}/1best_recog/DETAILS.txt | tee ${output_dir}/1best_recog/RESULTS.txt |
| | | rm -rf ${output_dir}/1best_recog/rec.txt ${output_dir}/1best_recog/rec_non_empty.txt |
| | | fi |
| | | |
| New file |
| | |
| | | ../../asr/TEMPLATE/utils |
| | |
| | | ark_reader = ReadHelper('ark:{}'.format(data_file)) |
| | | reader_list.append(ark_reader) |
| | | elif data_type == "text" or data_type == "sound" or data_type == 'text_hotword': |
| | | text_reader = open(data_file, "r") |
| | | text_reader = open(data_file, "r", encoding="utf-8") |
| | | reader_list.append(text_reader) |
| | | elif data_type == "none": |
| | | continue |
| | |
| | | # pre_prob = conf.get("pre_prob", 0) # unused yet |
| | | if pre_hwfile is not None: |
| | | pre_hwlist = [] |
| | | with open(pre_hwfile, 'r') as fin: |
| | | with open(pre_hwfile, 'r', encoding="utf-8") as fin: |
| | | for line in fin.readlines(): |
| | | pre_hwlist.append(line.strip()) |
| | | else: |
| | |
| | | |
| | | ``` |
| | | |
| | | |
| | | ## Starting the server |
| | | |
| | | Use the flollowing script to start the server : |
| | |
| | | # If you want to deploy the timestamp or hotword model, please set --model-dir to the corresponding model: |
| | | # speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx(timestamp) |
| | | # damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx(hotword) |
| | | |
| | | ``` |
| | | |
| | | More details about the script run_server.sh: |
| | | ### More details about the script run_server.sh: |
| | | |
| | | The FunASR-wss-server supports downloading models from Modelscope. You can set the model download address (--download-model-dir, default is /workspace/models) and the model ID (--model-dir, --vad-dir, --punc-dir). Here is an example: |
| | | The funasr-wss-server supports downloading models from Modelscope. You can set the model download address (--download-model-dir, default is /workspace/models) and the model ID (--model-dir, --vad-dir, --punc-dir). Here is an example: |
| | | |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server \ |
| | | cd /workspace/FunASR/funasr/runtime |
| | | nohup bash run_server.sh \ |
| | | --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 \ |
| | |
| | | --io-thread-num 8 \ |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key |
| | | --keyfile ../../../ssl_key/server.key > log.out 2>&1 & |
| | | ``` |
| | | |
| | | Introduction to command parameters: |
| | | Introduction to run_server.sh parameters: |
| | | |
| | | ```text |
| | | --download-model-dir: Model download address, download models from Modelscope by setting the model ID. |
| | |
| | | --port: Port number that the server listens on. Default is 10095. |
| | | --decoder-thread-num: Number of inference threads that the server starts. Default is 8. |
| | | --io-thread-num: Number of IO threads that the server starts. Default is 1. |
| | | --certfile <string>: SSL certificate file. Default is ../../../ssl_key/server.crt. If you want to close ssl,set "" |
| | | --keyfile <string>: SSL key file. Default is ../../../ssl_key/server.key. If you want to close ssl,set "" |
| | | --certfile <string>: SSL certificate file. Default is ../../../ssl_key/server.crt. If you want to close ssl,set 0 |
| | | --keyfile <string>: SSL key file. Default is ../../../ssl_key/server.key. |
| | | ``` |
| | | |
| | | The FunASR-wss-server also supports loading models from a local path (see Preparing Model Resources for detailed instructions on preparing local model resources). Here is an example: |
| | | ### Shutting Down the FunASR Service |
| | | ```text |
| | | # Check the PID of the funasr-wss-server process |
| | | ps -x | grep funasr-wss-server |
| | | kill -9 PID |
| | | ``` |
| | | |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server \ |
| | | --model-dir /workspace/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ |
| | | --vad-dir /workspace/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ |
| | | --punc-dir /workspace/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx \ |
| | | --itn-dir /workspace/models/thuduj12/fst_itn_zh \ |
| | | --decoder-thread-num 32 \ |
| | | --io-thread-num 8 \ |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key |
| | | ``` |
| | | ### Modifying Models and Other Parameters |
| | | To replace the currently used model or other parameters, you need to first shut down the FunASR service, make the necessary modifications to the parameters you want to replace, and then restart the FunASR service. The model should be either an ASR/VAD/PUNC model from ModelScope or a fine-tuned model obtained from ModelScope. |
| | | ```text |
| | | # For example, to replace the ASR model with damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx, use the following parameter setting --model-dir |
| | | --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx |
| | | # Set the port number using --port |
| | | --port <port number> |
| | | # Set the number of inference threads the server will start using --decoder-thread-num |
| | | --decoder-thread-num <decoder thread num> |
| | | # Set the number of IO threads the server will start using --io-thread-num |
| | | --io-thread-num <io thread num> |
| | | # Disable SSL certificate |
| | | --certfile 0 |
| | | ``` |
| | | |
| | | After executing the above command, the real-time speech transcription service will be started. If the model is specified as a ModelScope model id, the following models will be automatically downloaded from ModelScope: |
| | | [FSMN-VAD](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary) |
| | | [Paraformer-lagre](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/summary) |
| | | [CT-Transformer](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx/summary) |
| | | [FSMN-VAD](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/summary), |
| | | [CT-Transformer](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx/summary), |
| | | [FST-ITN](https://www.modelscope.cn/models/thuduj12/fst_itn_zh/summary) |
| | | |
| | | If you wish to deploy your fine-tuned model (e.g., 10epoch.pb), you need to manually rename the model to model.pb and replace the original model.pb in ModelScope. Then, specify the path as `model_dir`. |
| | |
| | | |
| | | ``` |
| | | |
| | | More details about the script run_server.sh: |
| | | ### More details about the script run_server.sh: |
| | | |
| | | The FunASR-wss-server supports downloading models from Modelscope. You can set the model download address (--download-model-dir, default is /workspace/models) and the model ID (--model-dir, --vad-dir, --punc-dir). Here is an example: |
| | | The funasr-wss-server supports downloading models from Modelscope. You can set the model download address (--download-model-dir, default is /workspace/models) and the model ID (--model-dir, --vad-dir, --punc-dir). Here is an example: |
| | | |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server \ |
| | | cd /workspace/FunASR/funasr/runtime |
| | | nohup bash run_server.sh \ |
| | | --download-model-dir /workspace/models \ |
| | | --model-dir damo/speech_paraformer-large_asr_nat-en-16k-common-vocab10020-onnx \ |
| | | --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ |
| | |
| | | --keyfile ../../../ssl_key/server.key |
| | | ``` |
| | | |
| | | Introduction to command parameters: |
| | | Introduction to run_server.sh parameters: |
| | | |
| | | ```text |
| | | --download-model-dir: Model download address, download models from Modelscope by setting the model ID. |
| | |
| | | --port: Port number that the server listens on. Default is 10095. |
| | | --decoder-thread-num: Number of inference threads that the server starts. Default is 8. |
| | | --io-thread-num: Number of IO threads that the server starts. Default is 1. |
| | | --certfile <string>: SSL certificate file. Default is ../../../ssl_key/server.crt. If you want to close ssl,set "" |
| | | --keyfile <string>: SSL key file. Default is ../../../ssl_key/server.key. If you want to close ssl,set "" |
| | | --certfile <string>: SSL certificate file. Default is ../../../ssl_key/server.crt. If you want to close ssl,set 0 |
| | | --keyfile <string>: SSL key file. Default is ../../../ssl_key/server.key. |
| | | ``` |
| | | |
| | | The FunASR-wss-server also supports loading models from a local path (see Preparing Model Resources for detailed instructions on preparing local model resources). Here is an example: |
| | | ### Shutting Down the FunASR Service |
| | | ```text |
| | | # Check the PID of the funasr-wss-server process |
| | | ps -x | grep funasr-wss-server |
| | | kill -9 PID |
| | | ``` |
| | | |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server \ |
| | | --model-dir /workspace/models/damo/speech_paraformer-large_asr_nat-en-16k-common-vocab10020-onnx \ |
| | | --vad-dir /workspace/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ |
| | | --punc-dir /workspace/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx \ |
| | | --decoder-thread-num 32 \ |
| | | --io-thread-num 8 \ |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key |
| | | ``` |
| | | ### Modifying Models and Other Parameters |
| | | To replace the currently used model or other parameters, you need to first shut down the FunASR service, make the necessary modifications to the parameters you want to replace, and then restart the FunASR service. The model should be either an ASR/VAD/PUNC model from ModelScope or a fine-tuned model obtained from ModelScope. |
| | | ```text |
| | | # For example, to replace the ASR model with damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx, use the following parameter setting --model-dir |
| | | --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx |
| | | # Set the port number using --port |
| | | --port <port number> |
| | | # Set the number of inference threads the server will start using --decoder-thread-num |
| | | --decoder-thread-num <decoder thread num> |
| | | # Set the number of IO threads the server will start using --io-thread-num |
| | | --io-thread-num <io thread num> |
| | | # Disable SSL certificate |
| | | --certfile 0 |
| | | ``` |
| | | |
| | | After executing the above command, the real-time speech transcription service will be started. If the model is specified as a ModelScope model id, the following models will be automatically downloaded from ModelScope: |
| | | [FSMN-VAD](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary) |
| | | [Paraformer-lagre](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-en-16k-common-vocab10020-onnx/summary) |
| | | [FSMN-VAD](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-en-16k-common-vocab10020-onnx/summary), |
| | | [CT-Transformer](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx/summary) |
| | | |
| | | If you wish to deploy your fine-tuned model (e.g., 10epoch.pb), you need to manually rename the model to model.pb and replace the original model.pb in ModelScope. Then, specify the path as `model_dir`. |
| | |
| | | # 如果您想关闭ssl,增加参数:--certfile 0 |
| | | |
| | | ``` |
| | | 服务端详细参数介绍可参考[服务端参数介绍](#服务端参数介绍) |
| | | 服务端详细参数介绍可参考[服务端用法详解](#服务端用法详解) |
| | | ### 客户端测试与使用 |
| | | |
| | | 下载客户端测试工具目录samples |
| | |
| | | |
| | | |
| | | |
| | | ## 服务端参数介绍: |
| | | ## 服务端用法详解: |
| | | |
| | | funasr-wss-server支持从Modelscope下载模型,设置模型下载地址(--download-model-dir,默认为/workspace/models)及model ID(--model-dir、--vad-dir、--punc-dir),示例如下: |
| | | ### 启动FunASR服务 |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server \ |
| | | cd /workspace/FunASR/funasr/runtime |
| | | nohup bash run_server.sh \ |
| | | --download-model-dir /workspace/models \ |
| | | --model-dir damo/speech_paraformer-large_asr_nat-en-16k-common-vocab10020-onnx \ |
| | | --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ |
| | |
| | | --io-thread-num 8 \ |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key |
| | | --keyfile ../../../ssl_key/server.key > log.out 2>&1 & |
| | | ``` |
| | | 命令参数介绍: |
| | | **run_server.sh命令参数介绍** |
| | | ```text |
| | | --download-model-dir 模型下载地址,通过设置model ID从Modelscope下载模型 |
| | | --model-dir modelscope model ID |
| | |
| | | --port 服务端监听的端口号,默认为 10095 |
| | | --decoder-thread-num 服务端启动的推理线程数,默认为 8 |
| | | --io-thread-num 服务端启动的IO线程数,默认为 1 |
| | | --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如果需要关闭ssl,参数设置为”“ |
| | | --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key,如果需要关闭ssl,参数设置为”“ |
| | | --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如果需要关闭ssl,参数设置为0 |
| | | --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key |
| | | ``` |
| | | |
| | | funasr-wss-server同时也支持从本地路径加载模型(本地模型资源准备详见[模型资源准备](#模型资源准备))示例如下: |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server \ |
| | | --model-dir /workspace/models/damo/speech_paraformer-large_asr_nat-en-16k-common-vocab10020-onnx \ |
| | | --vad-dir /workspace/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ |
| | | --punc-dir /workspace/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx \ |
| | | --decoder-thread-num 32 \ |
| | | --io-thread-num 8 \ |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key |
| | | ``` |
| | | 命令参数介绍: |
| | | ### 关闭FunASR服务 |
| | | ```text |
| | | --model-dir ASR模型路径,默认为:/workspace/models/asr |
| | | --quantize True为量化ASR模型,False为非量化ASR模型,默认是True |
| | | --vad-dir VAD模型路径,默认为:/workspace/models/vad |
| | | --vad-quant True为量化VAD模型,False为非量化VAD模型,默认是True |
| | | --punc-dir PUNC模型路径,默认为:/workspace/models/punc |
| | | --punc-quant True为量化PUNC模型,False为非量化PUNC模型,默认是True |
| | | --itn-dir modelscope model ID |
| | | --port 服务端监听的端口号,默认为 10095 |
| | | --decoder-thread-num 服务端启动的推理线程数,默认为 8 |
| | | --io-thread-num 服务端启动的IO线程数,默认为 1 |
| | | --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如果需要关闭ssl,参数设置为”“ |
| | | --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key,如果需要关闭ssl,参数设置为”“ |
| | | # 查看 funasr-wss-server 对应的PID |
| | | ps -x | grep funasr-wss-server |
| | | kill -9 PID |
| | | ``` |
| | | |
| | | 执行上述指令后,启动离线文件转写服务。如果模型指定为ModelScope中model id,会自动从MoldeScope中下载如下模型: |
| | | [FSMN-VAD模型](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-en-16k-common-vocab10020-onnx/summary) |
| | | ### 修改模型及其他参数 |
| | | 替换正在使用的模型或者其他参数,需先关闭FunASR服务,修改需要替换的参数,并重新启动FunASR服务。其中模型需为ModelScope中的ASR/VAD/PUNC模型,或者从ModelScope中模型finetune后的模型。 |
| | | ```text |
| | | # 例如替换ASR模型为 damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx,则如下设置参数 --model-dir |
| | | --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx |
| | | # 设置端口号 --port |
| | | --port <port number> |
| | | # 设置服务端启动的推理线程数 --decoder-thread-num |
| | | --decoder-thread-num <decoder thread num> |
| | | # 设置服务端启动的IO线程数 --io-thread-num |
| | | --io-thread-num <io thread num> |
| | | # 关闭SSL证书 |
| | | --certfile 0 |
| | | ``` |
| | | |
| | | |
| | | 执行上述指令后,启动英文离线文件转写服务。如果模型指定为ModelScope中model id,会自动从MoldeScope中下载如下模型: |
| | | [FSMN-VAD模型](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-en-16k-common-vocab10020-onnx/summary), |
| | | [CT-Transformer标点预测模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx/summary) |
| | | |
| | | 如果,您希望部署您finetune后的模型(例如10epoch.pb),需要手动将模型重命名为model.pb,并将原modelscope中模型model.pb替换掉,将路径指定为`model_dir`即可。 |
| | |
| | | # 或者 damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx(热词) |
| | | |
| | | ``` |
| | | 服务端详细参数介绍可参考[服务端参数介绍](#服务端参数介绍) |
| | | 服务端详细参数介绍可参考[服务端用法详解](#服务端用法详解) |
| | | ### 客户端测试与使用 |
| | | |
| | | 下载客户端测试工具目录samples |
| | |
| | | ``` |
| | | 详细可以参考文档([点击此处](../java/readme.md)) |
| | | |
| | | ## 服务端用法详解: |
| | | |
| | | |
| | | ## 服务端参数介绍: |
| | | |
| | | funasr-wss-server支持从Modelscope下载模型,设置模型下载地址(--download-model-dir,默认为/workspace/models)及model ID(--model-dir、--vad-dir、--punc-dir),示例如下: |
| | | ### 启动FunASR服务 |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server \ |
| | | cd /workspace/FunASR/funasr/runtime |
| | | nohup bash run_server.sh \ |
| | | --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 \ |
| | |
| | | --io-thread-num 8 \ |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key |
| | | --keyfile ../../../ssl_key/server.key > log.out 2>&1 & |
| | | ``` |
| | | 命令参数介绍: |
| | | **run_server.sh命令参数介绍** |
| | | ```text |
| | | --download-model-dir 模型下载地址,通过设置model ID从Modelscope下载模型 |
| | | --model-dir modelscope model ID |
| | |
| | | --port 服务端监听的端口号,默认为 10095 |
| | | --decoder-thread-num 服务端启动的推理线程数,默认为 8 |
| | | --io-thread-num 服务端启动的IO线程数,默认为 1 |
| | | --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如果需要关闭ssl,参数设置为”“ |
| | | --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key,如果需要关闭ssl,参数设置为”“ |
| | | --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如果需要关闭ssl,参数设置为0 |
| | | --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key |
| | | ``` |
| | | |
| | | funasr-wss-server同时也支持从本地路径加载模型(本地模型资源准备详见[模型资源准备](#模型资源准备))示例如下: |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server \ |
| | | --model-dir /workspace/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ |
| | | --vad-dir /workspace/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ |
| | | --punc-dir /workspace/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx \ |
| | | --itn-dir /workspace/models/thuduj12/fst_itn_zh \ |
| | | --decoder-thread-num 32 \ |
| | | --io-thread-num 8 \ |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key |
| | | ``` |
| | | 命令参数介绍: |
| | | ### 关闭FunASR服务 |
| | | ```text |
| | | --model-dir ASR模型路径,默认为:/workspace/models/asr |
| | | --quantize True为量化ASR模型,False为非量化ASR模型,默认是True |
| | | --vad-dir VAD模型路径,默认为:/workspace/models/vad |
| | | --vad-quant True为量化VAD模型,False为非量化VAD模型,默认是True |
| | | --punc-dir PUNC模型路径,默认为:/workspace/models/punc |
| | | --punc-quant True为量化PUNC模型,False为非量化PUNC模型,默认是True |
| | | --itn-dir modelscope model ID |
| | | --port 服务端监听的端口号,默认为 10095 |
| | | --decoder-thread-num 服务端启动的推理线程数,默认为 8 |
| | | --io-thread-num 服务端启动的IO线程数,默认为 1 |
| | | --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如果需要关闭ssl,参数设置为”“ |
| | | --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key,如果需要关闭ssl,参数设置为”“ |
| | | # 查看 funasr-wss-server 对应的PID |
| | | ps -x | grep funasr-wss-server |
| | | kill -9 PID |
| | | ``` |
| | | |
| | | ### 修改模型及其他参数 |
| | | 替换正在使用的模型或者其他参数,需先关闭FunASR服务,修改需要替换的参数,并重新启动FunASR服务。其中模型需为ModelScope中的ASR/VAD/PUNC模型,或者从ModelScope中模型finetune后的模型。 |
| | | ```text |
| | | # 例如替换ASR模型为 damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx,则如下设置参数 --model-dir |
| | | --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx |
| | | # 设置端口号 --port |
| | | --port <port number> |
| | | # 设置服务端启动的推理线程数 --decoder-thread-num |
| | | --decoder-thread-num <decoder thread num> |
| | | # 设置服务端启动的IO线程数 --io-thread-num |
| | | --io-thread-num <io thread num> |
| | | # 关闭SSL证书 |
| | | --certfile 0 |
| | | ``` |
| | | |
| | | 执行上述指令后,启动离线文件转写服务。如果模型指定为ModelScope中model id,会自动从MoldeScope中下载如下模型: |
| | | [FSMN-VAD模型](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/summary) |
| | | [CT-Transformer标点预测模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx/summary) |
| | | [FSMN-VAD模型](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/summary), |
| | | [CT-Transformer标点预测模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-onnx/summary), |
| | | [基于FST的中文ITN](https://www.modelscope.cn/models/thuduj12/fst_itn_zh/summary) |
| | | |
| | | 如果,您希望部署您finetune后的模型(例如10epoch.pb),需要手动将模型重命名为model.pb,并将原modelscope中模型model.pb替换掉,将路径指定为`model_dir`即可。 |
| | |
| | | |
| | | # If you want to close ssl,please add:--certfile 0 |
| | | ``` |
| | | For a more detailed description of server parameters, please refer to [Server Introduction]() |
| | | For a more detailed description of server parameters, please refer to Server Introduction |
| | | ### Client Testing and Usage |
| | | |
| | | Download the client testing tool directory `samples`: |
| | | ```shell |
| | | wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/sample/funasr_samples.tar.gz |
| | | ``` |
| | | For illustration, we will use the Python language client, which supports audio formats (.wav, .pcm) and a multi-file list wav.scp input. For other client versions, please refer to the [documentation](). |
| | | For illustration, we will use the Python language client, which supports audio formats (.wav, .pcm) and a multi-file list wav.scp input. |
| | | |
| | | ```shell |
| | | python3 wss_client_asr.py --host "127.0.0.1" --port 10095 --mode 2pass |
| | |
| | | |
| | | For more detailed usage, please click on the links above. For more client version support, please refer to [WebSocket/GRPC Protocol](./websocket_protocol_zh.md). |
| | | |
| | | ## Server Introduction: |
| | | |
| | | funasr-wss-server-2pass supports downloading models from Modelscope or starting from a local directory path, as shown below: |
| | | ## Server Introduction |
| | | |
| | | Use the flollowing script to start the server : |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server-2pass \ |
| | | cd /workspace/FunASR/funasr/runtime |
| | | nohup bash run_server_2pass.sh \ |
| | | --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ |
| | | --online-model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx \ |
| | | --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ |
| | | --punc-dir damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx \ |
| | | --itn-dir thuduj12/fst_itn_zh \ |
| | | --decoder-thread-num 32 \ |
| | | --io-thread-num 8 \ |
| | | --port 10095 |
| | | ``` |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key > log.out 2>&1 & |
| | | |
| | | Command parameter introduction: |
| | | # If you want to close ssl,please add:--certfile 0 |
| | | # If you want to deploy the timestamp or hotword model, please set --model-dir to the corresponding model: |
| | | # speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx(timestamp) |
| | | # damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx(hotword) |
| | | |
| | | ``` |
| | | |
| | | ### More details about the script run_server_2pass.sh: |
| | | ```text |
| | | --download-model-dir Model download address, download models from Modelscope by setting model id |
| | | --model-dir modelscope model ID |
| | | --download-model-dir: Model download address, download models from Modelscope by setting the model ID. |
| | | --model-dir: Modelscope model ID. |
| | | --online-model-dir modelscope model ID |
| | | --quantize True for quantized ASR models, False for non-quantized ASR models, default is True |
| | | --vad-dir modelscope model ID |
| | | --vad-quant True for quantized VAD models, False for non-quantized VAD models, default is True |
| | | --punc-dir modelscope model ID |
| | | --punc-quant True for quantized PUNC models, False for non-quantized PUNC models, default is True |
| | | --quantize: True for quantized ASR model, False for non-quantized ASR model. Default is True. |
| | | --vad-dir: Modelscope model ID. |
| | | --vad-quant: True for quantized VAD model, False for non-quantized VAD model. Default is True. |
| | | --punc-dir: Modelscope model ID. |
| | | --punc-quant: True for quantized PUNC model, False for non-quantized PUNC model. Default is True. |
| | | --itn-dir modelscope model ID |
| | | --port Port number that the server should listen on, default is 10095 |
| | | --decoder-thread-num The number of inference threads the server should start, default is 8 |
| | | --io-thread-num The number of IO threads the server should start, default is 1 |
| | | --certfile SSL certificate file, the default is: ../../../ssl_key/server.crt, set to "" to disable |
| | | --keyfile SSL key file, the default is: ../../../ssl_key/server.key, set to "" to disable |
| | | --port: Port number that the server listens on. Default is 10095. |
| | | --decoder-thread-num: Number of inference threads that the server starts. Default is 8. |
| | | --io-thread-num: Number of IO threads that the server starts. Default is 1. |
| | | --certfile <string>: SSL certificate file. Default is ../../../ssl_key/server.crt. If you want to close ssl,set 0 |
| | | --keyfile <string>: SSL key file. Default is ../../../ssl_key/server.key. |
| | | ``` |
| | | |
| | | ### Shutting Down the FunASR Service |
| | | ```text |
| | | # Check the PID of the funasr-wss-server-2pass process |
| | | ps -x | grep funasr-wss-server-2pass |
| | | kill -9 PID |
| | | ``` |
| | | |
| | | ### Modifying Models and Other Parameters |
| | | To replace the currently used model or other parameters, you need to first shut down the FunASR service, make the necessary modifications to the parameters you want to replace, and then restart the FunASR service. The model should be either an ASR/VAD/PUNC model from ModelScope or a fine-tuned model obtained from ModelScope. |
| | | ```text |
| | | # For example, to replace the ASR model with damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx, use the following parameter setting --model-dir |
| | | --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx |
| | | # Set the port number using --port |
| | | --port <port number> |
| | | # Set the number of inference threads the server will start using --decoder-thread-num |
| | | --decoder-thread-num <decoder thread num> |
| | | # Set the number of IO threads the server will start using --io-thread-num |
| | | --io-thread-num <io thread num> |
| | | # Disable SSL certificate |
| | | --certfile 0 |
| | | ``` |
| | | |
| | | After executing the above command, the real-time speech transcription service will be started. If the model is specified as a ModelScope model id, the following models will be automatically downloaded from ModelScope: |
| | | [FSMN-VAD model](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre online](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx/summary ) |
| | | [Paraformer-lagre](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/summary) |
| | | [CT-Transformer](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx/summary) |
| | | [FSMN-VAD model](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre online](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx/summary), |
| | | [Paraformer-lagre](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/summary), |
| | | [CT-Transformer](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx/summary), |
| | | [FST-ITN](https://www.modelscope.cn/models/thuduj12/fst_itn_zh/summary) |
| | | |
| | | If you wish to deploy your fine-tuned model (e.g., 10epoch.pb), you need to manually rename the model to model.pb and replace the original model.pb in ModelScope. Then, specify the path as `model_dir`. |
| | |
| | | # damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx(时间戳) |
| | | # 或者 damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx(热词) |
| | | ``` |
| | | 服务端详细参数介绍可参考[服务端参数介绍](#服务端参数介绍) |
| | | 服务端详细参数介绍可参考[服务端用法详解](#服务端用法详解) |
| | | ### 客户端测试与使用 |
| | | |
| | | 下载客户端测试工具目录samples |
| | |
| | | |
| | | 详细用法可以点击进入查看。更多版本客户端支持请参考[websocket/grpc协议](./websocket_protocol_zh.md) |
| | | |
| | | ## 服务端参数介绍: |
| | | ## 服务端用法详解: |
| | | |
| | | funasr-wss-server-2pass支持从Modelscope下载模型,或者从本地目录路径启动,示例如下: |
| | | ### 启动FunASR服务 |
| | | ```shell |
| | | cd /workspace/FunASR/funasr/runtime/websocket/build/bin |
| | | ./funasr-wss-server-2pass \ |
| | | cd /workspace/FunASR/funasr/runtime |
| | | nohup bash run_server_2pass.sh \ |
| | | --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ |
| | | --online-model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx \ |
| | | --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ |
| | | --punc-dir damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx \ |
| | | --itn-dir thuduj12/fst_itn_zh \ |
| | | --decoder-thread-num 32 \ |
| | | --io-thread-num 8 \ |
| | | --port 10095 |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key > log.out 2>&1 & |
| | | ``` |
| | | |
| | | 命令参数介绍: |
| | | **run_server_2pass.sh命令参数介绍** |
| | | ```text |
| | | --download-model-dir 模型下载地址,通过设置model ID从Modelscope下载模型 |
| | | --model-dir modelscope model ID |
| | |
| | | --port 服务端监听的端口号,默认为 10095 |
| | | --decoder-thread-num 服务端启动的推理线程数,默认为 8 |
| | | --io-thread-num 服务端启动的IO线程数,默认为 1 |
| | | --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如需关闭,设置为"" |
| | | --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key,如需关闭,设置为"" |
| | | --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如果需要关闭ssl,参数设置为0 |
| | | --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key |
| | | ``` |
| | | |
| | | ### 关闭FunASR服务 |
| | | ```text |
| | | # 查看 funasr-wss-server-2pass 对应的PID |
| | | ps -x | grep funasr-wss-server-2pass |
| | | kill -9 PID |
| | | ``` |
| | | |
| | | ### 修改模型及其他参数 |
| | | 替换正在使用的模型或者其他参数,需先关闭FunASR服务,修改需要替换的参数,并重新启动FunASR服务。其中模型需为ModelScope中的ASR/VAD/PUNC模型,或者从ModelScope中模型finetune后的模型。 |
| | | ```text |
| | | # 例如替换ASR模型为 damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx,则如下设置参数 --model-dir |
| | | --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx |
| | | # 设置端口号 --port |
| | | --port <port number> |
| | | # 设置服务端启动的推理线程数 --decoder-thread-num |
| | | --decoder-thread-num <decoder thread num> |
| | | # 设置服务端启动的IO线程数 --io-thread-num |
| | | --io-thread-num <io thread num> |
| | | # 关闭SSL证书 |
| | | --certfile 0 |
| | | ``` |
| | | |
| | | 执行上述指令后,启动实时语音听写服务。如果模型指定为ModelScope中model id,会自动从MoldeScope中下载如下模型: |
| | | [FSMN-VAD模型](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre实时模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx/summary ) |
| | | [Paraformer-lagre非实时模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/summary) |
| | | [CT-Transformer标点预测模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx/summary) |
| | | [FSMN-VAD模型](https://www.modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-onnx/summary), |
| | | [Paraformer-lagre实时模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx/summary ), |
| | | [Paraformer-lagre非实时模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/summary), |
| | | [CT-Transformer标点预测模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx/summary), |
| | | [基于FST的中文ITN](https://www.modelscope.cn/models/thuduj12/fst_itn_zh/summary) |
| | | |
| | | 如果,您希望部署您finetune后的模型(例如10epoch.pb),需要手动将模型重命名为model.pb,并将原modelscope中模型model.pb替换掉,将路径指定为`model_dir`即可。 |
| | |
| | | "textgrid", |
| | | "protobuf", |
| | | "tqdm", |
| | | "hdbscan", |
| | | ], |
| | | # train: The modules invoked when training only. |
| | | "train": [ |