faster-whisper:语音转文字,快 4 倍

文章目录

  • 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-whisper

GPU 需要额外装 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 做了图形界面。