在需要进行多语言音频转写时,OpenAI Whisper 模型提供了极高的准确率和多语言支持。为了更方便地部署到服务器并供多人使用,结合 Docker 容器技术可以快速搭建一个带网页界面的语音识别服务。
本教程以 whisper-webui 项目为核心,结合 NVIDIA GPU(如 GTX 1080)加速推理,构建一个可上传音频、自动或手动选择语言并返回转写结果的完整服务。
💡 准备条件
- 一台 Linux 服务器(推荐 Ubuntu 20.04+ 或 Arch)
- NVIDIA 显卡(支持 CUDA),例如 RTX 3080 Ti
- 已正确安装并配置好 NVIDIA 驱动、CUDA 工具包
- 已安装 Docker & Docker Compose
✅ NVIDIA 驱动与 CUDA 配置检查
首先验证 GPU 是否正常识别。
nvidia-smi
如果显示显卡信息,说明驱动配置无误。
✅ Docker 与 NVIDIA Container Toolkit 安装
在服务器上安装 Docker:
curl -fsSL https://get.docker.com | bash
安装 NVIDIA Container Toolkit 以支持容器内调用 GPU:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt update
sudo apt install -y nvidia-docker2
sudo systemctl restart docker
✅ 拉取 whisper-webui 镜像
使用官方构建的 GPU 版本镜像:
docker pull ghcr.io/freddyaboulton/whisper-webui:latest
✅ 启动容器
运行时挂载 GPU,并开放端口 7860(可根据需要修改端口):
docker run --gpus all -it -p 7860:7860 ghcr.io/freddyaboulton/whisper-webui:latest
启动后,通过浏览器访问:
http://<服务器公网IP>:7860
✅ 功能介绍
- 网页界面上传音频文件(支持拖拽)
- 自动检测语言,或手动指定
- 转写完成后显示文本结果,可下载
- 默认模型为 medium,也可选择 tiny / base / large 等
⚡ 登录访问保护(可选)
whisper-webui 默认对任何人开放,如果希望在公网环境限制访问,可考虑以下方案。
方法一:Nginx Basic Auth
在服务器前面部署 Nginx,使用基本认证进行保护。
server {
listen 80;
server_name example.com;
auth_basic "Protected";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://127.0.0.1:7860;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
生成认证文件:
sudo apt install apache2-utils
htpasswd -c /etc/nginx/.htpasswd username
方法二:VPN 或防火墙限制
如果仅供内部使用,也可配置 WireGuard、OpenVPN,或直接防火墙策略,仅允许固定 IP 段访问。
✅ 持久化配置(可选)
若希望保留上传文件或转写结果,可在运行容器时挂载本地路径。
docker run --gpus all -it -p 7860:7860 \
-v /opt/whisper-uploads:/app/whisper_uploads \
ghcr.io/freddyaboulton/whisper-webui:latest
✅ 后台运行(可选)
若需要以后台模式运行,可添加 -d 参数。
docker run --gpus all -d -p 7860:7860 ghcr.io/freddyaboulton/whisper-webui:latest
查看容器状态:
docker ps
✅ 总结
通过 Docker 部署 Whisper 网页转写服务,不仅可以充分利用 GPU 加速,极大缩短识别时间,还能借助网页界面方便上传与查看结果。结合 Nginx 或 VPN,可轻松实现访问控制,适用于内部协作或对外开放的转写需求。