快速搞定语音转录:faster-whisper提速4倍,内存省一半
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
昨晚我在处理一份2小时的客服录音。原版Whisper在GPU上跑了20多分钟,显存还占着4.7GB。排队100个文件,到早上也跑不完。换faster-whisper做语音转录,同样的模型、同样的精度,速度快了4倍,内存降了40%以上。它是基于CTranslate2的推理引擎重写的实现,对低资源语音处理场景来说,基本是原地替换、直接受益。
效果对比:faster-whisper比原版快多少
先说结论:同样的模型、同样的精度,faster-whisper大约快4倍,内存/显存减半。下面是项目官方基准数据,测试音频13分钟:
| 环境 | 实现 | 处理时间 | 内存/显存 | 加速倍数 |
|---|---|---|---|---|
| GPU | 原版Whisper(FP16) | 2分23秒 | 4708MB | 1x |
| GPU | faster-whisper(INT8) | 59秒 | 2926MB | 2.4x |
| CPU | 原版Whisper(FP32) | 6分58秒 | 2335MB | 1x |
| CPU | faster-whisper(INT8) | 1分42秒 | 1477MB | 4.1x |
测试环境是RTX 3070 Ti显卡和i7-12700K处理器,脚本在 benchmark/speed_benchmark.py。说白了:原来7分钟转完的13分钟音频,现在1分42秒搞定,内存也从2.3GB降到1.5GB。对一款语音转文字工具来说,这个加速幅度非常少见了。
为什么能快4倍
这轮Whisper加速主要靠三点,知道个大概就行:
- 8位量化:把模型权重从32位浮点存成8位整数。权重装得更紧凑,内存占用和带宽压力降到四分之一,GPU和CPU都受益,精度损失可忽略。
- CTranslate2计算图优化:原版实现像快递每单单独跑一趟,CTranslate2(Transformer推理引擎)先把整条路线规划好,算子合并、减少内存拷贝。同样硬件,最高4倍加速。
- VAD过滤:转录前先用Silero VAD(语音活动检测模型)挑出有人声的片段。静音不占算力,音频里静音越多,省得越多。
换个角度看流程:传统做法是30秒音频块逐块喂给模型全量计算;faster-whisper先挑出语音片段再批量解码。同一份13分钟的音频,后者只算真正有人声的部分。
三个典型落地场景
📌 视频字幕批量生成 ✅ GPU批量推理下13分钟音频17秒出结果,一晚上能跑完一天的课程;word_timestamps=True给到词级时间戳,字幕和音轨精确对齐 ⚠️ 噪音大的音频准确率会明显下降;超过1小时的长视频建议先切段
📌 客服通话质检 ✅ INT8模型内存不足1.5GB,便宜的服务器就能部署,7x24转写通话录音 ✅ 从文本里自动提取关键词,标记高危对话,替代人工抽检 ⚠️ 方言和重口音仍有错漏,关键结论需要人工复核
📌 移动端离线语音转文字 ✅ 量化模型体积小,本地转录,语音数据不出设备,医疗、法务这类隐私场景合适 ✅ 离线可用,不依赖网络 ⚠️ 设备建议至少8GB内存,低端机跑大模型会很吃力
5分钟跑通:faster-whisper安装
要求Python 3.9+。GPU需要装好cuBLAS和cuDNN 9(CUDA 12);CPU装完就能用。不需要单独装FFmpeg,音频解码由PyAV自带。
pip install faster-whisperfrom faster_whisper import WhisperModel # GPU选float16最快;CPU选int8最快 model = WhisperModel("large-v3", device="cuda", compute_type="float16") # model = WhisperModel("large-v3", device="cpu", compute_type="int8") segments, info = model.transcribe("audio.mp3", beam_size=5, vad_filter=True) print(info.language, round(info.language_probability, 2)) for s in segments: print(f"[{s.start:.2f}s -> {s.end:.2f}s] {s.text}")有个坑:segments是生成器,你不开始遍历,转录就不会真正执行。
faster-whisper量化配置与调优清单
四个调优方向,按需逐个试:
- 模型选择:吞吐优先用small/medium;精度优先用large-v3或distil-large-v3。
- 量化配置:GPU用int8_float16,CPU用int8;显存富余就把batch开大。
- 批量推理:换用BatchedInferencePipeline并设batch_size=8,GPU跑13分钟音频只要17秒。
- 长音频:常开vad_filter;超过30分钟按时间切段,转完再偏移时间戳。
参数细节都在 faster_whisper/transcribe.py 里,照着填就行。
适合谁用:30秒自检
☐ 需要每天转录几小时以上的音频 ☐ 硬件有限,内存小于8GB ☐ 不想调云API,要自己控制成本和延迟 ☐ 需要词级时间戳(做字幕、质检) ☐ 音频是多语言混合 ☐ 想部署到边缘设备或离线环境
满足3条以上,直接用。一条都不满足,比如只转几条文件、硬件还很富裕,那原版Whisper或云API就够了。
如果你的场景是批量语音转录,今晚就可以把上面那5行代码跑起来。
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考