4 倍速跑通 faster-whisper:CTranslate2 重写版 Whisper 语音转写指南
2026/9/18 23:30:28 网站建设 项目流程

4 倍速跑通 faster-whisper:CTranslate2 重写版 Whisper 语音转写指南

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

18:00,你手里有一段 40 分钟的会议录音,想晚饭前拿到一份带时间戳的逐字稿。faster-whisper 就是干这个的:用 CTranslate2(≈ 给模型换一台更省油的推理引擎)重写的 OpenAI Whisper 语音转写,同等精度下最高快 4 倍,还更省内存。

10 分钟装好并跑通第一条转写

  1. 装 GPU 运行库(有 N 卡才做):ctranslate2 推理要调 cuBLAS 和 cuDNN,缺了模型起不来。Linux 下pip install nvidia-cublas-cublas-cu12 nvidia-cudnn-cu12==9.*后,把这两个库目录加进LD_LIBRARY_PATH再启动 Python。
  2. 装本体:只要 Python 3.9+。音频解码走 PyAV(av>=11),它把 FFmpeg 的库打进了自己的 wheel,≈ 省去系统再装一遍 FFmpeg,装完直接读 mp3 / wav / m4a,一行pip install faster-whisper带齐 ctranslate2、tokenizers、onnxruntime。
  3. 跑第一条转写WhisperModel按模型名自动下载对应 CTranslate2 权重;下面选small档,是 CPU / 低显存下能拿到带时间戳结果的最快选择。beam_size=5是库的默认解码精度,vad_filter=True(也是默认)先用内置 Silero VAD 剪掉长静音,模型不用白算空段。注意segments是生成器,真正跑转写发生在遍历它的那一刻:
from faster_whisper import WhisperModel model = WhisperModel("small", device="cpu", compute_type="int8") segments, info = model.transcribe("meeting.mp3", beam_size=5, vad_filter=True) print(f"语言 {info.language} 置信度 {info.language_probability:.2f}") for seg in segments: print(f"[{seg.start:.2f}s -> {seg.end:.2f}s] {seg.text}")

按硬件和延迟选档位 🔧

这些数字来自仓库基准:13 分钟音频、NVIDIA RTX 3070 Ti(CUDA 12.4)与 Intel Core i7-12700K(8 线程)。

你的硬件推荐配置13 分钟 large-v2 实测内存占用
N 卡device="cuda"+float161 分 03 秒≈4.5GB 显存
N 卡,要更快同上 +batch_size=817 秒≈6.1GB 显存
N 卡,显存紧int8_float16量化59 秒≈2.9GB 显存
纯 CPUdevice="cpu"+int8(small 档)1 分 42 秒≈1.5GB 内存

batch_size会多占一部分显存/内存,但批量转写提速明显(1 分 03 秒压到 17 秒)。int8 量化在 CPU 和 GPU 上都进一步降内存,精度损失很小。

报错时先查这张表

  • 如果import faster_whisper报 ctranslate2 版本冲突,说明机器上已有不兼容的旧版,回到安装步用pip install --force-reinstall ctranslate2==4.4.0之类锁版本核对(CUDA 11 + cuDNN 8 的老环境锁3.24.0)。
  • 如果加载时看到cuDNN not found或 CUDA 报错,说明库没进环境变量或版本对不上 CUDA 12,回到第 1 步核对LD_LIBRARY_PATH路径;懒得折腾可以直接用nvidia/cuda:12.3.2-cudnn9-runtime这类 Docker 镜像。
  • 如果 PyAV 触发本地编译失败,说明 pip 拉到了源码包而非 wheel,换官方预编译包重装,别在 Windows 上硬编译。
  • 如果转写"卡住"没有输出,说明segments还是生成器没被遍历,segments = list(segments)或写for循环才会真正跑完。

再往前走一步

  • 要词级时间戳做字幕:加word_timestamps=True,每个seg.words里都有起止时刻,解码细节见 faster_whisper/transcribe.py。
  • 音频长、说话占比低时收紧静音切分省算力:vad_parameters=dict(min_silence_duration_ms=500),各参数默认值见 faster_whisper/vad.py。
  • 长音频上量:BatchedInferencePipeline把片段攒成批一次喂给模型,13 分钟音频 fp16 从 1 分 03 秒压到 17 秒,用法见 README.md 的 Batched Transcription 一节。

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

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

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

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

立即咨询