
15分钟跑通多语种语音转文字faster-whisper 实战指南【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper为什么选 faster-whisper4倍速的语音识别方案用 openai/whisper 在 CPU 上转录 13 分钟音频要 6 分 58 秒GPU 上 large-v2 模型 fp16 精度也要 2 分 23 秒、占约 4.7GB 显存——批量处理几十小时的会议录音时这个代价很难接受。faster-whisper 是基于 CTranslate2 推理引擎的 OpenAI Whisper 重实现做语音转文字speech-to-text同一模型精度下最高 4 倍于原版的速度内存占用更低CPU 和 GPU 均可开 INT8 量化进一步压缩。一句话定位如果你的场景是录音类音频会议、课程、客服通话的批量转录而不是实时对话值得直接换用它。快速上手安装与第一段可运行代码安装一行命令无需系统安装 FFmpeg音频解码由 PyAV 内置的 FFmpeg 库完成pip install faster-whisper # 国内镜像备选 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple faster-whisper仓库自带测试音频clone 下来即可验证git clone https://gitcode.com/GitHub_Trending/fa/faster-whisper cd faster-whisper ls tests/data # jfk.flac、multilingual.mp3 等样本最小示例CPU INT8GPU 把 device 改为 cuda、compute_type 改为 float16 即可from faster_whisper import WhisperModel # small 模型 INT8 量化CPU 即可运行 model WhisperModel(small, devicecpu, compute_typeint8) segments, info model.transcribe(tests/data/jfk.flac, beam_size5) print(f检测到语言: {info.language} (置信度 {info.language_probability:.2f})) for seg in segments: print(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text})跑成功的样子先打印检测到语言: en (置信度 0.99...)随后按 30 秒窗口逐段输出带起止时间戳的 JFK 演讲文本。核心功能拆解量化与批量推理BatchedInferencePipelineCTranslate2 支持int8CPU和int8_float16GPU量化BatchedInferencePipeline把音频切成 30 秒片段后并行解码是 GPU 提速的主要来源。from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(large-v2, devicecuda, compute_typefloat16) batched BatchedInferencePipeline(model) # transcribe 是 WhisperModel.transcribe 的替代品 segments, info batched.transcribe(audio.mp3, batch_size8)关键参数batch_size并行解码的片段数直接决定 GPU 利用率和显存占用8~16 是常见区间。VAD 静音过滤内置 Silero VAD 先标出有人声的区间静音部分直接跳过不喂给模型长音频省时明显。segments, _ model.transcribe( audio.mp3, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), # 0.5s 以上静音作为切分点 )注意批量推理流水线里vad_filter默认开启而WhisperModel.transcribe需要手动打开。词级时间戳word_timestampsTrue输出每个单词的起止时间是做字幕对齐、关键词检索的前置能力。segments, _ model.transcribe(audio.mp3, word_timestampsTrue) for seg in segments: for word in seg.words: # word 带 start / end / probability print(f{word.start:.2f}-{word.end:.2f} {word.word})参数调优策略参数推荐值作用适用场景compute_typeCPU 用 int8 / GPU 用 int8_float16量化加速、省显存生产环境默认beam_size5默认搜索宽度越大越准越慢通用转录languageNone 自动 / 明确指定 zh、en自动检测只看前 30 秒单语音频建议显式指定vad_filterTrue跳过非语音片段长音频、静音多word_timestampsTrue词级时间戳字幕生成batch_size8~16批量流水线的并行片段数GPU 批量处理最常用组合CPU 上small int8 vad_filterTrueGPU 上int8_float16 批量流水线batch_size8。真实场景案例会议录音批量转文字场景一批 20~60 分钟的会议录音要求在单张消费级 GPU 上当天转完并落盘成带时间戳的文本。from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(large-v2, devicecuda, compute_typefloat16) batched BatchedInferencePipeline(model) segments, info batched.transcribe(meeting.mp3, beam_size5) lines [f[{s.start:7.2f} - {s.end:7.2f}] {s.text} for s in segments] open(meeting.txt, w).write(\n.join(lines)) # info.duration_after_vad 可用来核对 VAD 过滤比例 print(f原始 {info.duration:.0f}sVAD 后 {info.duration_after_vad:.0f}s)预期输出meeting.txt 节选[ 0.42 - 4.10] 好我们开始今天的版本评审。 [ 4.35 - 8.92] 第一部分是排期风险后端接口比计划晚两天。性能参考README 官方基准13 分钟音频实现耗时资源占用openai/whisperGPU fp16large-v22m23s4708MB 显存faster-whisperGPU int8 batch_size8large-v216s4500MB 显存faster-whisperCPU int8 batch_size8small51s3608MB 内存生产环境建议容器化部署仓库自带docker/Dockerfile基于 NVIDIA 官方 CUDA 镜像cuBLAS 和 cuDNN 已配好避免本地环境版本错位docker build -t faster-whisper -f docker/Dockerfile . docker run --gpus all faster-whisper # 运行 docker/infer.py 示例批量与多卡处理批量任务统一走BatchedInferencePipelinebatch_size从 8 起步按显存上调。多张 GPU 时WhisperModel(..., device_index[0, 1])配合多线程调用transcribe并把num_workers设为大于 1才能真正并行。模型选择纯英语场景选.en系列模型更小更快兼顾精度与速度选large-v3-turbo无 GPU 时用small或medium int8。量化策略记住一条CPU 用int8GPU 用int8_float16。常见坑与注意事项调用 transcribe 后没有任何输出segments是生成器不迭代就不推理也不会报错。解法segments list(segments)或放进 for 循环消费。GPU 环境报 cuBLAS / cuDNN 加载失败最新 ctranslate2 只支持 CUDA 12 cuDNN 9环境是 CUDA 11 就会报这个错。解法升级 CUDA 12或临时降级pip install --force-reinstall ctranslate24.4.0。长音频出现整句重复幻觉静音片段被模型脑补成重复文本常见于vad_filter未开启。解法vad_filterTrue仍重复时显式指定language或关闭condition_on_previous_textFalse打断失败循环。写在最后faster-whisper 适合需要批量转录录音、且要同时控制速度、显存与精度的开发场景核心优势是精度对齐原版 Whisper、最高 4 倍速INT8 量化进一步压内存批量流水线再叠一层并行加速。下一步先装依赖用仓库里的tests/data/jfk.flac跑通上面第一节的最小示例确认环境没问题后再上你自己的音频。pip install faster-whisper【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考