faster-whisper本地语音识别:从零到跑通4倍速的Whisper转录

发布时间:2026/9/5 17:38:09
faster-whisper本地语音识别:从零到跑通4倍速的Whisper转录 faster-whisper本地语音识别从零到跑通4倍速的Whisper转录【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper凌晨两点1小时的访谈录音还卡在云端API的队列里计费按秒走数据在别人机器上。faster-whisper是Whisper的CTranslate2重实现精度不变、速度最高4倍int8量化内存再省一半本地跑、不联网普通笔记本就能转写。 faster-whisper本地转录解决的三个问题慢、费显存、隐私兜不住本地转写慢。原版openai/whisper的fp32在CPU上跑small模型13分钟音频要6分58秒占2.3GB内存faster-whisper的fp32是2分37秒批量推理batch_size8直接压到1分06秒同一台机器时间砍了七成。根源是执行引擎换成了CTranslate2。大模型显存放不下。GPU上跑large-v2的fp16原版占4708MB显存faster-whisper切int8量化后是2926MB省35%。16GB的卡跑large-v3不再纠结精度还是速度。音频数据不能出内网。走云端API会议录音要先上传敏感内容在别人机器上多待一遍还按次计费。本地跑就没有这两个问题。顺带省一件事它不需要系统装FFmpeg解码由包里的PyAV完成比原版少一个依赖。和openai/whisper比识别结果一致快的是执行引擎和whisper.cpp这类C移植版比差别在它是Python库能直接嵌进现有pipeline而不是另起一条命令行。 从零到跑通本地语音识别环境的安装与首次转写你只需要做两件事。第一件是装要求Python 3.9以上这条命令装的是PyPI发布版pip install faster-whisper第二件是调用。下面这段加载small模型在CPU上用int8精度转写一个mp3打印检测到的语言和逐句时间戳from faster_whisper import WhisperModel model WhisperModel(small, devicecpu, compute_typeint8) segments, info model.transcribe(audio.mp3, beam_size5) print(Detected language %s with probability %f % (info.language, info.language_probability)) for segment in segments: print([%.2fs - %.2fs] %s % (segment.start, segment.end, segment.text))首次运行会自动下载CTranslate2格式的模型权重并缓存不用手动拉文件。有一个容易踩的点segments是生成器你不迭代它转写就不会真正开始想整体落盘就写segments list(segments)。能传哪些模型名available_models()一查便知从tiny到large-v3、turbo都在里面。 按场景选配置CPU跑int8和GPU跑float16的推荐参数场景一离线会议转录笔记本CPU推荐模型small int8目标设备4核以上笔记本纯CPU关键参数vad_filterTruebeam_size5为什么这么选small加int8在CPU上13分钟音频约1分42秒VAD把静音滤掉长会议跑完机器不卡。有团队就用这套配置搭本地会议转录内容不出内网顺带支持多语言。场景二短视频批量字幕GPU批量推荐模型turbo float16目标设备8GB以上显存的N卡关键参数BatchedInferencePipelinebatch_size8为什么这么选批量推理把GPU上13分钟音频从1分03秒压到17秒一条视频的字幕几分钟出完。有自媒体团队的批量字幕流水线就是这种跑法单条视频处理压到10分钟内。场景三高保真长音频GPU大模型推荐模型large-v3 int8_float16目标设备N卡关键参数beam_size5condition_on_previous_text保持默认为什么这么选混合量化比fp16省约35%显存large-v2上4525MB降到2926MB精度基本不掉一小时访谈也扛得住。场景四嵌入式离线语音低配CPU推荐模型tiny或base int8目标设备树莓派级别CPU关键参数int8量化OMP_NUM_THREADS按核数设为什么这么选base在低配CPU上接近实时转写全程离线语音命令这类场景够用。 踩坑与绕过CUDA报错、假卡死、线程数不控加载GPU模型报cuBLAS或cuDNN错误。现象是import没问题WhisperModel一指定devicecuda就抛库加载失败。原因是最新版ctranslate2只认CUDA 12加cuDNN 9老环境对不上。解法CUDA 11环境执行pip install --force-reinstall ctranslate23.24.0CUDA 12但cuDNN 8的降到4.4.0图省事直接用nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04镜像docker/目录里有现成的Dockerfile和infer.py可以参照。transcribe()调用后像卡死。现象是调用完没有任何输出CPU也不动。原因是segments是生成器转写在被迭代之前不会启动。解法一行segments list(segments)或者直接进for循环。CPU推理比基准慢一截。现象是同样配置速度远低于README里的数字。原因是线程数没控住框架默认分配未必合理。解法是跑之前显式指定OMP_NUM_THREADS4 python your_script.py做性能对比时务必保持两边线程数一致否则数字没有可比性。 接下来可以做什么批量服务化与说话人分离批量服务化WhisperModel外面套一层BatchedInferencePipelinedrop-in替换transcribeGPU吞吐再提一档实现在faster_whisper/transcribe.py。词级时间戳transcribe时传word_timestampsTruesegment.words里每个词都带起止时间做字幕对齐、关键词高亮直接用。说话人分离社区项目WhisperX、whisper-diarize基于faster-whisper做多说话人拆分会议录音按人归档靠它列表见README的Community integrations。VAD调参vad_parameters里能调min_silence_duration_ms默认只滤2秒以上静音参数和默认值看faster_whisper/vad.py。自训模型转换用ct2-transformers-converter把微调过的Whisper权重转成CTranslate2格式再加载依赖见requirements.conversion.txt。核心就一句话Whisper在本地跑得起来、跑得动效果不缩水。拿一个mp3把small加int8跑通再决定要不要上更好的卡。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考