Docker部署whisper转写模型

部署 whisper-asr-webservice 指南

whisper-asr-webservice 是一个将 Whisper 模型封装为 HTTP API 服务的项目,以下是详细的部署方法:

  1. 准备工作
    确保你的系统已安装:

Docker 和 Docker Compose

NVIDIA 驱动和 nvidia-docker(如需 GPU 加速)

  1. 快速部署(使用 Docker)

方法一:直接使用预构建镜像

bash 复制代码
docker run -d --gpus all \
  -p 9000:9000 \
  -e ASR_MODEL=medium \
  -v ~/whisper_models:/root/.cache/whisper \
  onerahmet/openai-whisper-asr-webservice:latest

方法二:使用 Docker Compose

创建 docker-compose.yml 文件:

yml 复制代码
version: '3.8'

services:
  whisper-api:
    image: onerahmet/openai-whisper-asr-webservice:latest
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
    ports:
      - "9000:9000"
    environment:
      - ASR_MODEL=medium  # 可选: tiny, base, small, medium, large
      - ASR_LANGUAGE=zh  # 可选: 指定默认语言
    volumes:
      - whisper_cache:/root/.cache/whisper

volumes:
  whisper_cache:

然后运行:

bash 复制代码
docker-compose up -d
  1. 从源码构建部署
    如果你想自定义构建:
bash 复制代码
git clone https://github.com/ahmetoner/whisper-asr-webservice.git
cd whisper-asr-webservice

构建镜像

复制代码
docker build -t whisper-service .

运行

复制代码
docker run -d --gpus all -p 9000:9000 -e ASR_MODEL=large whisper-service

git clone https://github.com/ahmetoner/whisper-asr-webservice.git
cd whisper-asr-webservice

# 构建镜像
docker build -t whisper-service .

# 运行
docker run -d --gpus all -p 9000:9000 -e ASR_MODEL=large whisper-service


# 报错则换命令执行(显卡驱动限制导致)
 docker run -d --runtime=nvidia -p 9000:9000 -e ASR_MODEL=large whisper-service
  1. 使用 API
    服务启动后提供以下端点:

POST /asr - 语音识别

bash 复制代码
curl -X POST -F "audio_file=@audio.mp3" http://localhost:9000/asr
  • GET /models - 获取可用模型

  • GET /languages - 获取支持语言

示例 Python 调用:

python 复制代码
import requests

url = "http://localhost:9000/asr"
files = {"audio_file": open("audio.mp3", "rb")}
response = requests.post(url, files=files)

print(response.json())
  1. 高级配置
    可以通过环境变量配置:

变量名 说明 默认值

ASR_MODEL 模型大小 (tiny,base,small,medium,large) small

ASR_LANGUAGE 默认语言代码 (如 zh, en) auto

ASR_DEVICE 计算设备 (cuda 或 cpu) cuda

ASR_COMPUTE_TYPE 计算类型 (int8, float16 等) 根据设备自动选择

  1. 注意事项

首次运行会自动下载模型文件,medium/large 模型较大需要耐心等待

中文识别建议使用 medium 或 large 模型

对于生产环境,建议:

添加认证中间件

使用 Nginx 反向代理

设置资源限制

  1. 扩展部署

对于 Kubernetes 部署,可以使用类似的配置,确保正确配置 GPU 资源请求。

如需更复杂的部署方案,可以 fork 项目并根据需要修改代码,特别是 app/main.py 中的 API 逻辑。

相关推荐
donoot7 小时前
一次 Nginx 502 问题的深度排查:从 SELinux 到容器网络
nginx·docker·selinux·反向代理·502 bad gateway
Sagittarius_A*9 小时前
Docker:渗透前置容器化核心基础
运维·安全·docker·容器
名字还没想好☜12 小时前
Docker 多阶段构建:把镜像从 1.2GB 砍到 15MB
运维·docker·容器·多阶段构建·镜像优化
花和满楼12 小时前
K8s 1.36 ImageVolume GA:OCI 镜像不再只能跑容器
java·容器·kubernetes
生活爱好者!13 小时前
NAS还能玩游戏?部署一款 WebGL 3D 赛车小游戏
游戏·docker·容器·玩游戏
曦月合一13 小时前
本地电脑部署docker,及各种组件(nginx、mysql、redis、mongo、minio、java)
docker·windows10 专业版
hj28625115 小时前
Docker 核心知识点整理(网络 + Dockerfile + 原理 + 命令)
网络·docker·容器
梦想的颜色1 天前
【Docker原理】Docker 容器一文打尽:生命周期、环境管控、迁移备份、日志进程排查、垃圾清理
运维·docker·容器·容器生命周期·容器日志排查·容器迁移备份·容器进程管理
万里侯1 天前
GitOps 漂移检测:集群里改了配置,Git 还以为一切正常
微服务·容器·k8s
极客先躯1 天前
高级java每日一道面试题-2026年03月30日-实战篇[Docker]-如何监控容器的网络流量?
java·运维·docker·容器·prometheus·高级面试