faster-whisper 完整指南:13 分钟音频的转录时间压到 17 秒

发布时间:2026/9/5 18:55:55
faster-whisper 完整指南:13 分钟音频的转录时间压到 17 秒 faster-whisper 完整指南13 分钟音频的转录时间压到 17 秒【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 是一个基于 CTranslate2 推理引擎重写 OpenAI Whisper 语音识别模型的 Python 库解决的是本地部署 Whisper 时跑得慢、占内存的问题。官方 README 给出了同一份 13 分钟音频的实测RTX 3070 Ti 上faster-whisper 开启批量推理 17 秒完成而 openai/whisper 需要 2 分 23 秒换成 INT8 量化后显存从 4.7GB 降到 2.9GB转录准确度基本不变。下面按本地安装、量化选型、批量推理、高级参数、模型转换的顺序把这套库能用到的东西讲一遍。本地怎么安装并跑起 faster-whisper安装就一行pip install faster-whisper环境要求 Python 3.9 以上。有个容易忽略的细节它不需要系统装 FFmpeg音频解码由 PyAV 库完成该包自带 FFmpeg 功能干净机器上装完即可运行。如果你要跟最新代码也可以克隆源码安装git clone https://gitcode.com/GitHub_Trending/fa/faster-whisper cd faster-whisper pip install -r requirements.txt pip install .核心依赖只有 ctranslate2、onnxruntime、av 这几个见 requirements.txt。GPU 部署另需要安装 cuBLAS 和 cuDNN 9CUDA 12 版本最新 ctranslate2 只支持 CUDA 12用 CUDA 11 的机器要降级 ctranslate2 到 3.24.0这是环境报错最常见的来源之一。第一次转录加载模型并输出分段结果最小可运行示例GPU FP16from faster_whisper import WhisperModel model WhisperModel(large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe(audio.mp3, beam_size5) print(语言: %s, 概率: %.2f % (info.language, info.language_probability)) for segment in segments: print([%.2fs - %.2fs] %s % (segment.start, segment.end, segment.text))两个关键点model_size支持 tiny 到 large-v3 的全系列外加 distil 系列和turbo即 large-v3-turbo完整清单在 faster_whisper/utils.py 的_MODELS里。首次加载会自动下载对应的 CTranslate2 权重并缓存。segments是生成器不遍历它for 循环或list(segments)转录就根本没开始。想拿结果前把这段代码跑通能少踩一个坑。compute_type 怎么选CPU 和 GPU 的三种量化配置compute_type决定权重精度与计算速度常见组合是GPU 上用float16精度优先或int8_float16混合量化更省显存CPU 上用int8。INT8 指把 32 位浮点权重压成 8 位整数体积和访存开销都大幅下降。同一台机器large-v2 模型、RTX 3070 Ti、13 分钟音频、beam_size5的实测对比实现耗时显存openai/whisperfp162m23s4708MBfaster-whisperfp161m03s4525MBfaster-whisperfp16batch_size817s6090MBfaster-whisperint859s2926MBfaster-whisperint8batch_size816s4500MB数据能读出两层光换推理引擎就省约 50% 的时间INT8 量化再把显存砍掉近一半。distil-large-v3 上差距更大batch_size16 时 25m50s对照 transformers 的 46m12s且 WER词错误率越低越好反而更低13.527 对 14.801。CPU 51 秒跑完批量推理怎么开没有 GPU 也能跑CPU 侧数据small 模型、i7-12700K、8 线程实现耗时内存openai/whisperfp326m58s2335MBfaster-whisperfp322m37s2257MBfaster-whisperint81m42s1477MBfaster-whisperint8batch_size851s3608MB批量转录用BatchedInferencePipeline包住模型接口与transcribe一致属于直接替换from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) batched BatchedInferencePipeline(modelmodel) segments, info batched.transcribe(audio.mp3, batch_size16)batch_size的代价是内存17s 对比 59s 的 3 倍多提速换约 1.6GB 额外显存。CPU 机器内存有限时建议先跑int8单条模式再考虑批量。另外chunk_length控制单次切块的长度cpu_threads默认 4 线程多核机器可以调大完整参数见 faster_whisper/transcribe.py。进阶参数VAD 过滤、词级时间戳、热词VAD 过滤内置 Silero VAD语音活动检测模型transcribe默认开启默认只裁掉超过 2 秒的静音min_silence_duration_ms2000。会议录音这类长音频可传vad_parametersdict(min_silence_duration_ms500)调得更激进少跑无效片段。全部参数见 faster_whisper/vad.py。词级时间戳word_timestampsTrue后每个 Segment 带words列表每个词有起止时间和置信度做字幕对齐、关键词高亮可以直接用。提示词与热词initial_prompt给模型一段上下文提示改善领域术语识别hotwords参数则直接指定要优先输出的词汇专名、产品名这类高频错词用它兜底。跑 distil-large-v3 时官方建议languageen, condition_on_previous_textFalse前者跳过语言检测省时间后者避免上一段文本干扰下一段解码。微调模型怎么转换、怎么加载本地 CTranslate2 目录直接传给构造器即可例如WhisperModel(whisper-large-v3-ct2)。自带转换工具ct2-transformers-converter支持任意 Transformers 兼容模型包括自己微调的命令形式ct2-transformers-converter --model openai/whisper-large-v3 --output_dir whisper-large-v3-ct2 --quantization float16转换依赖在 requirements.conversion.txt 里转换后的权重同样可用int8加载。常见问题CUDA/cuDNN 版本报错最新 ctranslate2 只支持 CUDA 12 cuDNN 9CUDA 11 请降级 ctranslate2 3.24.0CUDA 12 cuDNN 8 降到 4.4.0。代码跑完没输出segments是生成器必须遍历才触发计算。横向对比不公平openai/whisper 的transcribe默认 beam_size1faster-whisper 默认 5转录速度受输出文本长度影响很大对比时要对齐 beam size、WER 和 CPU 线程数OMP_NUM_THREADS。想看调试日志logging.getLogger(faster_whisper).setLevel(logging.DEBUG)。想验证自己机器的性能仓库带了 Docker 示例docker/infer.pytiny 模型 测试音频和完整基准脚本benchmark/照抄即可测出自己的数据。装完先在你的机器上跑一遍int8单条配置把 13 分钟样本的耗时和内存记下来作为基线再决定要不要上批量推理和词级时间戳——batch_size这类参数只有拿到自己环境的数据后调才有意义。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考