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 逻辑。

相关推荐
To_OC20 小时前
跑了3个Docker容器后,我终于搞懂镜像和容器到底啥关系
后端·docker·容器
tryCbest1 天前
Docker 从零到精通:知识与跨平台使用指南
docker·容器
开始学AI1 天前
Codex2API Docker 使用宿主机代理:OAuth Token 兑换 403 问题排查与解决方案
运维·docker·容器
做前端的娜娜子1 天前
Docker 常用命令全梳理:从镜像拉取到容器编排
docker·容器·掘金·金石计划
m0_579146651 天前
关于Docker Desktop导致C盘空间异常占用的排查与根治方案
运维·docker·容器
郝开1 天前
Docker Compose 本地环境搭建:kkFileView
运维·docker·容器
jufeng13071 天前
【系列:TDengine 工业物联网实战:从零搭起可运行系统 · 第 10 篇】
docker·时序数据库·tdengine·高可用
国际云,接待1 天前
Docker 容器一直显示 unhealthy:从 Healthcheck 输出到依赖故障的完整排查
运维·docker·容器
IT大白鼠2 天前
容器安全入门:K8s常见基础安全风险通俗解读
安全·容器·kubernetes
伞伞悦读2 天前
Docker 安装 MinIO 完整教程(新手友好版)
docker·容器·eureka