faster-whisper 快速上手指南:Whisper 语音转文字,速度最高提升 4 倍
2026/9/5 19:37:07 网站建设 项目流程

faster-whisper 快速上手指南:Whisper 语音转文字,速度最高提升 4 倍

【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper

faster-whisper 是基于 CTranslate2 重构的 Whisper 语音转文字引擎,准确率与 openai/whisper 保持一致,速度最高提升 4 倍且占用更少内存。本文带你完成安装、跑通第一次转录、掌握核心功能,并给出常见坑的解决办法。

🚀 快速上手

一条命令安装

pip install faster-whisper

环境要求 Python 3.9 及以上。与 openai-whisper 不同,你不需要在系统里安装 FFmpeg,音频解码由 PyAV 库自带完成。

跑通第一次转录

from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") # GPU + FP16 segments, info = model.transcribe("audio.mp3", beam_size=5) print(info.language, info.language_probability) # 自动检测的语言及置信度 for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

没有 NVIDIA 显卡时,可改用 CPU 方式加载:WhisperModel("small", device="cpu", compute_type="int8")

有一个必须知道的行为:segments是生成器,transcribe()返回时并未开始推理,迭代它时转录才真正执行。需要立刻跑完就把它转成列表:

segments, _ = model.transcribe("audio.mp3") segments = list(segments) # 转录在这里实际运行

💡 核心功能讲解

批量转录:长音频提速

BatchedInferencePipelineWhisperModel.transcribe的即插即替接口,把音频分块批量推理,VAD 过滤默认开启。官方基准中,13 分钟音频在 GPU 上从 1 分 03 秒(fp16 单条)缩短到 17 秒(batch_size=8)。

from faster_whisper import WhisperModel, BatchedInferencePipeline model = WhisperModel("turbo", device="cuda", compute_type="float16") batched = BatchedInferencePipeline(model=model) segments, info = batched.transcribe("audio.mp3", batch_size=16)

词级时间戳:直接做字幕

开启word_timestamps=True后,每个Segment会附带words列表,每个词都带起止时间和置信度,适合字幕制作、逐词高亮等场景。

segments, _ = model.transcribe("audio.mp3", word_timestamps=True) for segment in segments: for word in segment.words: print(f"[{word.start:.2f}s -> {word.end:.2f}s] {word.word}")

VAD 静音过滤:跳过无语音片段

内置 Silero VAD 模型会先筛掉没有语音的片段再送进模型,长音频里的大段静音、音乐不再浪费算力。默认策略偏保守:只剔除超过 2 秒的静音,可通过vad_parameters字典自定义阈值。

segments, _ = model.transcribe( "audio.mp3", vad_filter=True, vad_parameters=dict(min_silence_duration_ms=500), # 静音超过 500ms 即切分 )

注意:VAD 过滤依赖onnxruntime包,缺失时开启该功能会直接报错(见后文常见问题)。

📊 配置与选型

模型怎么选

WhisperModel第一个参数支持模型尺寸名(自动从 Hugging Face Hub 下载 CTranslate2 模型)、本地转换后的模型目录或 Hub 模型 ID。可选尺寸包括 tiny / base / small / medium / large-v1 ~ v3 系列、turbo(large-v3-turbo)、distil-large-v3 等,另有.en单语言版本。

模型定位说明
tiny / base极速档延迟敏感场景,精度有限
small平衡档日常使用的稳妥起点
medium高质量速度明显变慢
large-v3精度最高官方示例默认选择
turbo快速变体large-v3 加速版,配合批量模式效果明显
distil-large-v3蒸馏模型需显式指定language="en"并关闭condition_on_previous_text

设备与计算类型怎么选

场景devicecompute_type
GPU 显存充裕cudafloat16(默认推荐)
GPU 显存紧张cudaint8_float16
无 GPUcpuint8

官方在 NVIDIA RTX 3070 Ti 8GB(CUDA 12.4)上测得:large-v2 模型转录 13 分钟音频,fp16 用时 1 分 03 秒、显存 4525MB;int8 量化后显存降至 2926MB;batch_size=8时 17 秒完成。

几个容易忽略的参数:

  • beam_size:本项目默认 5,openai/whisper 默认 1,跨实现比较速度时务必对齐
  • cpu_threads:CPU 推理线程数,默认 4
  • hotwords:为特定词汇做偏置,见 faster_whisper/transcribe.py

❓ 常见问题

转录一直没输出、感觉"没开始"

  • 现象:调用transcribe()后程序长时间无输出
  • 原因segments是生成器,不迭代就不推理
  • 解决:用list(segments)for循环消费结果,确认进度可加 tqdm 日志

GPU 报错:CUDA / cuDNN 版本不兼容

  • 现象:加载 CUDA 模型时提示 cuBLAS/cuDNN 缺失或版本错误
  • 原因:新版 ctranslate2 只支持 CUDA 12 + cuDNN 9
  • 解决:CUDA 11 + cuDNN 8 环境执行pip install ctranslate2==3.24.0;CUDA 12 + cuDNN 8 执行pip install ctranslate2==4.4.0。Linux 上也可pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*并设置LD_LIBRARY_PATH

开启 VAD 报错 "requires the onnxruntime package"

  • 现象vad_filter=True时抛出 RuntimeError
  • 原因:Silero VAD 模型用 ONNX Runtime 在 CPU 上运行
  • 解决pip install onnxruntime

GPU 显存不足(OOM)

  • 现象:大模型加载或转录时显存溢出
  • 原因:模型体积或批大小超出显存上限
  • 解决:改用compute_type="int8_float16"(基准中 large-v2 显存从 4525MB 降到 2926MB),或换更小模型、调小batch_size

CPU 转录偏慢

  • 现象:CPU 模式耗时远超预期
  • 原因:线程数未对齐,或使用了 FP32
  • 解决:启动脚本时设置OMP_NUM_THREADS(如OMP_NUM_THREADS=4 python3 my_script.py),或使用int8计算类型(基准中 small 模型 CPU 从 2 分 37 秒降到 1 分 42 秒)

🔭 进阶方向

  • 转换自定义微调的 Whisper 模型为 CTranslate2 格式,见 README.md 的 Model conversion 一节
  • 更多转录参数(hotwords、clip_timestamps 等)见 faster_whisper/transcribe.py
  • VAD 全部参数与默认值见 faster_whisper/vad.py
  • 速度 / 内存基准脚本位于 benchmark/

小结

faster-whisper 的定位很明确:用 CTranslate2 重跑 Whisper,更快、更省内存,且无需系统安装 FFmpeg。上手路径就是「pip 安装 → 三行代码转录 → 按硬件选模型与量化」。遇到输出不产生、CUDA 版本报错、显存不足这三类问题,基本都能按上文对应解决。

  • 完整文档与基准数据:README.md
  • 转录参数与模型加载实现:faster_whisper/transcribe.py
  • 性能基准脚本:benchmark/

【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询