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

相关推荐
武子康1 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
2601_961875244 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj4 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
程序员老赵4 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
杨浦老苏4 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
正经教主4 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
kiros_wang4 天前
Docker 使用完整指南
运维·docker·容器
正经教主4 天前
【docker基础】第九周:Docker安全与镜像优化
运维·docker·容器
CodeStats4 天前
【虚拟机】 从 CPU 指令到虚拟机隔离:虚拟机就是一个“模拟了完整硬件的普通进程”
java·docker