faster-whisper —— 基于 CTranslate2 推理引擎的高速语音识别(ASR)
适用场景说明:面向博主个人电脑本地部署,基线环境 Windows 10/11 + WSL2(Ubuntu 24.04)、RTX 3070 8GB / RTX 4090 24GB,另含 Linux 云服务器视角。faster-whisper 在博客工作流中通常承担「把参考音频 / 口播视频转写成标注文本」的上游角色(例如配合 04 节 GPT-SoVITS 制作训练集标注、自动生成字幕)。本节事实以官方 GitHub README、源码
WhisperModel类与 PyPI 元数据为准。
项目定位与基本信息
| 项目 | 内容 |
|---|---|
| 一句话定位 | 用快速 Transformer 推理引擎 CTranslate2 对 OpenAI Whisper 模型做的重新实现:同等精度下速度最高可达 openai/whisper 的 4 倍、内存占用更低,CPU 与 GPU 上均可使用 8-bit 量化进一步提速省内存(README 原文:"up to 4 times faster than openai/whisper for the same accuracy while using less memory")。 |
| 开源许可 | MIT License(Copyright © 2023 SYSTRAN)。出处:官方仓库 LICENSE 文件原文为 MIT License;PyPI 项目元数据 license: MIT(https://pypi.org/project/faster-whisper/ ,2026-10-25 复核)。 |
| 官方 GitHub 仓库 | https://github.com/SYSTRAN/faster-whisper |
| 官方文档 / 官网 | 无独立文档站;官方说明即仓库 README(https://github.com/SYSTRAN/faster-whisper ),参数细节以官方源码类实现为准:WhisperModel 与 transcribe 接口见 https://github.com/SYSTRAN/faster-whisper/blob/master/faster_whisper/transcribe.py ;量化类型说明见 CTranslate2 官方文档 https://opennmt.net/CTranslate2/quantization.html 。PyPI 发行页:https://pypi.org/project/faster-whisper/ |
| 版本信息 | 截至 2026-10-25 官方 PyPI 最新版:1.2.1(来源:https://pypi.org/pypi/faster-whisper/json ,info.version 字段;requires_python: >=3.9)。README benchmark 基准版本为 v1.1.0。 |
| 支持语种 | 取决于所选 Whisper 模型:多语言模型(tiny/base/small/medium/large-v2/large-v3/turbo 等)覆盖 Whisper 官方多语种清单;.en 系列为英语专用;语言码如 zh(中文)、en、ja、ko 等,未指定时模型自动检测音频前 30 秒语种(README + transcribe docstring)。 |
官方图片
经逐一核查:官方 README、仓库文件树(codeload tarball 全量清单)、PyPI 项目描述中均未包含任何静态 logo 或界面截图,仅有的图像元素为 CI 徽章与 PyPI 版本徽章(徽章非项目配图,仅作状态标识)。按照「禁止用 AI 生成图或非官方图冒充」的要求,本节不插入图片,待官方后续在仓库 / README 补充视觉素材后再增补。
| 核查项 | 记录 |
|---|---|
| README 图像引用 | 仅 CI 状态徽章与 PyPI 版本徽章两枚(README 第 1 行,PyPI 描述同步核对;徽章地址见 05.7 来源清单 #20、#21) |
| 仓库图片文件 | 对 SYSTRAN/faster-whisper master 分支 codeload tarball 做全量文件名过滤(png/jpg/jpeg/svg/webp/gif),结果为空;docs/ 目录下亦无图片 |
| 处理结论 | 无官方图片可下载;本节不做占位图、不使用第三方 logo。 |
环境要求
| 维度 | 官方说明(README「Requirements」「GPU」节 + PyPI 元数据) |
|---|---|
| 操作系统 | 跨平台;README 提供 Linux(pip 安装 NVIDIA 库)、Windows / Linux(Purfview 独立库压缩包)、CPU 等多条路径;WSL2(Ubuntu 24.04)按 Linux 路径部署。CPU 基准测试环境为 Intel Core i7-12700K、8 线程(README Small model on CPU 节)。 |
| GPU 与显存 | GPU 执行需安装 NVIDIA 库:cuBLAS for CUDA 12 与 cuDNN 9 for CUDA 12。README 明确提示:最新版 ctranslate2 仅支持 CUDA 12 + cuDNN 9;CUDA 11 + cuDNN 8 需降级 ctranslate2==3.24.0;CUDA 12 + cuDNN 8 需降级 ctranslate2==4.4.0。GPU 基准测试(large-v2,RTX 3070 Ti 8GB,CUDA 12.4)实测显存见 05.3 末尾官方 benchmark 表;README 未公布其他档位的官方显存数值。 |
| 内存 | CPU 基准测试(small 模型,i7-12700K 8 线程):fp32 占 2257 MB 内存、int8 占 1477 MB 内存(README Small model on CPU 表);其他档位内存占用 README 未公布。 |
| 依赖 | Python 3.9 或更高(README「Python 3.9 or greater」;PyPI requires_python >=3.9)。与 openai-whisper 不同,系统不需要单独安装 FFmpeg:音频由 Python 库 PyAV 解码,PyAV 在包内打包了 FFmpeg 库(README 原文:"FFmpeg does not need to be installed on the system")。GPU 侧依赖 ctranslate2、nvidia-cublas-cu12、nvidia-cudnn-cu12==9.*(Linux pip 方式)。 |
| 磁盘空间(含模型权重体积,本环境经 HF tree API 实测) | 模型首次运行时按所选档位自动下载到 Hugging Face 缓存;各 CT2 模型 model.bin 体积如下表。另需预留 PyPI 包与 CUDA 库空间(README 未公布具体数值)。 |
模型档位选择表(三类口径分列,避免混用):
| 档位 | 参数量(openai/whisper 官方 README) | CT2 model.bin 实测体积(HF tree/main API,2026-10-25) |
原版 PyTorch 参考显存(openai/whisper README,fp32 基线,非 CT2 实测) | 相对速度(openai/whisper README,A100 英文语音,以 large 为 1×) | 下载名(WhisperModel 首参数) |
|---|---|---|---|---|---|
| tiny | 39 M | 72.0 MB(仓库合计 74.6 MB) | ~1 GB | ~10× | tiny / tiny.en |
| base | 74 M | 138.5 MB(141.0 MB) | ~1 GB | ~7× | base / base.en |
| small | 244 M | 461.1 MB(463.7 MB) | ~2 GB | ~4× | small / small.en |
| medium | 769 M | 1457.1 MB(1459.7 MB) | ~5 GB | ~2× | medium / medium.en |
| large-v2 | 1550 M(large 档) | 2943.9 MB(2946.5 MB) | ~10 GB(large 档参考值) | ~1× | large-v2 |
| large-v3 | 1550 M(large 档) | 2944.3 MB(2947.7 MB) | ~10 GB(large 档参考值) | ~1× | large-v3 / large |
| turbo | 809 M | 未在 Systran 仓库单列(README 支持 turbo / large-v3-turbo 下载名) |
~6 GB | ~8× | turbo / large-v3-turbo |
口径说明:① 参数量、原版参考显存、相对速度三列来自 openai/whisper 官方 README「Available models and languages」表,描述的是原版 PyTorch 实现基线,不能直接等同于 faster-whisper/CT2 显存占用;② CT2 体积列为 HF Systran 仓库
tree/mainAPI 实测;③ CT2 引擎的真实显存 / 速度以 05.3 下方官方 benchmark 表(仅 large-v2 GPU、small CPU 两组实测)为准,其余档位 README 未公布 CT2 实测值。
官方 benchmark 实测表(README「Benchmark」节原文数据,13 分钟英文音频,RTX 3070 Ti 8GB / CUDA 12.4;CPU 为 i7-12700K 8 线程):
| 实现 | 精度 | beam size | GPU 耗时 | GPU 显存 / CPU 内存 |
|---|---|---|---|---|
| openai/whisper(对照) | fp16 | 5 | 2m23s | 4708 MB |
| whisper.cpp(Flash Attention,对照) | fp16 | 5 | 1m05s | 4127 MB |
| transformers(SDPA,对照) | fp16 | 5 | 1m52s | 4960 MB |
| faster-whisper | fp16 | 5 | 1m03s | 4525 MB |
faster-whisper(batch_size=8) |
fp16 | 5 | 17s | 6090 MB |
| faster-whisper | int8 | 5 | 59s | 2926 MB |
faster-whisper(batch_size=8) |
int8 | 5 | 16s | 4500 MB |
| faster-whisper(CPU,small,fp32) | fp32 | 5 | 2m37s | 2257 MB RAM |
| faster-whisper(CPU,small,int8) | int8 | 5 | 1m42s | 1477 MB RAM |
说明:上表为 README 公布的官方实测;除 large-v2(GPU)与 small(CPU)外,其余档位显存 / 内存数值 README 未给出,不做推算填充。
最详细部署步骤(Windows 与 WSL2 双视角)
1. 依赖安装
通用前置:安装 Python 3.9+(README 要求)。建议使用虚拟环境隔离:
# WSL2 Ubuntu / Linux 云服务器
python3 -m venv .venv
source .venv/bin/activate
# Windows PowerShell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
NVIDIA GPU 库安装(README「GPU」节三种官方方式,按系统选一):
- 方式一:Docker(README 官方说明):使用官方 NVIDIA CUDA 镜像
nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04,其中已含 cuBLAS、cuDNN。 - 方式二:Linux 下 pip 安装(README 原文,仅 Linux):
```bash pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*
# README 原文要求:启动 Python 前先设置 LD_LIBRARY_PATH export LD_LIBRARY_PATH=$(python3 -c 'import os, nvidia.cublas, nvidia.cudnn; print(os.path.dirname(nvidia.cublas.path[0]) + "/cublas/lib:" + os.path.dirname(nvidia.cudnn.path[0]) + "/cudnn/lib")') ```
- 方式三:Purfview 独立库压缩包(Windows & Linux):README 指引从 Purfview/whisper-standalone-win 的
libsrelease 下载所需 NVIDIA 库单文件压缩包,解压后把目录加入系统PATH。
版本降级提示(README 原文):若本机为 CUDA 11 + cuDNN 8,执行 pip install --force-reinstall ctranslate2==3.24.0;若为 CUDA 12 + cuDNN 8,执行 pip install --force-reinstall ctranslate2==4.4.0(或在 requirements.txt 中固定版本)。
注意:README 明确 系统无需安装 FFmpeg;若习惯在 Windows PATH 中保留全局 FFmpeg 也不会冲突,但排查问题时不要把「缺 FFmpeg」当成 faster-whisper 的必需报错项。
2. 项目下载 / 安装(README「Installation」节,唯一推荐方式:PyPI)
pip install faster-whisper
其他官方安装方式(README「Other installation methods」折叠节):
# 安装 master 分支最新代码
pip install --force-reinstall "faster-whisper @ https://github.com/SYSTRAN/faster-whisper/archive/refs/heads/master.tar.gz"
# 安装指定 commit(示例 commit 取自 README)
pip install --force-reinstall "faster-whisper @ https://github.com/SYSTRAN/faster-whisper/archive/a4f1cc8f11433e454c3934442b5e1a4ed5e865c3.tar.gz"
3. 模型 / 权重下载(官方来源 + 国内加速 + 3070 8GB 档位选择)
官方来源:加载 WhisperModel("large-v3") 这类档位名时,对应 CTranslate2 模型自动从 Hugging Face Hub 的 Systran 组织仓库 下载(README「Model conversion」节原文:"the corresponding CTranslate2 model is automatically downloaded from the Hugging Face Hub")。模型清单与体积见 05.3 实测表。
国内加速:faster-whisper 底层使用 huggingface_hub 下载,可通过标准环境变量切换镜像(机制说明:https://huggingface.co/docs/huggingface_hub/guides/environment-variables ):
# Linux / WSL2(写入 ~/.bashrc 可持久化)
export HF_ENDPOINT=https://hf-mirror.com
# Windows PowerShell
$env:HF_ENDPOINT="https://hf-mirror.com"
也可在代码中用 download_root= 指定本地模型目录,或先在网络通畅环境下载好 model.bin 等文件,再用本地目录路径加载(README「Load a converted model」节):
from faster_whisper import WhisperModel
model = WhisperModel("/path/to/local/model-dir")
RTX 3070 8GB 档位选择(README 官方 benchmark 同类对照 + 明确边界):
| 场景 | 建议档位 / 精度 | 依据与边界 |
|---|---|---|
| 追求精度、GPU 显存充裕(4090 24GB) | large-v3 + device="cuda" + compute_type="float16" |
README 示例默认写法;large-v2 官方实测 fp16 4525MB、int8 2926MB(3070 Ti 8GB);README 未给出 large-v3 独立显存实测,large-v3 实际占用以本机 nvidia-smi 实测为准 |
| RTX 3070 8GB 稳妥配置 | medium 或 small + fp16;large-v2 用 int8_float16 或 int8 |
large-v2 int8 官方实测 2926MB;8GB 显存避开 batch_size=8(fp16 6090MB / int8 4500MB,官方 benchmark 数值);large-v3 在 8GB 上的可行性 README 未给出数据,需实测 |
| 纯 CPU / 云服务器无 GPU | small 或 base + device="cpu" + compute_type="int8" |
README 示例 device="cpu", compute_type="int8";small CPU int8 官方实测 1477MB RAM |
| 长视频批量提速 | BatchedInferencePipeline + batch_size=8(显存允许时) |
README「Batched Transcription」示例;显存占用按官方 benchmark 表预留 |
4. 关键配置(代码初始化参数,来源:官方 WhisperModel.__init__ 源码签名)
| 参数 | 类型 / 默认值 | 说明(源码 docstring 原文要点) |
|---|---|---|
model_size_or_path |
str,必填 |
档位名(tiny、tiny.en、base、base.en、small、small.en、distil-small.en、medium、medium.en、distil-medium.en、large-v1、large-v2、large-v3、large、distil-large-v2、distil-large-v3、large-v3-turbo、turbo)、转换后模型本地目录,或 HF Hub 上的 CT2 模型 ID |
device |
str,默认 "auto" |
计算设备:cpu / cuda / auto |
device_index |
int 或 list[int],默认 0 |
显卡编号;可传列表 [0,1,2,3] 多卡并行,配合多线程 transcribe() 调用 |
compute_type |
str,默认 "default" |
计算精度:float16 / int8_float16 / int8 / float32 等,取值见 CTranslate2 量化文档 |
cpu_threads |
int,默认 0 |
CPU 线程数(默认 4);非零值覆盖 OMP_NUM_THREADS 环境变量 |
num_workers |
int,默认 1 |
多线程调用 transcribe() 时的并行 worker 数,提升吞吐但增加内存 |
download_root |
Optional[str],默认 None |
模型保存目录;缺省走标准 Hugging Face 缓存目录 |
local_files_only |
bool,默认 False |
为 True 时不发起下载,仅返回本地缓存模型 |
revision |
Optional[str],默认 None |
HF Hub 分支 / 标签 / commit 修订号 |
use_auth_token |
Optional[Union[str, bool]],默认 None |
Hugging Face 鉴权 token,或 True 使用 HF 配置目录中已保存的 token |
5. 启动(官方 README 最小可运行命令序列)
# 确认环境已激活,模型首次运行自动下载;无系统 FFmpeg 依赖
python your_transcribe_script.py
使用方法
启动方式
faster-whisper 是 Python 库,无自带 WebUI;通过 WhisperModel 初始化 + model.transcribe(...) 调用。README 官方最小示例(原文照录):
from faster_whisper import WhisperModel
model_size = "large-v3"
# Run on GPU with FP16
model = WhisperModel(model_size, device="cuda", compute_type="float16")
# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")
segments, info = model.transcribe("audio.mp3", beam_size=5)
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
README 重要警告:
segments是生成器(generator),只有在迭代它时转写才真正开始;必须放入list(segments)或for循环中执行(README「Warning」段原文):
segments, _ = model.transcribe("audio.mp3")
segments = list(segments) # The transcription will actually run here.
transcribe() 参数说明表(来源:官方 faster_whisper/transcribe.py 第 781–825 行签名 + docstring)
| 参数 | 默认值 | 说明(源码 docstring 要点) |
|---|---|---|
audio |
必填 | 音频文件路径、文件类对象,或音频波形 numpy 数组 |
language |
None |
音频语种码(如 "en"、"fr"、"zh");未设置时在音频前 30 秒自动检测 |
task |
"transcribe" |
任务:transcribe(转写)或 translate(翻译成英文) |
log_progress |
False |
是否显示进度条 |
beam_size |
5 |
解码 beam 宽度;注意 openai-whisper 默认 beam_size 为 1,跨实现对比时需对齐(README「Comparing performance」节) |
best_of |
5 |
非零温度采样时的候选数量 |
patience |
1 |
beam search 耐心因子 |
length_penalty |
1 |
指数长度惩罚常数 |
repetition_penalty |
1 |
已生成 token 分数惩罚(>1 惩罚重复) |
no_repeat_ngram_size |
0 |
禁止重复 n-gram 大小,0 关闭 |
temperature |
[0.0, 0.2, 0.4, 0.6, 0.8, 1.0] |
采样温度;失败时按 compression_ratio_threshold 或 log_prob_threshold 依次重试 |
compression_ratio_threshold |
2.4 |
gzip 压缩比高于该值视为失败 |
log_prob_threshold |
-1.0 |
采样 token 平均 log probability 低于该值视为失败 |
no_speech_threshold |
0.6 |
无语音概率高于该值且平均 log prob 低于阈值时,判定该段为静音 |
condition_on_previous_text |
True |
为 True 时把上一段输出作为下一段 prompt;关闭可降低重复循环 / 时间戳错乱概率,但跨段一致性可能下降 |
prompt_reset_on_temperature |
0.5 |
温度超过该值时重置 prompt |
initial_prompt |
None |
初始提示词(字符串或 token 序列);可用于注入专有名词、领域术语或中文标点习惯 |
prefix |
None |
文本前缀 |
suppress_blank |
True |
是否抑制空 token |
suppress_tokens |
[-1] |
抑制的 token 列表 |
without_timestamps |
False |
是否不带时间戳输出 |
max_initial_timestamp |
1.0 |
初始时间戳上限 |
word_timestamps |
False |
是否输出词级时间戳(配合 segment.words 使用,README「Word-level timestamps」示例) |
prepend_punctuations |
"\"'“¿([{-" |
前附着标点 |
append_punctuations |
"\"'.。,,!!??::”)]}、" |
后附着标点 |
multilingual |
False |
多语言段内语言检测 |
vad_filter |
False |
是否启用内置 Silero VAD 过滤无声片段;批处理模式默认开启(README「VAD filter」节) |
vad_parameters |
None |
VAD 参数字典,如 dict(min_silence_duration_ms=500);默认仅移除超过 2 秒的静音,可调参数见源码 faster_whisper/vad.py |
max_new_tokens |
None |
单段最大新生成 token 数 |
chunk_length |
None |
分块长度 |
clip_timestamps |
"0" |
时间戳裁剪 |
hallucination_silence_threshold |
None |
幻觉静音阈值 |
hotwords |
None |
热词 |
language_detection_threshold |
0.5 |
语种检测阈值 |
language_detection_segments |
1 |
参与语种检测的段数 |
其他官方用法片段(README 原文)
批量转写(Batched InferencePipeline,README「Batched Transcription」节):
from faster_whisper import WhisperModel, BatchedInferencePipeline
model = WhisperModel("turbo", device="cuda", compute_type="float16")
batched_model = BatchedInferencePipeline(model=model)
segments, info = batched_model.transcribe("audio.mp3", batch_size=16)
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
词级时间戳(README「Word-level timestamps」节):
segments, _ = model.transcribe("audio.mp3", word_timestamps=True)
for segment in segments:
for word in segment.words:
print("[%.2fs -> %.2fs] %s" % (word.start, word.end, word.word))
VAD 过滤(README「VAD filter」节):
segments, _ = model.transcribe(
"audio.mp3",
vad_filter=True,
vad_parameters=dict(min_silence_duration_ms=500),
)
蒸馏模型 distil-large-v3(README「Faster Distil-Whisper」节):
from faster_whisper import WhisperModel
model_size = "distil-large-v3"
model = WhisperModel(model_size, device="cuda", compute_type="float16")
segments, info = model.transcribe(
"audio.mp3", beam_size=5, language="en", condition_on_previous_text=False
)
端到端示例:中文口播音频转写并导出带时间戳字幕(.txt + .srt)
适用场景:把博客录制的口播音视频转成文字稿与 SRT 字幕;3070 8GB 选用 medium + int8 稳妥起步,4090 可换 large-v3 + fp16。
# transcribe_zh.py —— 官方 API 组合示例,依赖:pip install faster-whisper
from faster_whisper import WhisperModel
# 1) 初始化模型:3070 8GB 推荐 medium + int8_float16;4090 可改 large-v3 + float16
model = WhisperModel(
"medium",
device="cuda",
compute_type="int8_float16",
# cpu_threads=4, # 纯 CPU 时按需设置
# download_root="./models", # 指定本地模型目录
)
# 2) 转写:固定中文、beam_size 5、开启 VAD、注入领域提示词、开启词级时间戳
segments, info = model.transcribe(
"koubo.mp3",
language="zh", # 固定中文;自动检测则留 None
beam_size=5,
vad_filter=True, # 过滤静音片段
vad_parameters=dict(min_silence_duration_ms=500),
initial_prompt="以下是技术博客普通话口播内容,包含开源、语音合成、深度学习等术语。",
word_timestamps=True, # 词级时间戳,便于精细校对字幕
condition_on_previous_text=True,
)
print("检测语种:%s(概率 %.3f)" % (info.language, info.language_probability))
# 3) 收集段落到列表(generator 必须迭代后才真正转写)
segments = list(segments)
# 4a) 导出纯文本稿
with open("koubo.txt", "w", encoding="utf-8") as f:
for seg in segments:
f.write(seg.text.strip() + "\n")
# 4b) 导出 SRT 字幕(段级时间戳)
def fmt_ts(seconds: float) -> str:
ms = int((seconds % 1) * 1000)
s = int(seconds)
h, rem = divmod(s, 3600)
m, sec = divmod(rem, 60)
return f"{h:02d}:{m:02d}:{sec:02d},{ms:03d}"
with open("koubo.srt", "w", encoding="utf-8") as f:
for idx, seg in enumerate(segments, start=1):
f.write(f"{idx}\n{fmt_ts(seg.start)} --> {fmt_ts(seg.end)}\n{seg.text.strip()}\n\n")
# 5) 控制台预览
for seg in segments:
print("[%.2fs -> %.2fs] %s" % (seg.start, seg.end, seg.text.strip()))
运行:
export HF_ENDPOINT=https://hf-mirror.com # 国内镜像(WSL2/Linux)
python transcribe_zh.py
命令行工具补充:README「Community integrations」列出的 whisper-ctranslate2 是基于 faster-whisper 的第三方 CLI,接口兼容 openai-whisper 客户端;属社区项目,非官方组件,需要独立查阅其仓库说明。
常见坑
| # | 现象 | 原因 | 解决(README 官方依据) |
|---|---|---|---|
| 1 | 启动报 cuBLAS / cuDNN 加载错误(library not found / 版本不匹配) |
最新版 ctranslate2 仅支持 CUDA 12 + cuDNN 9;本机 CUDA / cuDNN 版本不在支持范围 |
按 README「GPU」节对照处理:CUDA 11 + cuDNN 8 降级 ctranslate2==3.24.0;CUDA 12 + cuDNN 8 降级 ctranslate2==4.4.0;Linux 用 nvidia-cublas-cu12 + nvidia-cudnn-cu12==9.* pip 包并设置 LD_LIBRARY_PATH;Windows 从 Purfview libs release 取库加入 PATH。 |
| 2 | 首次运行卡在模型下载,或 HF 连接超时 | 模型默认从 huggingface.co/Systran 自动下载,国内直连不稳 | 先 export HF_ENDPOINT=https://hf-mirror.com(Linux/WSL2)或 $env:HF_ENDPOINT="https://hf-mirror.com"(Windows);或在网络通畅环境用 download_root= 预下载模型目录后离线加载。 |
| 3 | GPU 转写时报显存不足(CUDA out of memory) | fp16 大模型 + 大批量超显存;README benchmark 中 batch_size=8 会把显存从 4525MB 抬到 6090MB(fp16) |
降精度:compute_type="int8_float16" 或 "int8"(large-v2 int8 官方实测 2926MB);换 medium / small 档位;关闭 batch_size=8 批处理;最终退路 device="cpu", compute_type="int8"。 |
| 4 | 脚本跑完只输出标题,没有任何转写文本 | segments 是惰性生成器,未迭代就结束(README「Warning」原文提示) |
先 segments = list(segments) 或在 for 循环中消费再做导出;不要在迭代前把 segments 写入文件。 |
| 5 | 音频解码失败,误装系统 FFmpeg 仍报错 | README 明确不依赖系统 FFmpeg,解码由 PyAV 内置库完成;真实原因通常是 PyAV 版本与音频编码 / 采样率不匹配 | 升级 faster-whisper 与 av(requirements 约束 av>=11);确认音频本身可被其他播放器打开;系统 FFmpeg 缺失不是 faster-whisper 的报错原因,排查方向应对准 PyAV 与文件格式。 |
| 6 | 长音频出现重复复读、时间戳整体后移 | condition_on_previous_text=True 时上一段文本持续作为 prompt,易陷入失败循环(README 参数说明原文) |
设 condition_on_previous_text=False;配合 vad_filter=True 静音过滤;必要时调 no_speech_threshold、compression_ratio_threshold;专有名词用 initial_prompt 提前给出。 |
本节来源清单
| # | URL | 用途 | 验证方式(2026-10-25) |
|---|---|---|---|
| 1 | https://github.com/SYSTRAN/faster-whisper | 官方仓库主页 | curl HTML 200(GitHub 主页受 robots.txt 限制 web_fetch,改用 raw README 精读 + curl 核验) |
| 2 | https://raw.githubusercontent.com/SYSTRAN/faster-whisper/master/README.md | 项目 README(定位、Requirements、GPU 库、安装、用法、benchmark、VAD、批处理、模型转换的唯一事实来源) | curl 200 下载后全文精读(297 行) |
| 3 | https://github.com/SYSTRAN/faster-whisper/blob/master/LICENSE | MIT 许可证原文 | curl raw LICENSE 200,开头 MIT License / Copyright (c) 2023 SYSTRAN 已核对 |
| 4 | https://pypi.org/project/faster-whisper/ | PyPI 发行页(版本 1.2.1、license MIT、Python >=3.9) | curl 200;https://pypi.org/pypi/faster-whisper/json 复核 info.version=1.2.1、requires_python>=3.9、license=MIT |
| 5 | https://github.com/SYSTRAN/faster-whisper/blob/master/faster_whisper/transcribe.py | WhisperModel.__init__ 与 transcribe() 签名、默认值、docstring 来源 |
curl raw 200,1986 行;初始化签名 622–672 行、转写签名 781–825 行已逐行核对 |
| 6 | https://github.com/OpenNMT/CTranslate2/ | 推理引擎上游仓库(README 引用) | curl 200 |
| 7 | https://opennmt.net/CTranslate2/quantization.html | compute_type 量化类型官方文档 |
curl 200 |
| 8 | https://github.com/PyAV-Org/PyAV | 音频解码库(README「FFmpeg does not need to be installed」依据) | curl 200 |
| 9 | https://developer.nvidia.com/cublas | cuBLAS for CUDA 12 官方下载页(README GPU 节链接) | curl 200 |
| 10 | https://developer.nvidia.com/cudnn | cuDNN 9 for CUDA 12 官方下载页(README GPU 节链接) | curl 200 |
| 11 | https://github.com/Purfview/whisper-standalone-win/releases/tag/libs | Windows/Linux 独立 NVIDIA 库压缩包(README 折叠节方式三) | curl 200 |
| 12 | https://github.com/snakers4/silero-vad | 内置 VAD 模型上游仓库(README VAD filter 节) | curl 200 |
| 13 | https://huggingface.co/Systran | CT2 模型自动下载组织仓库(README Model conversion 节) | curl 200 |
| 14 | https://huggingface.co/Systran/faster-whisper-tiny | tiny 模型仓库(72.0 MB model.bin) | curl 200;tree API 实测体积 |
| 15 | https://huggingface.co/Systran/faster-whisper-large-v3 | large-v3 模型仓库(2944.3 MB model.bin) | curl 200;tree API 实测体积 |
| 16 | https://github.com/openai/whisper | 原版 Whisper 上游;模型参数量、原版参考显存、A100 相对速度对照表来源 | curl 200;raw README「Available models and languages」表格已核对(表内数值为原版 PyTorch 基线,非 CT2 实测,文中已标注) |
| 17 | https://huggingface.co/docs/huggingface_hub/guides/environment-variables | HF_ENDPOINT 镜像环境变量机制官方文档 |
curl 200 |
| 18 | https://huggingface.co/distil-whisper/distil-large-v3 | README「Faster Distil-Whisper」引用的蒸馏模型卡 | 链接来自 README;未单独抓取模型卡内容,参数以 README 示例为准 |
| 19 | https://github.com/Softcatala/whisper-ctranslate2 | README Community integrations 所列第三方 CLI(非官方组件,文中已标注) | curl 200 |
| 20 | https://github.com/SYSTRAN/faster-whisper/archive/refs/heads/master.tar.gz | README「Install the master branch」安装源 | 链接来自 README 折叠节;未在本环境执行安装 |
| 21 | https://github.com/SYSTRAN/faster-whisper/archive/a4f1cc8f11433e454c3934442b5e1a4ed5e865c3.tar.gz | README「Install a specific commit」示例 commit 安装源 | 链接来自 README 折叠节;commit 哈希逐字摘自 README |
| 22 | https://hf-mirror.com | HF 国内镜像站首页;HF_ENDPOINT=https://hf-mirror.com 镜像目标 |
首页 curl 200;模型文件解析在本环境超时,镜像可用性以读者本地网络为准 |
| 23 | https://github.com/SYSTRAN/faster-whisper/workflows/CI/badge.svg | README 第 1 行 CI 徽章(状态标识,非项目配图) | 随 README 一并核验 |
| 24 | https://badge.fury.io/py/faster-whisper.svg | README 第 1 行 PyPI 版本徽章(状态标识,非项目配图) | 随 README 一并核验 |
待复核项:各档位 CT2 模型在 RTX 3070 8GB 上的独立显存占用,官方 README 仅公布 large-v2(GPU)与 small(CPU)实测数据;其余档位数值请以本机
nvidia-smi实测为准,本节未做外推估算。