faster-whisper 语音识别教程:如何在 1 分钟内转写 13 分钟音频
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
faster-whisper 把长音频转成文字,比原版 Whisper 更快、更省内存。它是基于 CTranslate2 重写的语音识别引擎,最高可达原版 4 倍速度。如果你还在跑原版 Whisper 做批量转写,这篇教程适合你。
用原版 Whisper 转写时,你会撞上这 3 个问题
跑原版 large-v2 模型,13 分钟音频要 2 分 23 秒,显存占用 4708MB;CPU 上 small 模型更慢,要 6 分 58 秒。原版还要求系统单独安装 FFmpeg,容器环境经常卡在依赖上。faster-whisper 换用 CTranslate2 推理引擎,并内置 PyAV 解码音频,不需要在系统装 FFmpeg。
⚡ 3 分钟安装并完成第一次转录
要求 Python 3.9+,一条命令安装:
pip install faster-whisper按模型名加载时,对应的 CTranslate2 权重会自动从 Hugging Face Hub 下载。最小可运行示例:
from faster_whisper import WhisperModel model = WhisperModel("large-v3", device="cuda", compute_type="float16") segments, info = model.transcribe("audio.mp3", beam_size=5) for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")注意:segments是生成器,进入循环后转写才真正开始。
3 个值得深挖的核心能力
VAD 语音活动检测:先跳过静音再转写
传vad_filter=True,转写前用内置 Silero VAD 切掉静音段。默认策略保守,只移除超过 2 秒的静音;想切得更碎,可用vad_parameters把min_silence_duration_ms调低到 500。参数定义见 faster_whisper/vad.py。批量转写默认开启 VAD。
词级时间戳:精确到每个单词
word_timestamps=True会把每个片段拆成单词,每个单词带起止时间,适合做字幕对齐、关键词定位。
批量推理:GPU 吞吐明显提升
BatchedInferencePipeline可直接替换WhisperModel.transcribe。以 distil-large-v3 在 GPU 上batch_size=16为例,耗时从 46 分 12 秒降到 25 分 50 秒(transformers 实现跑同一任务),WER 为 13.527 对 14.801。更多参数可在 faster_whisper/transcribe.py 中查阅。
📊 基准对比:耗时与内存差多少
GPU 端(large-v2,RTX 3070 Ti 8GB,CUDA 12.4),均为 13 分钟音频:
| 实现 | 精度 | 耗时 | 显存 |
|---|---|---|---|
| openai/whisper | fp16 | 2m23s | 4708MB |
| faster-whisper | fp16 | 1m03s | 4525MB |
| faster-whisper | int8 | 59s | 2926MB |
| faster-whisper(batch_size=8) | int8 | 16s | 4500MB |
CPU 端(small 模型,i7-12700K,8 线程):原版 6 分 58 秒,faster-whisper fp32 为 2 分 37 秒,int8 为 1 分 42 秒,内存从 2335MB 降到 1477MB。
🔧 5 条部署建议:compute 类型、CUDA 版本与批大小
- GPU 场景:优先
compute_type="float16";显存吃紧时换"int8_float16"。 - 仅用 CPU:建议
compute_type="int8",small 模型下耗时减半,内存省 780MB(1477MB 对 2257MB)。 - CUDA 版本不匹配:最新版 ctranslate2 只支持 CUDA 12 + cuDNN 9;CUDA 11 用户降级到 ctranslate2==3.24.0。仓库提供基于 nvidia/cuda 镜像的部署参考,见 docker/Dockerfile。
- 长音频批处理:批量会推高内存(int8 从 2926MB 升到 4500MB),按空闲显存定 batch_size。
- 做横向对比:确保 beam size 一致,faster-whisper 默认 beam_size=5,原版默认是 1,否则数据不可比。
3 个常见落地场景
- 会议录音转写:VAD 自动跳过静音段,算力不浪费在无声音上
- 视频字幕生成:词级时间戳让字幕对齐精确到单词
- 多语言语料本地化:自动检测语言并返回置信度
单条音频还是批量任务,faster-whisper 都用更少的时间和内存给出同样的文字结果,把现有转写流水线里的引擎换掉即可。
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考