faster-whisper 语音转文字实战:4 倍速推理与低内存占用的上手指南
2026/9/5 21:36:24 网站建设 项目流程

faster-whisper 语音转文字实战:4 倍速推理与低内存占用的上手指南

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

转写同一段 13 分钟的音频,openai/whisper 在 GPU 上要 4 分 30 秒,faster-whisper 只要 54 秒,精度不变,显存还少了一半多。faster-whisper 是用 CTranslate2 推理引擎重写的 Whisper 语音转文字库,面向需要批量处理音频、生成字幕、或者想在普通硬件上跑大模型的 Python 开发者。

先跑起来:装好 faster-whisper 并转出第一段文字

第 1 步:确认你的环境

  • Python 3.8 或更高版本
  • 不用手动安装 FFmpeg。音频解码由 PyAV 库完成,FFmpeg 已经打包在 PyAV 里
  • GPU 可选。启用 GPU 需要先装 NVIDIA 的 cuBLAS(CUDA 12 版)和 cuDNN 8
  • 注意:最新版 ctranslate2 只支持 CUDA 12。你的机器是 CUDA 11 的话,先执行降级:
pip install --force-reinstall ctranslate2==3.24.0

第 2 步:安装

pip install faster-whisper

第 3 步:最小可运行代码

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

没有 GPU?把构造参数换成这一行即可:

model = WhisperModel("large-v3", device="cpu", compute_type="int8")

💡 一个提醒:segments是生成器,调用transcribe后并不会马上开始转写,真正迭代它时才启动。想立刻跑完全部转写,先执行segments = list(segments)

凭什么更快:CTranslate2 与 int8 量化

推理引擎换成了 CTranslate2

Whisper 原本靠 PyTorch 运行,而 PyTorch 是为训练设计的大而全框架,纯推理时会拖着一堆用不上的开销。CTranslate2 是专门做 Transformer 推理的引擎:权重按更紧凑的格式存储,计算图提前编译,对 CUDA 内核和 CPU 向量化指令的利用率更高。打个比方:原版像是把模型按"训练用"的散装形态搬上 GPU,CTranslate2 则给模型压缩打包、重新码好仓再发货。

int8 量化再砍掉一半内存

量化是把权重从 16 位浮点数压成 8 位整数,类似图片压缩:体积减半,画质略损,但对语音识别这种任务精度几乎不掉。GPU 上推荐int8_float16(权重 int8、关键计算回 fp16),CPU 上直接用int8

基准数据

官方基准:转写 13 分钟音频,波束大小 5。

环境实现精度耗时显存/内存
GPU(Tesla V100S,CUDA 11.7.1),large-v2openai/whisperfp164分30秒11325 MB
同上faster-whisperfp1654秒4755 MB
同上faster-whisperint859秒3091 MB
CPU(Xeon Gold 6226R,8 线程),smallopenai/whisperfp3210分31秒3101 MB
同上faster-whisperfp322分44秒1675 MB
同上faster-whisperint82分04秒995 MB

综合看:GPU 上快约 5 倍,CPU 上快约 4 倍,内存占用下降 60% 以上。参照项 whisper.cpp 在 CPU fp32 下要 17 分 42 秒、占 1581 MB。

进阶玩法:按需求选参数

需要逐字时间戳(逐字字幕)?

遇到每个词都要精确起止时间的字幕需求 → 打开word_timestamps

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 过滤:

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

VAD(语音活动检测)由内置的 Silero VAD 模型完成,先找出有人说话的时间段,再只把说话段送进识别模型。默认行为比较保守,只去掉超过 2 秒的静音;其余可调参数见 faster_whisper/vad.py。

显存不够用,或还想再快点?

遇到 GPU 显存吃紧 →compute_type换成int8_float16;遇到追求速度 → 把beam_size调小(默认 5,最小 1;它是波束搜索的候选路径数,越小越快、精度略降);temperature在 0–1 之间调整输出的确定性。另外,用批处理接口(batch_size参数,参见BatchedInferencePipeline)对同一条音频并行推理,能进一步提高 GPU 利用率。

模型尺寸怎么选?

  • tiny / base:最快,适合实时场景
  • small:速度与精度均衡,大多数场景够用
  • medium:精度更高
  • large-v3:精度最高,多语言支持最全
  • distil-large-v3:蒸馏版,精度接近 large-v3,速度更快

想用自己微调的模型?

遇到基于 Transformers 库微调的 Whisper 模型 → 先转成 CTranslate2 格式:

pip install transformers[torch]>=4.23 ct2-transformers-converter --model openai/whisper-large-v3 --output_dir whisper-large-v3-ct2 \ --copy_files tokenizer.json preprocessor_config.json --quantization float16

之后直接按本地目录加载:

model = faster_whisper.WhisperModel("whisper-large-v3-ct2")

--model既接受模型名,也接受本地模型目录路径,所以把它换成你的微调模型目录即可。

工程与生态:核心模块与社区集成

核心模块各一句话:

  • faster_whisper/transcribe.py:WhisperModel所在的主转录逻辑,含语言检测、波束搜索、词级对齐
  • faster_whisper/audio.py:音频文件解码,重采样到 16kHz 波形
  • faster_whisper/feature_extractor.py:波形转 80 维梅尔频谱特征
  • faster_whisper/tokenizer.py:分词与转写/翻译特殊 token 的处理
  • faster_whisper/vad.py:Silero VAD 的封装与参数定义

社区集成项目(不列链接,按名字检索即可):

  • faster-whisper-server:OpenAI 兼容的 API 服务器,支持流式转写
  • WhisperX:提供说话人分离和更精确的词级时间戳
  • whisper-ctranslate2:命令行客户端,参数与原版 Whisper CLI 兼容
  • WhisperLive:近实时的流式转写实现

faster-whisper 用推理引擎替换加量化的组合,把 Whisper 的时间和内存开销压到原来的几分之一,是当前 Python 音频转文字链路里最省事的 GPU 语音识别加速方案。想继续读源码,直接执行:git clone https://gitcode.com/GitHub_Trending/fa/faster-whisper

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

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

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

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

立即咨询