alibaba funAsr-0.1.9实时语音转文字部署(内外网)
官方参考文档:
https://github.com/alibaba-damo-academy/FunASR/blob/main/runtime/docs/SDK_advanced_guide_online_zh.md
前提:
我的内网服务器是华为欧拉,arm64架构
如果你的内网服务器本身就是amd64架构,就不需要拉取arm64镜像
总体思路就是先在能联网的服务器跑通,然后再部署到内网服务器
服务器内存要求:至少硬盘剩余量大于40G,运存至少4G 最好8G
服务器防火墙开放指定端口或者关闭防火墙
firewall-cmd --zone=public --add-port=10096/tcp --permanent
重启防火墙
firewall-cmd reload
docker安装启动如果已经安装忽略此步骤
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动docker
systemctl start docker
拉取镜像
amd64镜像 会根据宿主机系统架构而定
docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9
下载arm64镜像 但是如果宿主机是amd64架构,这个镜像不能用,只能内网的arm64服务器使用:
docker pull --platform=linux/arm64 registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9
打包镜像,名字自定义(如果你是要部署到内网服务器,就需要打包到本地,然后上传到内网)
docker save -o funasr-arm64.tar <IMAGE ID>
创建挂载目录
mkdir -p ./funasr-runtime-resources/models
内网部署,上传(目录自定义)打包好的镜像,然后加载镜像
docker load -i funasr-arm64.tar
启动镜像(amd64和arm64通用,就是镜像文件不同)
内网服务器先不执行
docker run -p 10096:10095 -itd --privileged=true \
-v /root/funasr-runtime-resources/models:/workspace/models \
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9
(从这个步骤开始先在能联网的服务器执行)进入容器
docker attach 容器id
进入下面目录
cd FunASR/runtime
会联网下载模型 启动服务
nohup bash run_server_2pass.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 \
--online-model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx \
--punc-dir damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-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
# 如果您想使用时间戳或者nn热词模型进行部署,请设置--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(nn热词)
# 如果您想在服务端加载热词,请在宿主机文件./funasr-runtime-resources/models/hotwords.txt配置热词(docker映射地址为/workspace/models/hotwords.txt):
# 每行一个热词,格式(热词 权重):阿里巴巴 20(注:热词理论上无限制,但为了兼顾性能和效果,建议热词长度不超过10,个数不超过1k,权重1~100)
启动成功效果:
查看 funasr-wss-server-2pass 对应的PID
ps -x | grep funasr-wss-server-2pass
下载测试客户端
https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/sample/funasr_samples.tar.gz
解压打开samples\html\static下的index.html页面
asr服务器地址: wss:\服务器ip:10096
点击连接,第一次需要授权,点击页面手工授权,有的会提示页面不安全,选择高级-继续访问就好了
然后刷新页面,输入地址,再次连接,注意左上角会有使用麦克风授权,点击启用,然后点击开始,大功告成了!!!
到此能联网的服务器部署完成,接下来部署内网服务器
打包能联网服务器上的models目录
将已经部署好的服务器上的/root/funasr-runtime-resources/models
models文件夹下载到本地,然后打成zip压缩包
将models.zips上传至内网服务器
上传目录 /root/funasr-runtime-resources
先删除开始创建的models文件夹
rm -rf models
然后解压 models.zip
unzip models.zip
内网启动镜像
docker run -p 10096:10095 -itd --privileged=true \
-v /root/funasr-runtime-resources/models:/workspace/models \
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9
查看镜像启动情况
docker ps
进入容器
docker attach 容器id
进入启动目录
cd FunASR/funasr/runtime/websocket/build/bin
不联网启动:funasr-wss-server-2pass
启动服务端
nohup ./funasr-wss-server-2pass --model-dir damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx --online-model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx --punc-dir damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx --hotword /workspace/models/hotwords.txt > online_funasr.log 2>&1 &
等待启动成功。。。
后续测试连接同上