参考
FunASR官网
https://www.bilibili.com/video/BV11a4y1U72y/?spm_id_from=888.80997.embed_other.whitelist&bvid=BV11a4y1U72y
https://github.com/modelscope/FunASR/blob/main/runtime/docs/SDK_advanced_guide_offline_zh.md
准备
配置好docker环境,推荐用WSL2
拉取镜像(这一步会从国内镜像拉取别科学上网,可能要很久)
1 2 3 4 5
| sudo docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.7
docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.7
|
在当前目录下新建文件夹以存放模型
1
| mkdir -p ./funasr-runtime-resources/models
|
-p可以强制添加文件夹
启动服务
1 2 3
| sudo docker run -p 10095:10095 -it --privileged=true \ -v $PWD/funasr-runtime-resources/models:/workspace/models \ registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.7
|
-p端口映射
-it = -i+-t
-i (interactive):保持标准输入(STDIN)打开,允许你向容器发送命令。
-t (tty):分配一个虚拟终端。
这样合起来就能像登录远程服务器一样,看到 root@9fa6df615f62:/workspace# 这样的提示符并进行实时操作。
--privileged=true特权模式
-v [路径]:[路径]磁盘挂载,说白了就是将本机(现在指的是WSL)与容器的某个文件夹共用,即使容器没了但最后文件夹的文件还在
最后那一坨
registry.cn-hangzhou.aliyuncs.com阿里云镜像仓库的服务器地址
funasr_repo/funasr这是软件在仓库里的具体位置
:funasr-runtime-sdk-cpu-0.4.7版本号
启动
在docker启动后,我们的命令行用户变为root,此时我们进入了docker容器而非原来的WSL
现在进入到docker里边启动 funasr-wss-server服务程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| cd FunASR/runtime nohup bash 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-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx \ --punc-dir damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx \ --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \ --itn-dir thuduj12/fst_itn_zh \ --hotword /workspace/models/hotwords.txt > log.txt 2>&1 &
# 如果您想关闭ssl,增加参数:--certfile 0 # 如果您想使用SenseVoiceSmall模型、时间戳、nn热词模型进行部署,请设置--model-dir为对应模型: # iic/SenseVoiceSmall-onnx # 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(nn热词) # 如果您想在服务端加载热词,请在宿主机文件./funasr-runtime-resources/models/hotwords.txt配置热词(docker映射地址为/workspace/models/hotwords.txt): # 每行一个热词,格式(热词 权重):阿里巴巴 20(注:热词理论上无限制,但为了兼顾性能和效果,建议热词长度不超过10,个数不超过1k,权重1~100) # SenseVoiceSmall-onnx识别结果中“<|zh|><|NEUTRAL|><|Speech|> ”分别为对应的语种、情感、事件信息
|
具体介绍
1 2 3 4 5 6 7 8 9 10 11
| cd /workspace/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 \ --punc-dir damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx \ --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \ --itn-dir thuduj12/fst_itn_zh \ --certfile ../../../ssl_key/server.crt \ --keyfile ../../../ssl_key/server.key \ --hotword ../../hotwords.txt > log.txt 2>&1 &
|
其中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| --download-model-dir 模型下载地址,通过设置model ID从Modelscope下载模型 --model-dir modelscope model ID 或者 本地模型路径 --vad-dir modelscope model ID 或者 本地模型路径 --punc-dir modelscope model ID 或者 本地模型路径 --lm-dir modelscope model ID 或者 本地模型路径 --itn-dir modelscope model ID 或者 本地模型路径 --port 服务端监听的端口号,默认为 10095 --decoder-thread-num 服务端线程池个数(支持的最大并发路数), 脚本会根据服务器线程数自动配置decoder-thread-num、io-thread-num --io-thread-num 服务端启动的IO线程数 --model-thread-num 每路识别的内部线程数(控制ONNX模型的并行),默认为 1, 其中建议 decoder-thread-num*model-thread-num 等于总线程数 --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如果需要关闭ssl,参数设置为0 --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key --hotword 热词文件路径,每行一个热词,格式:热词 权重(例如:阿里巴巴 20), 如果客户端提供热词,则与客户端提供的热词合并一起使用,服务端热词全局生效,客户端热词只针对对应客户端生效。
|
测试
关闭
1 2 3
| # 查看 funasr-wss-server 对应的PID ps -x | grep funasr-wss-server kill -9 PID
|