faster-whisper快速语音转录:提速4倍

发布时间:2026/9/5 23:00:52
faster-whisper快速语音转录:提速4倍 faster-whisper快速语音转录提速4倍【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper13分钟的会议录音在一张8GB的显卡上跑官方 openai/whisper 用了2分23秒faster-whisper 语音转录只要1分03秒再开 int8 量化是59秒显存从4.7GB降到2.9GB。它做的事并不神秘——把同一套 Whisper 模型权重搬到 CTranslate2 推理引擎上跑量化、批处理和 VAD 过滤都是围绕这个引擎加的。faster-whisper 到底做了什么它是一个 Python 库输入一个音频文件mp3、m4a、flac、wav 都行输出检测到的语言、每段文本及其起止时间戳还可以拿到词级时间戳和置信度。中间环节是PyAV 解码音频所以不用往系统里装 FFmpegSilero VAD 模型先圈出有人声的区间CTranslate2 负责跑编码器-解码器推理。一句话就是音频进带时间戳的文字出。完整的参数和返回结构在 faster_whisper/transcribe.py 里想抠细节可以直接读源码。批量会议录音走通一次转录说下具体场景手上有几段三四十分钟的会议录音要交给字幕系统要求每段带时间戳。model WhisperModel(large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe( meeting.mp3, beam_size5, vad_filterTrue, word_timestampsTrue ) for seg in list(segments): print(seg.start, seg.end, seg.text)这段代码跑起来后内部发生的事音频先解码成 16kHz 单声道VAD 把连续语音区间标出来默认只删超过2秒的静音模型按30秒窗口逐段解码。beam_size5表示解码时每步保留5个最可能的候选序列越大越准也越慢。VAD 在长会议音频上省掉的算力很可观——静音和停顿直接不进解码器。有个容易踩的坑segments是生成器。transcribe()返回时一帧音频都还没算真正开始转录是在你迭代它或list()它的那一刻。文件多的时候不必一个个串行仓库提供了批量接口from faster_whisper import BatchedInferencePipeline batched BatchedInferencePipeline(model) segments, info batched.transcribe(meeting.mp3, batch_size8)BatchedInferencePipeline把多个30秒窗口打进同一个 GPU 批次推理VAD 默认开启。同样是13分钟的音频在 RTX 3070 Ti 上从1分03秒降到17秒代价是显存从4525MB涨到6090MB。为什么快和省从 CTranslate2 到 int8提速主要来自三个决策每个都能在仓库 README.md 的基准数据里对上号。第一个是换推理引擎。权重和算法还是 Whisper 那套但推理跑在 CTranslate2 上这是一个针对 Transformer 模型做的推理运行时。同一环境RTX 3070 Ti 8GB、i7-12700K 开8线程下large-v2 模型转13分钟音频官方实现2分23秒这里是1分03秒CPU 上差距更明显官方6分58秒这里2分37秒。第二个是8位量化。把compute_type设成int8CPU或int8_float16GPU权重以 int8 存储、主要计算走低精度单元显存和内存下降最直接GPU 上同模型从4525MB降到2926MBCPU 上从2257MB降到1477MB时间也从1分03秒压到59秒。精度损失通常很小做字幕级别基本无感对准确率有极致要求的场景留在 fp16/fp32 更稳。第三个是批量加 VAD 的组合。批量接口前面提过能把 GPU 时间压到17秒VAD 则让要转的总量变小——录音里静音占比越高访谈、会议录音通常如此剪掉的窗口越多整体越快。VAD 的参数都在 faster_whisper/vad.py比如min_silence_duration_ms500可以把切分粒度从超过2秒的静音才断改成半秒。什么时候不该用 faster-whisper实时低延迟对话不要用。Whisper 本身是离线分块模型faster-whisper 没有改变这一点做流式字幕你得在外面再包一层流式策略仓库里列了几个把它当后端的社区项目可以参考但交互式场景不如直接选专门的流式 ASR 方案。最轻部署的环境不要用。它是 Python 库依赖 ctranslate2 运行时和 onnxruntime目标环境是纯 C 或没有 Python 的嵌入式设备时whisper.cpp 更合适。相比 whisper.cppfaster-whisper 在 CPU 单文件 fp32 场景略慢2分37秒对2分05秒但换来的是批量推理、词级时间戳、VAD 和更完整的参数面两者定位不完全重叠。老显卡环境要小心。最新版 ctranslate2 只支持 CUDA 12 和 cuDNN 9CUDA 11 的老机器要降级锁定旧版 ctranslate2比较折腾。GPU 部署建议直接用仓库 docker/Dockerfile它基于 NVIDIA 官方 CUDA 12.3 cuDNN 9 的镜像把依赖一次配齐。5分钟跑通第一次转录Python 3.9一条 pip 命令装完不需要系统装 FFmpegpip install faster-whisper最小可运行代码换掉文件名就能跑from faster_whisper import WhisperModel model WhisperModel(tiny, deviceauto) # auto 会自动选 cuda 或 cpu segments, info model.transcribe(audio.mp3, vad_filterTrue) for seg in list(segments): print(info.language, f[{seg.start:.1f} - {seg.end:.1f}], seg.text)tiny 只是先跑通流程转录质量不满意时把模型名换成large-v3或distil-large-v3其余代码不用动。调优int8 和 batch_size 怎么选compute_typeCPU 用int813分钟音频1分42秒内存1477MBGPU 默认float168GB 显存卡跑 large-v3 这类大模型时用int8_float16更稳。大多数情况CUDA 上就选float16纯 CPU 选int8。batch_size仅批量接口从1加到8GPU 上1分03秒到17秒显存4525MB到6090MB显存紧张就降到4。模型档位tiny用于快速试效果large-v3是质量上限distil-large-v3是折中——仓库基准里同样任务它比 transformers 后端快约一倍25分50秒对46分12秒WER 还从14.8降到13.5。hotwords传一段专有名词或术语字符串会拼进提示词里产品名、人名这类容易听错的词识别率会改善。如果音频是中文会议录音、机器上有 CUDA 卡默认float16加 VAD 就够用了长视频加低端卡的组合先切int8_float16加BatchedInferencePipeline第一个文件转完你就能看到差距。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考