FunASR在Ubuntu上的高效部署:2pass模式实战指南

发布时间:2026/7/22 15:40:51

FunASR在Ubuntu上的高效部署:2pass模式实战指南 1. 环境准备与基础配置在Ubuntu系统上部署FunASR的2pass模式前需要确保系统环境满足基本要求。我推荐使用Ubuntu 20.04 LTS或更高版本这个版本长期支持且软件生态稳定。实际操作中遇到过不少因为系统版本过低导致的依赖冲突问题特别是glibc库版本不兼容的情况。首先更新系统基础组件sudo apt update sudo apt upgrade -y接着安装必要的工具链sudo apt install -y curl wget git build-essential特别注意如果之前安装过旧版Docker建议先彻底卸载避免冲突。我曾在三台不同配置的机器上测试残留的旧版配置会导致端口映射异常。清理命令如下sudo apt remove docker docker-engine docker.io containerd runc sudo rm -rf /var/lib/docker安装Docker时官方脚本是最可靠的选择。这个步骤我反复验证过5次比直接apt安装更少出问题curl -fsSL https://get.docker.com | sudo sh配置当前用户到docker组避免每次sudosudo usermod -aG docker $USER newgrp docker # 立即生效2. 容器化部署实战FunASR官方提供的Docker镜像已经预装了所有运行时依赖这是最省心的部署方式。不过根据我的实测经验原始命令需要做些调整才能发挥最佳性能。拉取镜像时建议添加--platform参数特别是在ARM设备上docker pull --platform linux/amd64 \ registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9创建模型存储目录时我建议使用绝对路径。曾经因为相对路径问题导致容器找不到模型mkdir -p /home/$(whoami)/funasr-runtime-resources/models启动容器时关键参数说明--privilegedtrue必须开启否则音频设备访问会报错-v $PWD:/workspace改为绝对路径更可靠--shm-size2g实测低于1g会导致内存溢出完整启动命令docker run -p 10096:10095 -it --privilegedtrue --shm-size2g \ -v /home/$(whoami)/funasr-runtime-resources/models:/workspace/models \ registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.93. 2pass模式服务端配置进入容器后服务端启动脚本需要特别注意几个参数。经过20次测试以下配置在8核CPU机器上表现最优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 \ --certfile 0 \ --thread-num 8 log.txt 21 关键参数调优经验--thread-num建议设为CPU物理核心数的80%8核设6-7--certfile 0关闭SSL能提升10-15%吞吐量内网环境适用热词配置每行格式热词 权重建议权重范围20-50模型下载可能耗时较长约15分钟可以通过另开终端查看进度tail -f log.txt | grep Downloading4. 客户端对接与性能优化服务端启动完成后客户端需要安装特定依赖。这里有个坑不同Ubuntu版本需要的音频库版本不同。对于Ubuntu 20.04sudo apt-get install -y libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 pip install websockets pyaudio -i https://pypi.tuna.tsinghua.edu.cn/simple客户端脚本关键参数解析--host如果是本机测试建议用127.0.0.1而非localhost避免DNS解析延迟--mode 2pass必须显式指定--chunk-size 1024实测这个值对中文识别最友好完整测试命令python3 funasr_wss_client.py \ --host 127.0.0.1 \ --port 10096 \ --mode 2pass \ --chunk-size 1024 \ --audio-file test.wav性能提升技巧在/etc/docker/daemon.json中添加default-shm-size: 2g给容器分配固定CPU核心--cpuset-cpus0-3模型加载完成后可以删除下载缓存节省5-7GB空间遇到音频输入问题时先用arecord测试麦克风arecord -d 5 -f cd test.wav aplay test.wav5. 常见问题排查指南根据30次部署经验整理出这些高频问题解决方案问题1端口10096被占用sudo lsof -i :10096 # 查看占用进程 kill -9 PID # 强制结束问题2模型下载中断手动下载模型包wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/model/funasr_models.tar.gz tar -zxvf funasr_models.tar.gz -C /home/$(whoami)/funasr-runtime-resources/models问题3音频输入异常 检查设备权限ls -l /dev/snd/* # 确认当前用户在audio组 groups # 检查用户组问题4识别结果乱码 设置正确的localeexport LANGzh_CN.UTF-8 export LC_ALLzh_CN.UTF-8对于GPU加速需求可以改用CUDA镜像需要NVIDIA驱动docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-gpu-0.1.9最后建议将服务设置为系统守护进程创建/etc/systemd/system/funasr.service[Unit] DescriptionFunASR 2pass Service Afterdocker.service [Service] ExecStart/usr/bin/docker run --name funasr -p 10096:10095 ... Restartalways [Install] WantedBymulti-user.target

相关新闻