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

相关推荐
小闫BI设源码4 分钟前
Docker的介绍
运维·docker·容器·数据持久化·端口映射·卷挂载·配置外挂
霖.2425 分钟前
service的两种代理实现
linux·服务器·容器·kubernetes
Lin_Aries_042135 分钟前
基于 GitLab 的自动化镜像构建
linux·运维·docker·容器·自动化·gitlab
伐尘37 分钟前
[群晖NAS] 群晖Docker安装gitlab + ipv6 远程访问
docker·gitlab·群晖·nas
zhujilisa2 小时前
k8s基础
云原生·容器·kubernetes
夏天是冰红茶3 小时前
使用Docker将PyQt深度学习项目打包成镜像
运维·docker·容器
龙门吹雪3 小时前
Docker 安装 canal 详细步骤
运维·docker·容器·canal·mysql binlog 日志·增量数据订阅消费
杨浦老苏4 小时前
文件共享应用程序Palmr
docker·群晖·网盘
小白不想白a5 小时前
【Ansible】使用ansible部署k8s集群前的准备工作脚本
容器·kubernetes·ansible
啥也不会的小胡5 小时前
深入理解 Docker:从入门到实践
docker·容器