ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

17秒转写13分钟音频:faster-whisper语音识别加速实现

17秒转写13分钟音频:faster-whisper语音识别加速实现 17秒转写13分钟音频faster-whisper语音识别加速实现【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 是基于 CTranslate2 推理引擎的语音识别实现用于把 OpenAI Whisper 模型转写的音频转成文字。它在保持同等准确率的前提下最高可提速 4 倍并降低内存占用适合需要在产品里集成离线语音转文字的开发者和要批量处理会议、播客录音的使用者。理解项目CTranslate2 重写版 Whisper 在做什么faster-whisper 用 CTranslate2 引擎重写了 Whisper 的推理流程模型权重与原版一致准确率不受影响。它和 openai/whisper、whisper.cpp 的差异可以从几组数据看出来GPU 上用 large-v2 模型转写 13 分钟音频fp16 下耗时 1 分 03 秒openai/whisper 同精度为 2 分 23 秒切到 int8 量化后耗时降到 59 秒显存占用 2926MB低于 openai/whisper 的 4708MBCPU 上 small 模型 int8 量化耗时 1 分 42 秒openai/whisper fp32 为 6 分 58 秒。另外两点工程上的省事系统无需安装 FFmpeg音频解码由 pip 包自带的 PyAV 完成内置 Silero VAD可以在转写前过滤掉纯静音片段减少无意义的计算。环境检查Python 版本与 CUDA 依赖清单安装前逐项确认Python 3.9 及以上当前发布版本为 1.2.1无需系统级 FFmpeg核心依赖由 pip 自动解析ctranslate24.x、onnxruntime、av、tokenizersGPU 运行可选NVIDIA 显卡 CUDA 12 cuBLAS cuDNN 9如果你还在用 CUDA 11 或 cuDNN 8需将 ctranslate2 降到ctranslate24.4.0更老环境用 3.24.0没有 GPU 也能跑通CPU 配 int8 量化即可覆盖多数离线场景。安装 faster-whisper 并验证版本安装只需一条命令pip install faster-whisper依赖会自动处理。装完后执行python -c import faster_whisper; print(faster_whisper.__version__)终端打印出版本号如 1.2.1即代表安装成功。首次运行用 small 模型拿到带时间戳的分段结果下面这段代码在 CPU 上用 int8 量化加载 small 模型转写仓库测试目录里的 JFK 音频并逐段打印起止时间和文本from faster_whisper import WhisperModel model WhisperModel(small, devicecpu, compute_typeint8) segments, info model.transcribe(tests/data/jfk.flac, beam_size5) for segment in segments: print(f[{segment.start:.2f}s - {segment.end:.2f}s] {segment.text})首次运行会先下载一次模型权重之后你会看到形如[0.00s - 2.44s] And so my fellow Americans...的带时间戳输出。调优选项常用参数取值与适用场景选项常用取值适用场景devicecpu / cuda有 GPU 选 cuda否则 cpucompute_typefloat16 / int8_float16 / int8GPU 首选 float16显存紧张用 int8_float16CPU 用 int8beam_size1–5默认 5值越小解码越快越大识别越稳定batch_size8 / 16长音频批量转写需配合 BatchedInferencePipelinevad_filterTrue过滤录音中的静音段阈值经 vad_parameters 调整word_timestampsTrue需要词级时间戳字幕对齐、热词定位languageen / zh 等已知语种时跳过自动检测速度更稳完整参数说明可以直接看 faster_whisper/transcribe.py 中 transcribe 方法的签名和注释。典型场景批量转写与静音过滤如果你需要批量处理大量长录音并吃满 GPU可以换用批处理推理管线它是对常规 transcribe 的即插即用替换from faster_whisper import WhisperModel, BatchedInferencePipeline model WhisperModel(turbo, devicecuda, compute_typefloat16) pipeline BatchedInferencePipeline(model) segments, info pipeline.transcribe(audio.mp3, batch_size16)同样在 GPU 上跑 large-v2batch_size8 时转写 13 分钟音频的耗时从 1 分 03 秒降到 17 秒。如果你需要自动跳过会议录音里的长段沉默给 transcribe 传vad_filterTrue即可默认只移除超过 2 秒的静音也可以用vad_parametersdict(min_silence_duration_ms500)这类方式调整判定阈值。如果你要做字幕级的词级对齐传word_timestampsTrue然后从每个 segment 的 words 字段读取每个词的起止时间。排障GPU、内存与无输出的常见报错现象可能原因解决办法加载 GPU 时报 CUDA 相关错误缺 cuBLAS/cuDNN或 CUDA 11 环境配了新版 ctranslate2按 CUDA 12 安装 cuBLAS 和 cuDNN 9或降级ctranslate24.4.0GPU 显存不足OOM模型过大或 fp16 占用偏高compute_type 改用 int8_float16或换更小模型转写速度远低于预期CPU 上跑大模型或 beam_size 偏高换小模型 int8或用 GPU长音频走 batched 推理调用 transcribe 后一直没有输出segments 是生成器遍历前不会真正开始转写用 for 循环遍历或 list(segments) 强制执行首次运行特别慢首次加载会从 Hugging Face 下载模型权重等待一次即可之后本地缓存也可把模型目录转换后直接加载下一步用真实录音对比量化方案faster-whisper 解决的是 Whisper 推理慢、占用高的问题int8 量化和批量推理在内存与吞吐上还有明显余量。建议下一步拿一段真实录音分别用 float16 和 int8 跑一遍对比耗时、内存和识别差异再决定线上用哪套配置。想看更多参数组合可以读 faster_whisper/transcribe.py想复现前文数据可以运行 benchmark/ 目录下的基准脚本。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表