本地部署 Whisper

如图 GPU 正在进行运算,而且速度非常快,比CPU运算快了十几倍
项目地址:https://github.com/openai/whisper
1. 环境准备
在开始部署 Whisper 模型之前,首先需要准备一些基础环境,确保 GPU 可用并且所有依赖项都已正确安装。
1 NVIDIA 显卡与 CUDA 版本对应表
核心说明
- 显卡支持的最高 CUDA 版本:由显卡架构决定(NVIDIA 官方定义,无法通过升级驱动突破);
- CUDA 架构(sm_xx):框架(PyTorch/TensorFlow)兼容的核心依据(新版框架会淘汰旧架构);
- 最低驱动版本:对应 CUDA 版本的最低驱动要求(驱动版本需 ≥ 该值才能使用对应 CUDA);
- 向下兼容:显卡可支持低于「最高 CUDA 版本」的所有 CUDA 版本(如 GTX 1070 支持 CUDA 11.8 及以下)。
| 显卡架构 | 显卡系列/型号(示例) | CUDA 架构(sm_xx) | 支持的最高 CUDA 版本 | 对应 CUDA 版本的最低驱动版本 |
|---|---|---|---|---|
| Pascal(帕斯卡) | GTX 10 系列:1050/1060/1070/1080/Ti Quadro P 系列:P4000/P5000 | sm_60、sm_61 | 11.8 | CUDA 11.8:456.38 |
| Turing(图灵) | RTX 20 系列:2060/2070/2080/Ti GTX 16 系列:1650/1660/Ti Quadro T 系列:T400/T1000 | sm_75 | 12.4 | CUDA 12.4:551.61 |
| Ampere(安培) | RTX 30 系列:3050/3060/3070/3080/3090/Ti RTX A 系列:A2000/A3000/A4000 DataCenter A10/A100 | sm_80、sm_86 | 13.6 | CUDA 13.6:555.42.02 |
| Ada Lovelace(阿达) | RTX 40 系列:4060/4070/4080/4090/Ti RTX A 系列:A5000/A6000 DataCenter L4/L40 | sm_89 | 13.6 | CUDA 13.6:555.42.02 |
| Hopper(霍珀) | RTX 50 系列:5070/5080/5090/Ti DataCenter H100/H20 | sm_100 | 13.6 | CUDA 13.6:555.42.02 |
| Blackwell(布莱克韦尔) | RTX 60 系列(最新) DataCenter B100/B200 | sm_110 | 13.6+(后续兼容更高版本) | CUDA 13.6:555.42.02 |
补充说明(避免踩坑)
- 显卡架构查询:通过命令
nvidia-smi --query-gpu=compute_capability --format=csv可直接获取显卡 CUDA 架构,再对应上表查询兼容信息; - 系统 CUDA 版本兼容:系统可安装高于显卡支持上限的 CUDA(如 GTX 1070 装 CUDA 13.0),但框架(PyTorch)会优先使用自带的兼容 CUDA 运行时(如 cu118),无需卸载系统高版本 CUDA;
- 专业显卡适配:Quadro/DataCenter 系列显卡与同架构消费级显卡的 CUDA 支持一致(如 Quadro P4000 与 GTX 1070 同属 Pascal 架构);
- 驱动与 CUDA 关系:高版本驱动可兼容低版本 CUDA(如驱动 581.80 支持 CUDA 11.8),低版本驱动无法支持高版本 CUDA。
2 安装 CUDA 和 GPU 驱动
由于 Whisper 在大规模模型训练和推理过程中对计算资源要求较高,使用 CUDA 和 GPU 可以大大加速模型的加载和推理过程。
1. 安装 NVIDIA GPU 驱动:确保你已经安装了适用于你 GPU 的最新驱动。
地址:https://www.nvidia.cn/geforce/drivers/
2. 安装 CUDA :Whisper 支持 CUDA 加速,你需要安装正确版本的 CUDA。你可以参考 NVIDIA 官网 根据系统类型进行安装。一般情况下直接最新版即可,会兼容低版本的,
地址:https://developer.nvidia.com/cuda-downloads
更多版本:https://developer.nvidia.com/cuda-toolkit-archive
3. 安装完成后,可以通过以下 nvcc --version 命令验证 CUDA 是否正常工作:
(.venv) PS E:\applications\project\by umr\Subtitle> nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Aug_20_13:58:20_Pacific_Daylight_Time_2025
Cuda compilation tools, release 13.0, V13.0.88
Build cuda_13.0.r13.0/compiler.36424714_0
如果输出显示 CUDA 版本信息,则表明 CUDA 已成功安装。
3 安装 Whisper 库
特性:
(PyPI 稳定版)pip install -U openai-whisper
(GitHub 开发版)pip install git+https://github.com/openai/whisper.git
1. 推荐方案:安装 PyPI 稳定版(已安装可忽略,或升级)
pip install openai-whisper
2. 查看安装
(.venv) PS E:\applications\project\by umr\Subtitle> pip show openai-whisper
Name: openai-whisper
Version: 20250625
Summary: Robust Speech Recognition via Large-Scale Weak Supervision
Home-page: https://github.com/openai/whisper
Author: OpenAI
Author-email:
License: MIT
Location: e:\applications\project\by umr\Subtitle\.venv\Lib\site-packages
Requires: more-itertools, numba, numpy, tiktoken, torch, tqdm
Required-by:
4 安装 ffmpeg
FFmpeg 是一个用于处理视频、音频等多媒体文件的开源工具包。它支持几乎所有的多媒体格式转换、剪辑和编辑,是开发者和多媒体工作者必备的工具。windows下载后要配置环境变量,这里不过多赘述
下载地址:https://ffmpeg.org/download.html
1. 查看安装
(.venv) PS E:\applications\project\by umr\Subtitle> ffmpeg -version
ffmpeg version 8.0.1-essentials_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 15.2.0 (Rev8, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-openal --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
libavutil 60. 8.100 / 60. 8.100
libavcodec 62. 11.100 / 62. 11.100
libavformat 62. 3.100 / 62. 3.100
libavdevice 62. 1.100 / 62. 1.100
libavfilter 11. 4.100 / 11. 4.100
libswscale 9. 1.100 / 9. 1.100
libswresample 6. 1.100 / 6. 1.100
Exiting with exit code 0
5 安装 PyTorch 库
根据你的 CUDA 版本安装支持的 PyTorch 库
PyTorch地址:https://pytorch.org/get-started/locally/
版本对应关系:https://pytorch.org/get-started/previous-versions/
1. 安装
如我的 nvcc --version 是 Cuda compilation tools, release 13.0, V13.0.88 版本 V13, 因为驱动版本支持,但是我的显卡硬件最高只支持 V11.8,高版本的CUDA软件支持且兼容低版本的CUDA,所以安装 V11.8 版本。首先考虑硬件兼容,软件版本可以同版本或者高版本但是不可以低版本。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
2. 查看 pytorch
import torch
# 1. 查看 PyTorch 版本
print("PyTorch 版本:", torch.__version__)
# 2. 查看 PyTorch 自带的 CUDA 版本(应显示 11.8)
print("PyTorch 内置 CUDA 版本:", torch.version.cuda)
# 3. 验证 GPU 是否可用(核心!应返回 True)
print("GPU 是否可用:", torch.cuda.is_available())
# 4. 查看显卡信息(确认识别 GTX 1070)
if torch.cuda.is_available():
print("显卡型号:", torch.cuda.get_device_name(0))
print("CUDA 架构:sm_{}{}".format(*torch.cuda.get_device_capability(0))) # 应输出 sm_61
print("GPU 显存:", torch.cuda.get_device_properties(0).total_memory / 1024 / 1024, "MB") # 约 8192 MB
else:
print("GPU 不可用,请检查安装或驱动!")
6. 使用 Whisper 生成
使用命令进行生成
(.venv) PS E:\applications\project\by umr\Subtitle> whisper .\fssx.mp3 --model medium --device cuda
Detecting language using up to the first 30 seconds. Use `--language` to specify the language
Detected language: Chinese
[00:00.000 --> 00:21.000] Zither Harp
[00:22.000 --> 00:24.000] 蘭露雨偏似雪花
[00:24.000 --> 00:26.000] 飲泣的你動媽
[00:26.000 --> 00:31.000] 這風柳我給你摸到有襟花
[00:31.000 --> 00:33.000] 連掉了跡也不怕
[00:33.000 --> 00:35.000] 怎麼始終牽掛
[00:35.000 --> 00:40.000] 苦心選中今天想載你回家
[00:40.000 --> 00:42.000] 原諒我不再送花
[00:42.000 --> 00:44.000] 傷口仍要結疤
[00:44.000 --> 00:49.000] 花瓣鋪滿心裡墳場才害怕
[00:49.000 --> 00:51.000] 如若你非我不嫁
[00:51.000 --> 00:53.000] 彼此終別火化
[00:53.000 --> 00:58.000] 一生一世等一天需要代價
[00:58.000 --> 01:01.000] 誰都只得那雙手靠擁抱
[01:01.000 --> 01:03.000] 亦難任你擁有
[01:03.000 --> 01:08.000] 要擁有必先等失去怎接受
[01:08.000 --> 01:10.000] 曾願著雪露浪流
[01:10.000 --> 01:12.000] 為何為好事淚流
[01:12.000 --> 01:17.000] 誰能憑愛意要富是山是友
[01:17.000 --> 01:21.000] 何不把悲哀感覺假設是來自你虛構
[01:21.000 --> 01:26.000] 使管裡找不到他掩護眼眸
[01:26.000 --> 01:28.000] 前塵難化像石頭
[01:28.000 --> 01:33.000] 隨緣地拋下便逃走
[01:33.000 --> 01:35.000] 我絕不罕有
[01:35.000 --> 01:38.000] 逛街裡繞過一周
[01:38.000 --> 01:42.000] 我便化烏有
[01:42.000 --> 01:45.000] 情人節不要說穿紙
[01:45.000 --> 01:47.000] 敢撫離髮端
[01:47.000 --> 01:52.000] 這種姿態可會令你更心酸
[01:52.000 --> 01:54.000] 留在汽車裡取暖
[01:54.000 --> 01:56.000] 應該怎麼規勸
[01:56.000 --> 02:01.000] 怎麼可以將手腕忍痛划算
[02:01.000 --> 02:03.000] 人活到幾歲算短
[02:03.000 --> 02:05.000] 失戀自由更短
[02:05.000 --> 02:08.000] 歸家需要幾里留
[02:08.000 --> 02:10.000] 誰能預算
[02:10.000 --> 02:12.000] 忘掉我跟你姻緣
[02:12.000 --> 02:14.000] 櫻花開了幾轉
[02:14.000 --> 02:19.000] 東京之旅一早比一世遙遠
[02:19.000 --> 02:21.000] 誰都只得那雙手
[02:21.000 --> 02:24.000] 靠擁抱亦難任你擁有
[02:24.000 --> 02:28.000] 要擁有必先懂失去怎接受
[02:28.000 --> 02:31.000] 曾願著雪露浪流
[02:31.000 --> 02:33.000] 為何為好事淚流
[02:33.000 --> 02:38.000] 誰能憑愛意要富是山是友
[02:38.000 --> 02:42.000] 何不把悲哀感覺假設是來自你虛構
[02:42.000 --> 02:47.000] 事管裡走不到他厭惡眼眸
[02:47.000 --> 02:49.000] 前塵硬化像石頭
[02:49.000 --> 02:54.000] 隨緣地拋下便逃走
[02:54.000 --> 02:56.000] 我絕不罕有
[02:56.000 --> 02:59.000] 往街裡繞過一周
[02:59.000 --> 03:03.000] 我便化烏有
[03:03.000 --> 03:05.000] 誰都只得那雙手
[03:05.000 --> 03:08.000] 靠擁抱亦難任你擁有
[03:08.000 --> 03:13.000] 要擁有必先懂失去怎接受
[03:13.000 --> 03:15.000] 曾願著雪露浪流
[03:15.000 --> 03:17.000] 為何為好事淚流
[03:17.000 --> 03:22.000] 誰能憑愛意要富是山是友
[03:22.000 --> 03:27.000] 何不把悲哀感覺假設是來自你虛構
[03:27.000 --> 03:32.000] 事管裡走不到他厭惡眼眸
[03:32.000 --> 03:34.000] 前塵硬化像石頭
[03:34.000 --> 03:41.000] 隨緣地拋下便逃走
[03:41.000 --> 03:43.000] 我絕不罕有
[03:43.000 --> 03:46.000] 往街裡繞過一周
[03:46.000 --> 03:52.000] 我便化烏有
[03:52.000 --> 03:54.000] 你還言不夠
[03:54.000 --> 04:01.000] 我把這陳年風流送贈你街奏
7. 更多
核心说明 4 种 Whisper 实现对比详细表格
本文档对比 OpenAI Whisper 及其3种主流衍生实现(Faster Whisper、Insanely Fast Whisper、Transformers 集成)。
详细对比表格
| 对比维度 | 官方 OpenAI Whisper | Faster Whisper | Insanely Fast Whisper | Transformers 集成 |
|---|---|---|---|---|
| 底层依赖 | PyTorch(核心依赖,纯框架原生实现) | CTranslate2(C++ 优化引擎),PyTorch 可选 | Transformers + Accelerate,PyTorch(≥2.2) | Hugging Face Transformers 框架,PyTorch 核心依赖 |
| 核心优化方向 | 无额外优化,保持官方原生逻辑 | 模型量化(INT8/FP16)、算子优化、批量推理加速 | 多GPU并行、混合精度计算、模型分片 | 生态扩展支持,自定义预处理/解码策略 |
| 速度(相对基准) | 1x(基准线,最慢) | 2-4x(显著提速) | 3-5x(极限最快) | 1.2-1.5x(略快于官方) |
| 显存占用(medium 模型) | 中等(约 4GB) | 低(INT8量化后约 3GB) | 中高(单卡约 5GB) | 中等(约 4.2GB) |
| 安装难度 | 低(一键 pip/conda 安装) | 中(自动安装 CTranslate2 依赖) | 中高(可能需升级依赖包) | 中(需额外安装 soundfile 等工具) |
| 自定义灵活性 | 低(仅支持官方预设参数) | 中(支持量化/解码策略调整) | 低(侧重速度,自定义功能少) | 高(可修改模型/预处理/解码逻辑) |
| 功能完整性 | 最全(支持所有模型/语言/输出格式) | 几乎全(仅缺失少量冷门功能) | 部分(侧重转录/翻译核心功能) | 最全(可扩展自定义功能) |
| 模型格式 | 原生 Whisper 模型(.pt) | CTranslate2 转换格式(.bin,自动转换) | Hugging Face 模型格式(.bin) | Hugging Face 模型格式(.bin) |
| 依赖 PyTorch 版本要求 | 无强制高版本(≥1.17 即可) | 无依赖(CTranslate2 独立运行) | 高(≥2.2,不支持 sm_61) | 中(≥1.18 即可,兼容 2.1.2) |
| 支持的量化类型 | 仅 FP16(默认) | INT8/FP16/FP32(可选) | FP16/FP32(无 INT8 量化) | FP16/FP32(需手动实现量化) |
| 输出格式支持 | TXT/SRT/VTT/JSON/TSV(全格式) | TXT/SRT/VTT/JSON(主流格式) | TXT/SRT/VTT(核心格式) | 需手动编码输出(灵活定制) |
| 适用场景 | 日常转录、追求稳定无坑 | 日常转录、追求速度+低显存占用 | 多GPU集群、高端单卡(RTX 30+/40+) | 科研、二次开发、自定义功能扩展 |
| 安装命令 | pip install openai-whisper | pip install faster-whisper | pip install insanely-fast-whisper | pip install transformers torch torchaudio |
选型建议
🌟 性能一般首选:Faster Whisper
- 核心优势:速度比官方快 3 倍左右,INT8 量化后显存占用仅 3GB(如GTX 1070 无压力),完全兼容旧架构,安装简单,日常转录/生成字幕场景首选。
- 避坑提示:安装后自动转换模型格式,无需手动操作;推荐使用
--quantize int8参数优化显存。
📌 兜底选择:官方 OpenAI Whisper
- 核心优势:稳定无兼容风险,功能最全,适配 PyTorch 2.1.2 无门槛,适合担心第三方版本报错的场景。
- 避坑提示:无需额外配置,直接用
--device cuda即可调用 GPU 加速。
🎈 多GPU并行:Insanely Fast Whisper
- 核心问题:依赖 PyTorch ≥2.2,单卡显存占用高,无明显优势,安装后易报错。
🛠️ 备选:Transformers 集成
- 核心适用:仅当需要自定义模型(如中文微调模型)、修改预处理逻辑时使用,普通转录场景无需折腾,操作复杂度高于前两者。
补充说明
- 所有版本均支持中文转录,推荐指定
--language zh参数提升准确率; - GTX 1070 8GB 显存可流畅运行
medium模型,large模型仅 Faster Whisper(INT8 量化)可尝试(需关闭其他 GPU 占用程序); - 速度对比基于单卡 GPU 测试,CPU 环境下所有版本速度均较慢,优先调用 GPU 加速。