faster-whisper 语音转文字实战指南:CTranslate2 提速 4 倍,3 步跑通
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
会议录音、播客、课程视频里沉淀了大量信息,但转成文字这一步常常被卡住:原始 Whisper 模型精度不错,速度却让人犹豫,一段 13 分钟的音频要跑两分多钟。faster-whisper 语音转文字用 CTranslate2 推理引擎重写了这部分,同样条件下 13 分钟音频约 1 分钟出头就能出结果。本文从安装到跑通示例,把关键配置和常见坑一次讲清。
项目定位:它是什么
faster-whisper 是基于 CTranslate2 对 OpenAI Whisper 的重实现,模型以 int8 或 float16 量化后在 CPU/GPU 上推理。官方基准显示,相同精度下推理速度可达 openai/whisper 的 4 倍,内存占用更低,且解码音频由内置的 PyAV 库完成,不需要系统单独安装 FFmpeg。适合需要批量处理音频、在自有机器上跑转录、不依赖在线 API 的开发者。
⚡ 快速上手:三步装好并验证
- 准备 Python 3.9 及以上环境。
- 安装依赖,一条命令即可:
pip install faster-whisper- 写最小示例,指定模型名和运行设备:
from faster_whisper import WhisperModel model = WhisperModel("base", device="cpu", compute_type="int8") segments, info = model.transcribe("audio.mp3") print(info.language, info.language_probability) for segment in segments: print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")跑通的判断标准:控制台先打印出检测到的语言及概率,随后逐行输出带起止时间的文本。首次运行会自动下载模型权重并缓存到本地,之后的启动不再重复下载。另外注意segments是生成器,只有进入for循环遍历后转录才真正开始。
🔍 核心能力拆解
转录与翻译二合一。transcribe的task参数默认是转录,改成translate后直接把语音转成英文文本,外文采访、外语课程一步到位。
段级与词级时间戳。每段结果自带起止时间;传入word_timestamps=True后还能拿到每个词的时间位置。它解决的是字幕生成、视频定位到具体一句话的问题。
VAD 静音过滤。内置 Silero VAD,vad_filter=True可先筛掉无人声的片段再交给模型,默认只移除超过 2 秒的静音。长音频里大段空白不再浪费算力,还可用vad_parameters调整阈值。
批量推理管线。BatchedInferencePipeline是WhisperModel.transcribe的直接替代,把音频切块并行推理。官方 GPU 基准中,large-v2 模型处理 13 分钟音频从 1 分 03 秒降到 17 秒(batch_size=8)。它解决的是批量任务的吞吐问题,代价是显存占用更高。
🔌 进阶与注意事项
GPU 怎么开。把模型改为device="cuda", compute_type="float16"即可。前提是装好 CUDA 12 的 cuBLAS 和 cuDNN 9,Linux 上可用pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*并设置LD_LIBRARY_PATH。
版本兼容是最大的坑。最新版 ctranslate2 只支持 CUDA 12 + cuDNN 9。若环境是 CUDA 11 / cuDNN 8,需降级ctranslate2==3.24.0;CUDA 12 / cuDNN 8 则降到4.4.0。装完跑不起来时,先查这里的对应关系。
对比测试要对齐参数。faster-whisper 默认 beam size 为 5,而 openai/whisper 默认是 1,直接比速度不公平。CPU 上还建议用OMP_NUM_THREADS固定线程数再测。
内存紧张时选 int8。compute_type="int8"在 CPU 上能明显降低内存,基准中 small 模型的内存从 2257MB 降到 1477MB,精度损失很小。
📦 相关资源
- 核心转录逻辑:faster_whisper/transcribe.py
- VAD 实现与默认参数:faster_whisper/vad.py
- 音频解码:faster_whisper/audio.py
- 基准测试脚本:benchmark/
- 贡献指南:CONTRIBUTING.md
- 许可证:LICENSE(MIT)
【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考