faster-whisper 语音转文字实战:4 倍提速与显存减半的完整方案
2026/9/5 18:24:46 网站建设 项目流程

faster-whisper 语音转文字实战:4 倍提速与显存减半的完整方案

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

faster-whisper 是基于 CTranslate2 推理引擎重写的 OpenAI Whisper 语音转文字工具,识别准确率与原版一致。在 8GB 显存的 RTX 3070 Ti 上,它把 13 分钟音频的 large-v2 转录从 2 分 23 秒压到 1 分 03 秒,开 8 位量化后 59 秒、显存 2926MB。这篇按"选型→安装→出结果→调参"的顺序讲用法。

痛点:转录慢、显存爆、依赖难搭

  • 原版 openai/whisper 跑 large-v2 要 2m23s、占 4708MB 显存,想省内存却没有量化选项。
  • 没有 GPU 时,small 模型在 CPU 上也要 6m58s。
  • 原版依赖系统级 FFmpeg,环境常卡在解码库上。

faster-whisper 把音频解码交给 PyAV(自带 FFmpeg 库),Python 3.9+ 即可,不需要系统装 FFmpeg。

提速靠什么:CTranslate2 引擎 + 8位量化

快在推理引擎换成了 CTranslate2,省在 8 位量化。同精度 fp16 下比原版快约 2 倍(2m23s → 1m03s);int8 量化到 59s、2926MB;再开 batch_size=8 只要 16s。官方称相同准确率下最快可达原版 4 倍。

模型尺寸与硬件怎么选

场景模型device / compute_type
要准确率、显存够large-v3cuda / float16
显存紧张large-v3cuda / int8_float16
无 GPUsmallcpu / int8
长英文音频求快turbocuda / float16

测试机为 8GB 显存的 RTX 3070 Ti;小显存优先 int8。CPU 用 int8 时,13 分钟 small 音频 1m42s、占 1477MB。

安装到出第一条结果

先装包,GPU 环境再加 NVIDIA 库:

pip install faster-whisper pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*

下面是最短可运行代码,逐段打印时间戳与文本:

from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("audio.mp3", beam_size=5) print(info.language, info.language_probability) for seg in segments: print("[%.2f -> %.2f] %s" % (seg.start, seg.end, seg.text))

注意 segments 是生成器,真正开始转录是在你遍历它的那一刻。

实战:字幕时间戳与长音频批处理

词级时间戳:加word_timestamps=True,每个 segment 内的words可拿到每词起止时间,直接拼字幕。

长音频/批量:用BatchedInferencePipeline替换 transcribe,int8 + batch_size=8 时 13 分钟 large-v2 从 1m03s 降到 16s;批量推理默认开启 VAD。

VAD 过滤:vad_filter=True用 Silero VAD 去掉无语音段,默认只删超 2s 的静音,可用vad_parametersmin_silence_duration_ms

避坑与常见问题

Q1 GPU 报缺 cuBLAS/cuDNN?装 CUDA 12 的 cuBLAS 与 cuDNN 9;Linux 用 pip 装后需设置LD_LIBRARY_PATH,旧 CUDA 11 要降级 ctranslate2 到 3.24.0。

Q2 代码不报错却没输出?segments 是生成器,必须用forlist(segments)遍历才会执行。

Q3 和原版比速度不公平?确认双方 beam_size 一致(默认 5)、词错率接近;CPU 对比要设相同OMP_NUM_THREADS

Q4 想用微调模型?先用 ct2-transformers-converter 转成 CTranslate2 格式再加载。

Q5 VAD 误删内容?默认只删超 2s 静音,调小min_silence_duration_ms会更严格。

一句话收尾

适合要落地本地服务、批量产字幕或显存有限的环境;要实时流式可关注基于它的 streaming 方案。更多参数见 WhisperModel 源码 与 VAD 参数。

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

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

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

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

立即咨询