☰
17秒转写13分钟音频:faster-whisper 快速上手指南
2026/10/2 1:51:37 网站建设 项目流程

17秒转写13分钟音频:faster-whisper 快速上手指南

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

faster-whisper 是基于 CTranslate2 推理引擎重写的 Whisper 语音识别实现,同等准确率下最高比原版快 4 倍且更省内存。如果你要在产品里集成离线语音转文字,或批量处理会议、播客录音,看这篇即可跑起来并调好参数。

速度与内存一张表:faster-whisper 对比 openai/whisper

官方基准(13 分钟英文音频,beam_size=5)给出的数据如下。GPU 数据为 large-v2 模型(NVIDIA RTX 3070 Ti,CUDA 12.4);"部署成本"指是否依赖系统级 FFmpeg:

实现速度(转写 13 分钟音频)显存/内存部署成本
openai/whisper(fp16)2m23s4708MB需系统安装 FFmpeg
whisper.cpp(fp16,Flash Attention)1m05s4127MB需自行部署二进制
faster-whisper(fp16)1m03s4525MB无需 FFmpeg(PyAV 自带解码)
faster-whisper(int8)59s2926MB无需 FFmpeg
faster-whisper(fp16,batch_size=8)17s6090MB无需 FFmpeg

CPU 侧差距同样明显:small 模型上,openai/whisper(fp32)要 6m58s,faster-whisper int8 只要 1m42s 且内存 1477MB;加 batch_size=8 可进一步压到 51s。完整测试脚本在仓库 benchmark/ 目录。

三步装好并验证:pip install 到第一条转写结果

前置条件确认:

  • Python 3.9 及以上(当前发布版本 1.2.1)
  • 无需安装 FFmpeg,音频解码由依赖库 PyAV 完成
  • 核心依赖 pip 自动装好:ctranslate2(4.x)、onnxruntime、av、tokenizers
  • 仅 GPU 需要:NVIDIA 显卡 + CUDA 12 + cuBLAS + cuDNN 9;若停留在 CUDA 11 / cuDNN 8,需降级ctranslate2==4.4.0

第一步,一条命令安装(依赖自动解析):

pip install faster-whisper

第二步,验证版本:

python -c "import faster_whisper; print(faster_whisper.__version__)"

终端打印出1.2.1即安装成功。

第三步,最小可运行代码,CPU + int8 量化转写仓库自带的测试音频:

from faster_whisper import WhisperModel model = WhisperModel("small", device="cpu", compute_type="int8") segments, info = model.transcribe("tests/data/jfk.flac", beam_size=5) for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

首次运行会先从 Hugging Face 下载一次 small 模型权重,之后你会看到逐行带起止时间的输出,形如[0.00s -> 2.44s] And so my fellow Americans...。

参数速查:转写时最常改的 7 个开关

完整签名和注释见 faster_whisper/transcribe.py 中的transcribe方法,常用参数如下:

参数常用取值何时使用
devicecpu / cuda有 NVIDIA 显卡选 cuda,否则 cpu
compute_typefloat16 / int8_float16 / int8GPU 首选 float16;显存紧张用 int8_float16;CPU 用 int8
beam_size1–5,默认 5值越小解码越快,越大结果越稳定
batch_size8 / 16长音频批量转写,需配合 BatchedInferencePipeline
vad_filterTrue(默认开启)转写前过滤静音段,阈值经 vad_parameters 调整,默认只移除超过 2 秒的静音
word_timestampsTrue需要词级时间戳(字幕对齐、热词定位)
languageen / zh 等已知语种时跳过自动检测,速度更稳

实战两个场景:批量推理与 VAD 静音过滤 ⚡

场景一:长录音批量转写,吃满 GPU。用BatchedInferencePipeline替代常规 transcribe,它是即插即用的 drop-in 替换:

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

效果:README 基准显示同一 GPU 上 large-v2 模型转写 13 分钟音频,从 1m03s 降到 17s(fp16,batch_size=8;int8 下为 16s)。

场景二:会议录音里大量沉默,直接跳过。给 transcribe 传vad_filter=True(其实默认已开启),并用vad_parameters收紧判定阈值:

segments, _ = model.transcribe( "meeting.mp3", vad_filter=True, vad_parameters=dict(min_silence_duration_ms=500), )

效果:超过 500ms 的静音都会被切掉,不再浪费算力在无语音片段上;若还要逐词定位,加word_timestamps=True后从每个 segment 的words字段读取。

避坑表:5 个常见报错的对应修法

现象可能原因解决办法
加载 GPU 报 CUDA 相关错误缺 cuBLAS/cuDNN,或 CUDA 11 环境配了新版 ctranslate2按 CUDA 12 装 cuBLAS 和 cuDNN 9;旧环境降级pip install --force-reinstall ctranslate2==4.4.0
GPU 显存不足(OOM)模型过大或 fp16 占用偏高compute_type 改用 int8_float16,或换更小模型
转写速度远低于预期CPU 上跑大模型,或 beam_size 偏高换小模型 + int8,或换 GPU;长音频走 batched 推理
调用 transcribe 后一直没有输出segments 是生成器,遍历前不会真正开始转写用 for 循环遍历,或list(segments)强制执行
首次运行特别慢首次会从 Hugging Face 下载模型权重等一次即可,之后走本地缓存;也可转换模型目录后直接加载

下一步:拿真实录音对比量化方案

faster-whisper 解决的是 Whisper 推理慢、占内存高的问题,int8 量化和批量推理在内存与吞吐上还有余量。建议下一步拿一段真实录音,分别用 float16 和 int8 各跑一遍,对比耗时、内存和识别差异,再决定线上配置;想复现本文基准数据,可直接运行 benchmark/ 目录下的速度脚本,想细看全部参数就翻 faster_whisper/transcribe.py。

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

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

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

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

立即咨询