浏览器不兼容

由于本站使用了较新的技术(如 CSS 值函数 oklch),您的浏览器版本过低,可能无法正确渲染本站内容。请先更新您的浏览器。
至少需要 Chrome/Edge 111,Firefox 113,Opera 97,或 Safari 15.4。
更新浏览器

328 字
2 分钟
二次打包 FunASR 官方镜像使其可一键运行

根据官方文档, FunASR 启动方式如下:

Terminal window
sudo docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13
mkdir -p ./funasr-runtime-resources/models
sudo docker run -p 10096:10095 -it --privileged=true \
-v $PWD/funasr-runtime-resources/models:/workspace/models \
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13

运行后会进入容器的 bash, 需要再输入下面的命令:

Terminal window
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 &

才能运行.

所以, 目标: 使其可通过 docker compose up 命令一键启动.

编写 run.sh 如下, 用于启动服务器:

#!/bin/bash
# 进入工作目录
cd /workspace/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 &
# 输出日志
tail -f log.txt

编写 Dockerfile 如下:

# 引用基础镜像
FROM registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13
# 设置时区
ENV TZ=Asia/Shanghai
# 声明端口
EXPOSE 10095/tcp
# 复制刚才创建的用于启动服务器的文件
COPY run.sh /run.sh
# 给予执行权限
RUN chmod +x /run.sh
# 设置入口点
ENTRYPOINT ["/run.sh"]

构建镜像:

Terminal window
$ docker build . -t myfunasr:v1

编写 docker-compose.yaml:

services:
funasr:
image: myfunasr:v1
container_name: funasr
restart: unless-stopped
# 我也不知道为什么官方文档要 --privileged=true,
# 我觉得过于不安全, 没加, 但也能跑. 因此加不加取决于你
privileged: true
ports:
- 10096:10095
volumes:
- "./funasr-runtime-resources/models:/workspace/models"

docker compose up -d, enjoy it~

参考文章: https://www.cnblogs.com/shizidushu/p/18381237

二次打包 FunASR 官方镜像使其可一键运行
https://blog.duckburnincense.com/posts/repack-funasr-official-image-one-click-run/
作者
DuckBurnIncense
发布于
2025-11-07
许可协议
CC BY-NC 4.0