拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Faster-Whisper:把 13 分钟音频转写成文字的离线语音转录方案

Faster-Whisper把 13 分钟音频转写成文字的离线语音转录方案【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper要把 10 小时的会议录音转成文字原版 Whisper 得跑好几个小时显存占用还经常让台式机风扇狂转。faster-whisper 用 CTranslate2 重写了 OpenAI Whisper 的推理管线作为离线语音转录工具它在准确率不变的前提下最快达到 4 倍加速内存占用更少。为什么比原版 Whisper 快核心差异在于推理引擎的替换。openai/whisper 直接用 PyTorch 跑模型faster-whisper 则把 Whisper 模型转成 CTranslate2 格式交给这个专为 Transformer 设计的推理引擎执行首次使用可以从 Hugging Face Hub 自动转换并缓存。引擎带来两个关键能力批量推理和量化。GPU 上可以选 fp16 或 int8_float16 精度CPU 上跑 int8量化能显著压掉显存和内存带宽的压力。还有一个容易忽略的细节你不需要在系统里装 FFmpeg音频解码由随包提供的 PyAV 库完成它自带 FFmpeg 运行时。实测数据13 分钟音频以下数字来自项目官方对一段 13 分钟音频的测试。GPUNVIDIA RTX 3070 TiCUDA 12.4large-v2 模型beam_size5原版 openai/whisper fp16 耗时 2 分 23 秒、显存 4708MBfaster-whisper fp16 为 1 分 03 秒、4525MBint8 精度 59 秒、2926MB加上 batch_size8 后int8 只需 16 秒。CPUIntel Core i7-12700K8 线程small 模型原版 fp32 耗时 6 分 58 秒、内存 2335MBfaster-whisper int8 为 1 分 42 秒、1477MBbatch 8 的 int8 配置 51 秒完成。准确率没有牺牲YT Commons 测试集上distil-large-v3 模型在 faster-whisper 下的 WER 为 13.53transformers 实现为 14.80反而略优。 从零跑通三分钟拿到第一条转录纯 CPU 场景一条命令搞定pip install faster-whisperGPU 场景需要系统装有 NVIDIA 的 cuBLAS 和 cuDNN 9对应 CUDA 12Linux 上可以直接用 pip 安装pip install nvidia-cublas-cu12 nvidia-cudnn-cu129.*安装后记得在启动 Python 前设置好 LD_LIBRARY_PATH。然后是能跑通的最少代码from faster_whisper import WhisperModel model WhisperModel(large-v3, devicecuda, compute_typefloat16) segments, info model.transcribe(audio.mp3, beam_size5) for seg in segments: print(f[{seg.start:.2f}s - {seg.end:.2f}s] {seg.text})模型尺寸一句话选型日常转写 small 就够追求精度上限再上 large-v3 或 turbo纯英文且在意速度可以试试 distil-large-v3。⚙️ 三个真正好用的进阶开关词级时间戳需要把字幕逐词对齐、做关键词高亮时打开。segments, _ model.transcribe(audio.mp3, word_timestampsTrue) for seg in segments: for w in seg.words: print(f[{w.start:.2f}s - {w.end:.2f}s] {w.word})注意英文的词级时间戳相当准中文的粒度实际更接近短语级别指望精确到每个汉字。VAD 过滤别让模型听沉默长录音里有大段静音或环境底噪时开启 VAD内置 Silero VAD实现在faster_whisper/vad.py可以跳过无声片段省下的不只是时间还有模型在噪声上的胡言乱语。segments, _ model.transcribe( audio.mp3, vad_filterTrue, vad_parametersdict(min_silence_duration_ms500), )默认行为偏保守只剔除超过 2 秒的静音如果语速快、停顿短默认阈值容易误删这时把 min_silence_duration_ms 调小试试。批量推理一行换速度GPU 上处理一批音频时把模型包进 BatchedInferencePipeline 就行它和 transcribe 的调用方式一致是直接的替换。from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(large-v3, devicecuda, compute_typefloat16) pipeline BatchedInferencePipeline(model) segments, _ pipeline.transcribe(audio.mp3, batch_size16)批量模式下 VAD 默认开启。batch_size 越大显存吃得越狠上面实测 batch 16 时显存超过 6GB不够就往下调。⚠️ 避坑与常见问题现象创建模型时直接报错提示找不到 cuDNN 或 cuBLAS。原因最新版 ctranslate2 只认 CUDA 12 cuDNN 9 的组合老环境版本不匹配。解决cuDNN 8 的环境执行pip install --force-reinstall ctranslate24.4.0CUDA 11 则降到 3.24.0。现象调用 transcribe 后程序秒结束却一行字都没输出。原因segments 是生成器你不遍历它推理压根没开始。解决后续还要用的话先list(segments)兜住。现象CI 流水线今天能跑明天挂。原因从 master 分支装的是滚动版本上游一变就断。解决生产环境固定 PyPI 发行版真需要新特性就从特定 commit 安装别用 master。生态与延伸围绕它已经长出几个成熟集成faster-whisper-server 把它封装成 OpenAI 兼容的 API 服务WhisperX 在词级时间戳之上补了说话人分离whisper-ctranslate2 提供命令行客户端适合脚本里快速调用。项目采用 MIT 协议发布商用没有障碍。本地转写字幕、会议纪要或清洗标注数据它基本是首选如果你只是要调云端 ASR 接口、想要零代码开箱的界面那可以再看看别的方案。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门