文章目录
- faster-whisper:语音转文字,快 4 倍
- 为什么要用它
- 支持哪些功能
- 安装使用
- 适合哪些人用
faster-whisper:语音转文字,快 4 倍
faster-whisper 在 GitHub 上已经拿到 23.8K Star 了。
SYSTRAN 开源了这个工具,用 CTranslate2 重新实现了 OpenAI 的 Whisper 模型。做一件事——把音频转成文字。速度比原版快 4 倍,内存占用更少,还支持 8 位量化。
为什么要用它
做过语音识别的人都知道,Whisper 效果好,但速度慢。处理一段 13 分钟的音频,原版 Whisper 在 GPU 上要 2 分 23 秒。faster-whisper 只要 1 分 03 秒。
开了批处理模式,16 段音频一起跑,17 秒搞定。用 INT8 量化,VRAM 从 4708MB 降到 2926MB,速度还能再快一点。
CPU 上也快。Small 模型,原版要 6 分 58 秒,faster-whisper 批处理模式 51 秒。
支持哪些功能
- 多语言识别,自动检测语言
- 词级时间戳,精确到每个词的起止时间
- VAD 过滤,自动跳过静音片段
- 批处理模式,多段音频同时处理
- 支持 Distil-Whisper 蒸馏模型,速度更快
- 自定义模型转换, fine-tuned 模型也能用
安装使用
安装:
pipinstallfaster-whisperGPU 需要额外装 NVIDIA 的库。CUDA 12 和 cuDNN 9。Linux 可以用 pip 装,Windows 和 Linux 也能从 Purfview 的仓库下载。
基本用法:
fromfaster_whisperimportWhisperModel model=WhisperModel("large-v3",device="cuda",compute_type="float16")segments,info=model.transcribe("audio.mp3",beam_size=5)forsegmentinsegments:print("[%.2fs -> %.2fs] %s"%(segment.start,segment.end,segment.text))批处理:
fromfaster_whisperimportWhisperModel,BatchedInferencePipeline model=WhisperModel("turbo",device="cuda",compute_type="float16")batched_model=BatchedInferencePipeline(model=model)segments,info=batched_model.transcribe("audio.mp3",batch_size=16)不需要装 FFmpeg,用 PyAV 解码音频。
适合哪些人用
- 需要把大量音频转成文字的人
- 在做实时语音识别的开发者
- 想在本地跑语音识别、不想调 API 的人
- 需要处理多语言音频的场景
社区已经有不少项目基于 faster-whisper 构建:WhisperX 做了说话人分离,WhisperLive 做了实时转录,aTrain 做了图形界面。
faster-whisper 构建:WhisperX 做了说话人分离,WhisperLive 做了实时转录,aTrain 做了图形界面。