guiji2025/fun-asr:基于阿里达摩院 FunASR 工具包的容器镜像,集成 VAD/ASR/PUNC 全链路语音识别,支持离线批量转写、实时流式识别、高并发处理;提供 CPU/GPU/英文/实时服务等多个版本,适配 AI 数字人、会议转写、智能客服等场景。
收藏数: 3
下载次数: 316846
类型:

guiji2025/fun-asrguiji2025/fun-asr 是基于阿里达摩院开源语音识别工具包 FunASR 的容器化部署镜像,核心作用是快速提供工业级语音识别(ASR)服务。FunASR 是面向学术与工业场景的开源语音识别工具包,集成了达摩院语音实验室的核心能力(如高精度 ASR 模型、语音端点检测 VAD、标点恢复 PUNC),而该镜像通过 Docker 封装,跳过复杂的环境配置(如依赖安装、模型下载、硬件适配),让开发者通过拉取镜像即可快速启动语音识别服务。
自动识别音频中的「有效语音段」与「静音段」,过滤无效噪声,提升识别准确性与处理效率。
优势:有效分离语音与静音,减少无效音频的识别开销。
基于 Paraformer-large 等高精度模型,支持中文/英文语音转文字,识别准确率适配日常对话、会议录音等场景。
模型特性:
自动为识别结果添加逗号、句号等标点,提升文本可读性,避免「纯文字无断句」的阅读障碍。
优势:输出即用的格式化文本,无需人工后期处理。
支持处理几十小时的长音频/视频文件,支持通过 wav.scp 列表批量输入多文件。
支持的格式:
.wav、.pcm、.mp3、.flac、.m4a.mp4、.avi、.mov典型场景:
针对低延迟优化,支持实时语音交互场景。
典型应用:
支持上百路请求同时转写,满足企业级多用户并发使用需求。
技术特性:
| 维度 | 详细信息 |
|---|---|
| CPU 版本 | 支持 ARM64 架构,低内存占用,适合无 GPU 环境 |
| GPU 版本 | 基于 NVIDIA CUDA,动态批处理,提升识别速度 |
| 输入格式 | 兼容主流音频(.wav、.pcm、.mp3)与视频(.mp4)格式 |
| 无需转码 | 直接处理多格式输入,减少预处理步骤 |
根据 FunASR 的部署需求,该镜像提供多版本细分,适配不同场景:
| 镜像版本类型 | 核心特性 | 适配场景 | 推荐标签 |
|---|---|---|---|
| 中文 CPU 版 | Ubuntu 20.04 基础,ARM64 兼容,低内存占用 | 通用中文场景、无 GPU 环境、普通服务器 | latest 或 cpu |
| 中文 GPU 版 | 基于 NVIDIA CUDA,动态批处理,高识别速度 | 高性能中文场景、批量长音频转写、高并发 | gpu 或 cuda |
| 英文 CPU 版 | 专为英语语音优化,修复内存泄漏问题 | 英文语音识别、海外业务、英文会议 | en-cpu |
| 实时服务版 | 低延迟流式处理,支持实时请求响应 | 实时语音交互、智能助手、实时字幕 | online |
| 项目 | 要求 |
|---|---|
| 硬件 | CPU:多核处理器;GPU(可选):NVIDIA GPU 支持 CUDA |
| 操作系统 | Linux(推荐 Ubuntu 20.04+),macOS(Docker Desktop),Windows(WSL2) |
| 容器工具 | Docker 19.03+,如需 GPU 需安装 NVIDIA Container Runtime |
| 存储空间 | 建议预留 ≥2GB(镜像) + 模型文件空间 |
| 网络环境 | 首次使用需联网下载模型,建议***或使用国内镜像源 |
bash# 安装 NVIDIA Container Runtime # Ubuntu/Debian distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -fsSL [***] | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg curl -s -L [***] | \ sed 's#deb [***] [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] [***] | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker # 验证 GPU 支持 docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi
bash# 拉取最新版本 docker pull xuanyuan.cloud/r/guiji2025/fun-asr:latest # 拉取 GPU 版本 docker pull xuanyuan.cloud/r/guiji2025/fun-asr:gpu # 拉取英文版本 docker pull xuanyuan.cloud/r/guiji2025/fun-asr:en-cpu
bashdocker run -d \ --name fun-asr \ -p ***:*** \ -v /宿主机/模型路径:/root/funasr-runtime-resources \ xuanyuan.cloud/r/guiji2025/fun-asr:latest
bashdocker run -d \ --name fun-asr-gpu \ --runtime=nvidia \ --privileged=true \ -p ***:*** \ -v /宿主机/模型路径:/root/funasr-runtime-resources \ -w /workspace/FunASR/runtime \ xuanyuan.cloud/r/guiji2025/fun-asr:gpu \ sh /run.sh
参考 HeyGem AI 数字人项目的实际应用:
yamlversion: '3.8' services: heygem-asr: image: guiji2025/fun-asr container_name: heygem-asr restart: always runtime: nvidia # 启用 GPU 加速 privileged: true working_dir: /workspace/FunASR/runtime ports: - '***:***' # 服务端口 volumes: - ./models:/root/funasr-runtime-resources # 模型目录挂载 command: sh /run.sh # 启动服务脚本
| 参数 | 说明 | 示例 |
|---|---|---|
-p ***:*** | 映射服务端口(FunASR 默认端口) | 宿主机端口:容器端口 |
--runtime=nvidia | 启用 GPU 支持(GPU 版本必需) | - |
--privileged=true | 赋予容器特权(部分场景需要) | - |
-w /workspace/FunASR/runtime | 设置工作目录 | FunASR 运行目录 |
-v /宿主机/模型路径:/root/funasr-runtime-resources | 挂载模型目录到容器 | 模型与配置目录 |
sh /run.sh | 启动服务脚本 | GPU 版本默认命令 |
bashcurl -X POST "http://localhost:***/asr" \ -H "Content-Type: application/json" \ -d '{ "audio": "base64_encoded_audio_data", "format": "wav", "language": "zh" }'
创建 wav.scp 文件:
audio001 /path/to/audio001.wav audio002 /path/to/audio002.wav audio003 /path/to/audio003.wav
容器内执行:
bashdocker exec -it fun-asr bash cd /workspace/FunASR/runtime ./run.sh --wav.scp /path/to/wav.scp --output-dir /path/to/output
pythonimport requests import base64 # 读取音频文件 with open("audio.wav", "rb") as f: audio_data = base64.b64encode(f.read()).decode('utf-8') # 调用 ASR API url = "http://localhost:***/asr" payload = { "audio": audio_data, "format": "wav", "language": "zh" # zh: 中文, en: 英文 } response = requests.post(url, json=payload) result = response.json() print(f"识别结果: {result.get('text', '')}")
pythonimport websocket import json # WebSocket 连接到实时服务 ws = websocket.WebSocket() ws.connect("ws://localhost:***/asr-stream") # 发送音频数据流 # ... (音频流处理逻辑) # 接收识别结果 result = ws.recv() print(f"实时识别: {result}") ws.close()
容器内模型与资源目录:
bash/root/funasr-runtime-resources
如需替换为自定义模型,将模型文件挂载到容器:
bashdocker run -d \ --name fun-asr-custom \ -p ***:*** \ -v /宿主机/自定义模型:/root/funasr-runtime-resources \ xuanyuan.cloud/r/guiji2025/fun-asr:latest
bash# 查看容器运行状态 docker ps | grep fun-asr # 查看日志 docker logs -f fun-asr # 进入容器调试 docker exec -it fun-asr bash
进入容器后,使用 FunASR 内置的 samples 工具测试识别效果:
bashdocker exec -it fun-asr bash cd /root/funasr-runtime-resources/samples # 运行测试脚本 ./test.sh
bash# 检查服务健康状态 curl http://localhost:***/health # 发送测试请求 curl -X POST "http://localhost:***/asr" \ -H "Content-Type: application/json" \ -d '{"test": "ping"}'
在 AI 数字人项目中集成 ASR 能力,实现语音交互:
yaml# docker-compose.yml 配置 digital-human: services: # AI 数字人交互模块 interaction: image: digital-human-core depends_on: - asr-service # ASR 语音识别服务 asr-service: image: guiji2025/fun-asr ports: - '***:***'
处理大量会议录音,实现自动化转写:
bash# 批量转写脚本示例 docker exec -it fun-asr bash for audio in /data/meetings/*.wav; do ./run.sh --audio "$audio" --output "/data/transcripts/$(basename $audio).txt" done
集成到智能客服系统,支持实时语音输入:
python# 客服系统集成示例 from funasr import ASR # 初始化 ASR 客户端 asr_client = ASR(api_url="[***]") # 处理客服语音输入 def process_customer_voice(audio_stream): text = asr_client.transcribe(audio_stream) return handle_customer_query(text)
为视频内容自动生成字幕文件:
bash# 视频转字幕流程 # 1. 提取音频 docker exec -it fun-asr ffmpeg -i video.mp4 audio.wav # 2. 识别转文字 docker exec -it fun-asr ./run.sh --audio audio.wav --output subtitle.srt
bash# 限制容器内存使用 docker run -d \ --name fun-asr \ --memory="4g" \ --memory-swap="4g" \ -p ***:*** \ xuanyuan.cloud/r/guiji2025/fun-asr:latest
bash# 限制 CPU 使用核心数 docker run -d \ --name fun-asr \ --cpus="4" \ -p ***:*** \ xuanyuan.cloud/r/guiji2025/fun-asr:latest
对于大批量文件,建议使用 GPU 版本并调整批处理参数:
bash# GPU 版本 + 动态批处理 docker run -d \ --name fun-asr-gpu \ --runtime=nvidia \ -p ***:*** \ -e BATCH_SIZE=32 \ -e MAX_CONCURRENT_REQUESTS=100 \ xuanyuan.cloud/r/guiji2025/fun-asr:gpu
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 容器启动失败 | 端口冲突或资源不足 | 检查端口 *** 是否被占用;调整内存/CPU 限制 |
| GPU 不可用 | 未安装 NVIDIA Container Runtime | 安装 nvidia-container-toolkit 并重启 Docker |
| 识别准确率低 | 音频质量差或采样率不匹配 | 确保音频清晰、无噪声;检查采样率(推荐 16kHz/8kHz) |
| 批量处理速度慢 | 未使用 GPU 或批处理设置不当 | 切换到 GPU 版本;调整 batch_size 参数 |
| 实时识别延迟高 | 网络延迟或资源不足 | 检查网络状况;增加 CPU/GPU 资源 |
| 模型加载失败 | 模型路径错误或文件损坏 | 检查挂载路径;重新下载模型文件 |
| 英文识别效果差 | 使用中文版本处理英文 | 切换至英文版本(en-cpu 标签) |
| 并发处理崩溃 | 内存不足或线程数过多 | 限制并发数量;增加容器内存 |
挂载自定义配置文件:
bashdocker run -d \ --name fun-asr-custom \ -p ***:*** \ -v /宿主机/config:/root/funasr-runtime-resources/config \ xuanyuan.cloud/r/guiji2025/fun-asr:latest
挂载日志目录到宿主机:
bashdocker run -d \ --name fun-asr \ -p ***:*** \ -v /宿主机/logs:/workspace/FunASR/runtime/logs \ xuanyuan.cloud/r/guiji2025/fun-asr:latest
bash# 设置识别语言 docker run -d \ --name fun-asr-multilang \ -p ***:*** \ -e LANGUAGE=zh # zh: 中文, en: 英文 docker run -d \ --name fun-asr-multilang \ -p ***:*** \ -e LANGUAGE=zh # zh: 中文, en: 英文 xuanyuan.cloud/r/guiji2025/fun-asr:latest
注意:本镜像基于阿里达摩院 FunASR 开源工具包构建,建议根据实际场景选择合适的版本(CPU/GPU、中文/英文)。首次使用建议从 CPU 版本开始测试,确保环境配置正确后再部署生产环境。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务