如何快速把音频转成文字:faster-whisper 语音转文字实战指南
如何快速把音频转成文字faster-whisper 语音转文字实战指南【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisperfaster-whisper 是一个基于 CTranslate2 推理引擎重新实现的语音转文字ASR工具用来解决原始 Whisper 模型推理慢、显存/内存占用高的问题。它的定位很明确在转录精度基本不变的前提下把一段长音频的转录时间从分钟级压到秒级并且不需要在系统里单独安装 FFmpeg。先看清问题长音频转录到底慢在哪里用 OpenAI 原版 whisper 在 GPU 上跑 large-v2 模型转录 13 分钟音频大约需要 2 分 23 秒占用显存约 4.7GB在 CPU 上跑 small 模型fp32需要 6 分 58 秒。faster-whisper 在同样的测试条件下GPU 上 large-v2fp16 下 1 分 03 秒int8 量化后 59 秒且显存降到约 2.9GB开启批量推理batch_size8后同一 GPU 上 17 秒完成CPU 上 small 模型int8 下 1 分 42 秒批量 int8 可到 51 秒而原版需要近 7 分钟。官方口径是相同精度下最高约 4 倍速度且内存占用更低官方仓库自带的 benchmark 脚本benchmark/speed_benchmark.py、benchmark/wer_benchmark.py可以用来复现和校验这些数据。如果你的场景是批量生成字幕、会议录音转写、课程视频转文稿这些数字直接决定了任务能否在可接受的时间内跑完。它凭什么快CTranslate2 与量化、批量推理faster-whisper 的速度来自三个层面推理引擎模型权重被转换成 CTranslate2 格式Transformer 模型的快速推理引擎加载和生成环节都比 PyTorch 原生实现高效。按模型名加载如WhisperModel(large-v3)时会自动从 Hugging Face Hub 下载对应的 CTranslate2 模型无需手动转换。量化在 CPU 和 GPU 上都可以启用 8-bitint8量化这是内存占用大幅缩水的主要原因GPU 上还支持float16、int8_float16等计算类型。批量推理仓库提供了BatchedInferencePipeline作为WhisperModel.transcribe的替代入口把多个音频片段打包处理这是上表中最快配置16~17 秒的来源批量模式下 VAD 过滤默认开启。另外一个部署层面的细节音频解码走 Python 库 PyAV它自带 FFmpeg 库所以装完包就能读 mp3/flac/wav 等格式省去了配置系统级 FFmpeg 的步骤。运行环境要求 Python 3.9 及以上。三步跑通第一条转录faster-whisper 安装与最小调用第一步安装从 PyPIpip install faster-whisper第二步加载模型并转录。模型名从tiny、base、small到large-v3都可以直接填也可以用本地目录或转换后的 CTranslate2 模型路径from faster_whisper import WhisperModel model WhisperModel(base, devicecpu, compute_typeint8) segments, info model.transcribe(audio.mp3, beam_size5) print(Detected language: %s (%.2f) % (info.language, info.language_probability)) # 注意segments 是生成器真正开始转录是在下面的迭代过程中 for segment in segments: print([%.2fs - %.2fs] %s % (segment.start, segment.end, segment.text))第三步理解两个最容易踩的坑生成器语义transcribe返回的segments是惰性生成器调用它时并没有开始推理必须迭代或list(segments)才会真正执行。想拿到全部结果再后处理就先转成列表。模型规格与设备device取cpu或cudacompute_type决定精度CPU 常用int8GPU 常用float16或int8_float16这两个参数在加载时就固定了。在 GPU 上启用 faster-whisperCUDA 12 与 ctranslate2 版本对照GPU 推理要求系统装好 NVIDIA 的 cuBLAS 和 cuDNN 9对应 CUDA 12。在 Linux 上可以直接用 pip 装这两组库装完需设置LD_LIBRARY_PATH再启动 Pythonpip install nvidia-cublas-cu12 nvidia-cudnn-cu129.*装库之外的版本对应关系需要特别留意这是实际部署中最常见的报错来源最新版 ctranslate2 只支持 CUDA 12 cuDNN 9环境是 CUDA 11 cuDNN 8 的需要把 ctranslate2 降级到 3.24.0环境是 CUDA 12 cuDNN 8 的降级到 4.4.0即pip install --force-reinstall ctranslate24.4.0或在 requirements 里写死版本不想处理库依赖的可以基于官方 NVIDIA CUDA Docker 镜像README 中给出了带 cuDNN 9 的具体镜像标签运行仓库docker/目录里附了示例 Dockerfile 和推理脚本可作参考。验证是否生效很简单把WhisperModel的device改为cuda、compute_type改为float16加载成功且推理速度明显快于 CPU 即配置正确。能力边界与适用场景转录、翻译、批量与词级时间戳transcribe的完整参数面faster_whisper/transcribe.py中的WhisperModel.transcribe定义覆盖了日常所需的大部分选项几个高频项转录与翻译task参数在transcribe和translate间切换后者把任意语种语音翻成英文适合多语料归一化词级时间戳word_timestampsTrue时每个 segment 内附带 words 列表做字幕或逐字校对时用到VAD 过滤vad_filterTrue启用内置 Silero VAD 先剔除无语音片段默认只滤除超过 2 秒的静音参数可通过vad_parameters字典调整默认值见faster_whisper/vad.py批量多文件场景换成BatchedInferencePipeline用法与单条一致其他initial_prompt提供上下文提示、hotwords指定专有名词、返回的info携带语言检测结果均按需在调用处配置。边界方面说清楚这个库面向离线批处理实时流式场景需要社区基于它做的流式封装另外它只认 CTranslate2 格式的权重自训练过的 Transformers 格式模型要先用转换器转一遍转换脚本和参数在 README 的 Model conversion 一节。项目采用 MIT 许可证见LICENSE文件可自由用于商业场景。资源入口从仓库的哪几个文件看起README.md完整基准数据表、安装方式、模型转换说明faster_whisper/transcribe.pyWhisperModel类实现所有转录参数的出处faster_whisper/vad.pyVAD 参数默认值tests/带测试音频的调用示例适合照着改出自己的第一个脚本CONTRIBUTING.md开发环境搭建与贡献流程。起步建议先在 CPU 上用small或base加int8跑通流程、确认音频链路没问题再按精度需求升级到 GPU 上的large-v3fp16或distil-large-v3用beam_size和批量开关做第二轮调优。【免费下载链接】faster-whisperFaster Whisper transcription with CTranslate2项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考