【语音识别】在Win11使用Docker部署FunASR服务器

文章目录

在 Win11 使用 Docker 部署 FunASR 服务器

该文章因官网文档不详细故写的经验论

官网文章:https://github.com/alibaba-damo-academy/FunASR/blob/main/runtime/docs/SDK_advanced_guide_online_zh.md

且官网只针对 Linux/Max 系统出的教程,故利用Win11记录

镜像启动

shell 复制代码
docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9
mkdir D://FunASR//model
docker run -p 10095:10095 -it --privileged=true -v D:/FunASR/model:/workspace/models registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9

docker pull 拉取镜像
docker run 启动镜像
-p 10095:10095 将容器内部的端口 10095 映射到宿主机的端口 10095
-it 分配一个伪终端并保持标准输入打开
--privileged=true 赋予容器特权,允许它执行特权操作,如访问宿主机的硬件设备等
-v D:/FunASR/model:/workspace/models 将本地文件系统中的 D:/FunASR/model 目录挂载到容器内的 /workspace/models 目录,实现本地文件与容器内部的文件共享
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9 拉取下来的镜像

服务端启动

docker启动之后,启动 funasr-wss-server-2pass服务程序:

shell 复制代码
cd FunASR/runtime
nohup bash run_server_2pass.sh \
  --certfile 0  \
  --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 \
  --itn-dir thuduj12/fst_itn_zh > 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)

run_server_2pass.sh命令参数介绍

txt 复制代码
--download-model-dir 模型下载地址,通过设置model ID从Modelscope下载模型
--model-dir  modelscope model ID 或者 本地模型路径
--online-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),
            如果客户端提供热词,则与客户端提供的热词合并一起使用,服务端热词全局生效,客户端热词只针对对应客户端生效。

监控服务端日志

shell 复制代码
tail -f /workspace/FunASR/runtime/log.txt

下载测试案例

开启服务的终端不关闭,另开一个终端用于下载示例

shell 复制代码
# 查看运行的容器
docker ps 
CONTAINER ID   IMAGE                                                                                      COMMAND       CREATED          STATUS          PORTS                      NAMES
0c81b11d2791   registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9   "/bin/bash"   19 minutes ago   Up 19 minutes   0.0.0.0:10095->10095/tcp   inspiring_banzai
# 另开终端
docker exec -it 0c81b11d2791 /bin/bash
# 下载示例
 wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/sample/funasr_samples.tar.gz

使用测试案例

打开基于 HTML 的案例

shell 复制代码
# 在 /workspace/models 目录下创建一个目录 funasr_samples
mkdir /workspace/models/funasr_samples
# 解压文件到 /workspace/models/funasr_samples 目录下
tar -xzf funasr_samples.tar.gz -C /workspace/models/funasr_samples

前面镜像启动时,我们将容器的目录 /workspace/models 挂载到了宿主机的 D:/FunASR/model 下面,因此下载到 /workspace/models/funasr_samples 目录里面的内容,可以在 D:/FunASR/model 上面看到

连接ASR服务端

修改asr服务器地址为 ws://127.0.0.1:10095/,因为没有开启 SSL,所以不是 wss 而是 ws,使用本地地址 127.0.0.1,端口号为镜像启动时配置的,与宿主机映射的端口号对应

关闭FunASR服务

shell 复制代码
# 查看 funasr-wss-server-2pass 对应的PID
ps -x | grep funasr-wss-server-2pass
 133 pts/0    Sl     0:18 /workspace/FunASR/runtime/websocket/build/bin/funasr-wss-server-2pass --download-model-dir /workspace/models --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 --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 --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst --decoder-thread-num 8 --model-thread-num 1 --io-thread-num 1 --port 10095 --certfile  --keyfile  --hotword /workspace/FunASR/runtime/websocket/hotwords.txt
 2106 pts/1    S+     0:00 grep --color=auto funasr-wss-server-2pass
# 关闭进程
kill -9 133
相关推荐
Xの哲學11 小时前
Linux流量控制: 内核队列的深度剖析
linux·服务器·算法·架构·边缘计算
tuokuac12 小时前
docker中nginx配置报错解决
linux·运维·服务器
Joren的学习记录13 小时前
【Linux运维大神系列】docker详解(四)
linux·运维·docker
程序员佳佳14 小时前
2025年大模型终极横评:GPT-5.2、Banana Pro与DeepSeek V3.2实战硬核比拼(附统一接入方案)
服务器·数据库·人工智能·python·gpt·api
louqle15 小时前
docker基本知识及常用命令汇总
运维·docker·容器
学烹饪的小胡桃15 小时前
【运维学习】实时性能监控工具 WGCLOUD v3.6.2 更新介绍
linux·运维·服务器·学习·工单系统
叫致寒吧15 小时前
Docker
运维·docker·容器
杨浦老苏15 小时前
现代流媒体聚合播放器冬瓜TV MAX
docker·群晖·多媒体
l1t17 小时前
用docker安装oracle 19c
运维·数据库·docker·oracle·容器
岭锅锅17 小时前
机房U位资产管理系统:让设备管理更高效
服务器