15 分钟上手 faster-whisper:4 倍速语音转文字完整指南
2026/9/5 23:30:37 网站建设 项目流程

15 分钟上手 faster-whisper:4 倍速语音转文字完整指南

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

如果你要把会议录音、课程音频批量转成带时间戳的文字,faster-whisper 值得看一眼:它用 CTranslate2 引擎重写了 OpenAI Whisper,在相同准确率下速度最高快 4 倍,还支持 99 种语言自动识别。

它凭什么值得你花几分钟

  • 速度快,且快得有数据:官方基准里,GPU 上 13 分钟音频用 large-v2 模型,faster-whisper 跑 1 分 03 秒,openai/whisper 要 2 分 23 秒;再开batch_size=8批处理只要 17 秒。CPU 上 int8 量化后,small 模型 13 分钟音频 51 秒跑完。
  • 省内存:同样 GPU 场景,int8 量化把显存占用从 4525MB 压到 2926MB,小显存卡也能跑大模型。
  • 免装 FFmpeg:和 openai/whisper 不同,它用 PyAV 解码音频,FFmpeg 的库直接打包在 pip 依赖里,装好就能读 mp3、m4a、wav 等各种格式。

装好它:一条命令跑通

环境要求:

  • Python 3.9 或更高
  • 纯 CPU 即可运行;有 NVIDIA GPU 则需 CUDA 12 + cuBLAS + cuDNN 9
  • 不需要单独安装 FFmpeg

安装只需一条命令:

# 一条命令安装 faster-whisper,会自动带上 CTranslate2、PyAV 等依赖 pip install faster-whisper

首次按模型名(如"large-v3")加载时会自动从 Hugging Face 下载对应的 CTranslate2 模型,之后就有本地缓存了。

挑对参数:使用场景 → 推荐配置

使用场景模型 (model_size)设备 (device)精度 (compute_type)其他建议
快速出稿、实时性优先tiny / smallcpuint8准确率换速度,适合草稿
日常通用转录small / mediumcudafloat16平衡之选
最高精度、长音频large-v3cudafloat16显存吃紧时换 int8_float16
小显存 GPU(≤8GB)large-v3cudaint8_float16显存约为 fp16 的 2/3
追求更快的高精度turbo(即 large-v3-turbo)cudafloat16专为该库优化,见下文批处理
批量处理多个长音频turbocudafloat16用 BatchedInferencePipeline + batch_size

另外两个高频开关,比换模型见效更快:

  • vad_filter=True:启用内置的 Silero VAD,自动裁掉超过 2 秒的静音段,长音频转录明显提速,还能减少静默处的幻觉文字。
  • word_timestamps=True:输出词级时间戳,做字幕、高亮定位时要用。

最常用的调用方式长这样:

from faster_whisper import WhisperModel # 在 GPU 上用 FP16 加载 large-v3 模型 model = WhisperModel("large-v3", device="cuda", compute_type="float16") # 转录音频,开启 VAD 静音过滤,返回带时间戳的分段结果 segments, info = model.transcribe("meeting.mp3", beam_size=5, vad_filter=True) print(f"检测到的语言:{info.language}(概率 {info.language_probability:.2f})") for seg in segments: # 注意:segments 是生成器,必须遍历才会真正开始转录 print(f"[{seg.start:.2f}s -> {seg.end:.2f}s] {seg.text}")

注意segments是生成器,不调用forlist()它不会开始干活,这是新手最容易卡住的一点。

把它用进你的工作流

周一上午,一场 1 小时的产品评审会。会后录音直接丢给脚本,用 small 模型加vad_filter=True,几分钟后拿到带时间戳的逐段文字,语言自动检测成中文,把时间戳去掉标点整理一下就是会议纪要的底稿。

周三下午,处理一整个学期的课程录音。十几门课、每门几小时,单条跑太慢。用BatchedInferencePipeline包一层WhisperModel,设batch_size=16,GPU 上吞吐量能拉开一个量级,跑完把结果写成 SRT 或 LRC 字幕文件,直接挂到视频上。

周五晚上,给播客加双语字幕。开启word_timestamps=True,拿到每个词的起止时间,按词做卡拉 OK 式逐词高亮字幕;遇到专业术语识别不准,就在initial_prompt里塞一段含这些词的文本来引导。

踩坑先读我

现象原因解法
GPU 上加载报 cuBLAS/cuDNN 相关错误最新版 ctranslate2 只支持 CUDA 12 + cuDNN 9老环境降级:CUDA 11 装ctranslate2==3.24.0,CUDA 12 + cuDNN 8 装ctranslate2==4.4.0
显存不足 / OOMFP16 大模型显存占用高int8_float16或 CPU 的int8,或换 small/medium 模型
转录速度上不去(CPU 或低配卡)单条逐段推理利用率低长音频用BatchedInferencePipeline+batch_size;CPU 上可设OMP_NUM_THREADS控制线程数
静默段出现重复、无意义的幻觉文字模型在没声音处"硬编"内容开启vad_filter=True,必要时调vad_parameters里的min_silence_duration_ms
调用 transcribe 后像没反应返回的 segments 是生成器遍历或list(segments)才会真正执行转录
想对比速度但结果不一致各家默认 beam_size 不同(这里默认是 5)对比时固定 beam_size、线程数、WER 相近的配置再比时间

再往前一步

参数不够用时,直接看WhisperModel.transcribe的完整签名,hotwordstemperaturecondition_on_previous_text等选项都在里面,faster_whisper/transcribe.py 是最全的参考。调静音过滤行为可以看 faster_whisper/vad.py;想确认支持哪些语言代码,faster_whisper/tokenizer.py 里的语言表是最准的。此外仓库还自带 benchmark/ 下的 WER 与速度基准脚本,以及把自有 Whisper 权重(包括微调过的)转成 CTranslate2 格式的转换入口,做领域定制模型时会用到。

收尾

现在就装好它,拿一段手头最烦的录音试跑一次,比读十篇评测都有数。源码入口在 faster_whisper/,测试用例参考 tests/,更多细节以官方文档为准。

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

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

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

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

立即咨询