13分钟音频17秒转写:faster-whisper实操笔记 13分钟音频17秒转写faster-whisper实操笔记【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper深夜两百条外呼录音排在队列里旧 Whisper 脚本跑了六小时还只处理了一半而明早要交会议纪要。faster-whisper 基于 CTranslate2 推理引擎重新实现了 Whisper 转写模型官方基准里 13 分钟音频 17 秒跑完。它到底是什么faster-whisper 是基于 CTranslate2 推理引擎的 Python 语音转写实现跑 Whisper 模型时比官方 openai/whisper 最快快 4 倍且同精度下占用更少内存。指标数值GPU 转写耗时large-v2fp16batch_size813 分钟音频 17 秒GPU 显存large-v2int8 / fp162926MB / 4525MBCPU 转写耗时smallint8batch_size813 分钟音频 51 秒支持语言数100 种部署依赖Python 3.9无需系统 FFmpeg表中数字来自官方 benchmarkGPU 侧是 RTX 3070 TiCPU 侧是 8 线程的 i7-12700K复现时先对齐硬件再看差距。和 openai/whisper 相比它默认 beam_size 是 5openai 是 1开箱质量更稳且解码全部走 PyAV 库不用装系统 FFmpeg和 whisper.cpp 相比它是纯 Python API 而不是 C 命令行还内置了 VAD 静音过滤。 跑通第一个 case环境前提Python 3.98GB 内存可用CPU 跑 small 模型 int8 量化只占 1477MB可选NVIDIA GPU CUDA 12 cuBLAS/cuDNN 9pip install faster-whisper # 可选GPU 加速Linux 下运行前还需设置 LD_LIBRARY_PATH # pip install nvidia-cublas-cu12 nvidia-cudnn-cu129.*这段做什么CPU 上加载 small 模型并 int8 量化转写一个文件打印带时间戳的片段。from faster_whisper import WhisperModel # CPU 上跑 small int8内存占用只有 1.5GB 左右 model WhisperModel(small, devicecpu, compute_typeint8) segments, info model.transcribe(audio.mp3) # segments 是生成器开始迭代才真正触发转写 for segment in segments: print(f[{segment.start:.2f}s - {segment.end:.2f}s] {segment.text})你应看到按时间顺序滚出[起点-终点] 文本info里还能取到检测到的语言和置信度。按官方 CPU 基准这套配置转写 13 分钟音频要 1 分 42 秒首次运行会自动下载模型权重别把下载时间算进性能里。三个高频场景batch_size 批量文件转写一个目录的外呼录音全部要出文本。from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(large-v2, devicecuda, compute_typefloat16) # 套上批量管线把音频分块排队GPU 始终打满 batched BatchedInferencePipeline(model) for name in [a.mp3, b.mp3]: # 实际使用改成遍历目录 segments, _ batched.transcribe(name, batch_size8) text .join(s.text for s in segments) # 立即拼接同时触发转写 print(name, len(text))batch_size同时排队的音频分块数8 是官方基准用的值compute_type显存紧张时改 int8。当你有一批文件要处理、且 GPU 显存 6GB 时选用此方案。长音频静音过滤 VAD两小时的会议录音一半是沉默。# VAD 先圈出有语音的区间静音不进模型 segments, _ model.transcribe( meeting.mp3, vad_filterTrue, # 默认只删 2 秒以上静音这里调到 0.5 秒更激进 vad_parametersdict(min_silence_duration_ms500), )vad_filter开关内置的 Silero VAD 过滤min_silence_duration_ms判定静音的时长下限默认 2000。当音频里静音占比超过三成时选用此方案。词级时间戳 word_timestamps字幕对齐、通话关键词检索要精确到词。# 词级时间戳用于关键词检索和字幕对齐 segments, _ model.transcribe(audio.mp3, word_timestampsTrue) for segment in segments: for word in segment.words: # 每个词带 start/end/probability if word.probability 0.8: # 过滤掉低置信度词 print(f{word.start:.2f}s {word.word})word_timestamps词级时间戳开关probability每个词的置信度可做质量过滤。当业务侧需要按词而不是按段定位时选用此方案。 性能旋钮条件有 NVIDIA GPU、日均转写量超过 1 小时、显存 6GB → 操作换成 BatchedInferencePipelinebatch_size8 → 预期收益large-v2 转写 13 分钟音频从 63 秒降到 17 秒显存 4525MB → 6090MB条件8GB 显存的卡或纯 CPU 机器 → 操作compute_type 改 int8 → 预期收益large-v2 显存 4525MB → 2926MBCPU 上 small 模型 2257MB → 1477MB耗时 2 分 37 秒 → 1 分 42 秒- model WhisperModel(large-v2, devicecuda, compute_typefloat16) - segments, _ model.transcribe(audio.mp3) from faster_whisper import BatchedInferencePipeline model WhisperModel(large-v2, devicecuda, compute_typeint8) batched BatchedInferencePipeline(model) segments, _ batched.transcribe(audio.mp3, batch_size8)两个旋钮不冲突先用 int8 把内存压进预算再用 batch 把速度换出来。批量管线默认自带 VAD 过滤长音频组合使用收益更明显。⚠️ 踩坑速查症状transcribe 瞬间返回却没有任何输出。根因segments 是生成器不迭代就不会开始转写。segments, _ model.transcribe(audio.mp3) segments list(segments) # 先迭代才真正开始转写症状devicecuda 首次加载报 cuBLAS 或 cuDNN 找不到。根因新版 ctranslate2 只认 CUDA 12 的 cuBLAS 和 cuDNN 9。pip install nvidia-cublas-cu12 nvidia-cudnn-cu129.* # Linux 下运行前还要设置 LD_LIBRARY_PATH或直接用官方 CUDA 镜像症状CUDA 11 的老卡加载模型报版本不兼容。根因最新版 ctranslate2 只支持 CUDA 12。# CUDA 11 固定 3.24.0CUDA 12 配 cuDNN 8 则固定 4.4.0 pip install --force-reinstall ctranslate23.24.0症状转写三小时长音频极慢还夹杂噪音。根因没开 VAD静音段也送进模型推了一遍。segments, _ model.transcribe(long.mp3, vad_filterTrue)症状解码音频时报 av 模块缺失或版本过低。根因音频解码依赖 PyAV要求 av11系统 FFmpeg 不用装但 Python 库必须有。pip install av11上生产的底线容器只改三行官方 CUDA 镜像已打包 cuBLAS 和 cuDNNFROM nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04 RUN pip3 install faster-whisper CMD [python3, infer.py]过度设计的阈值日转写量低于 2 小时音频、请求串行到达时一个常驻进程加 cron 排队就够了日处理量超过 10 小时、或者要响应并发请求再上消息队列和多 worker。回到开头那两百条录音队列你今晚可以先做一件事git clone https://gitcode.com/GitHub_Trending/fa/faster-whisper然后 cd faster-whisper 执行 pip install faster-whisper用 small 模型 int8 在 CPU 上转写一条录音并计时。拿这个时间和旧脚本比再决定要不要升级 GPU 和批量模式。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考