在需要进行多语言音频转写时,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,可轻松实现访问控制,适用于内部协作或对外开放的转写需求。


⭐ 参考

Leave a Reply

Your email address will not be published. Required fields are marked *