概述
在语音转文本 ASR 工具合集中介绍 ASR 基础概念,汇总几款语音识别模型和项目,其中就包括 OpenAI 开源的 Whisper。OpenAI Whisper 则是技术原理和实战。
围绕 Whisper 有着非常庞大的生态,本文试图介绍几个,不够深入。
whisper.cpp
Whisper 模型的开源(GitHub)C++ 实现版本,核心优势:
- 几乎无依赖:最大亮点,不同于其他需通过
pip安装一大堆 Python 库的项目,whisper.cpp几乎没有依赖; - 性能卓越:C++ 原生性能优势,转录速度非常快,资源占用也相对较低;
- 跨平台与硬件支持:支持多种硬件加速,从主流的 NVIDIA(CUDA)、AMD(OpenCL) 显卡,到苹果的 Metal 框架,甚至是专用 NPU,都能利用起来进一步提速;
- 部署简单:可以直接下载官方编译好的可执行文件,解压即用,整个程序包非常小巧。
实战
HF 模型地址。
| 模型名称 | 文件大小 | 推荐场景 |
|---|---|---|
ggml-small.bin | ~488MB | 电脑配置较低,对速度要求高,能接受少量错误 |
ggml-medium.bin | ~1.5GB | 平衡之选 |
ggml-large-v2.bin | ~3.0GB | 追求高准确率,电脑配置较好 |
ggml-large-v3.bin | ~3.1GB | 最高准确率,目前效果最好的模型,推荐给追求极致效果的用户 |
ggml-large-v3-turbo.bin | ~1.6GB | large-v3 的优化版本,速度比 v2/v3 更快,准确率相差不大,适合大多数用户 |
whisper.cpp 本身只处理标准格式 .wav 文件,对于 mp3、m4a、mp4、mkv 等格式,直接处理可能会报错或得到空白结果。可使用 FFmpeg 预先转换。
Faster-Whisper
开源,使用 CTranslate2 技术。
没有提供图形用户界面 GUI,也没提供命令行接口,只能作为一个 Python 库被调用。
模型:
- tiny.en
- tiny
- base.en
- base
- small.en
- small
- medium.en
- medium
- large-v1
- large-v2
- large-v3
- distil-large-v2
- distil-medium.en
- distil-small.en
- distil-large-v3
- large-v3-turbo
- turbo
实战
安装:pip install faster-whisper
实例:
from faster_whisper import WhisperModel
# GPU + FP16
model = WhisperModel("medium", device=, compute_type=)
model = WhisperModel(, device=, compute_type=)
model = WhisperModel(, device=, compute_type=)
segments, info = model.transcribe(, beam_size=, language=, condition_on_previous_text=)
(%(info.language, info.language_probability))
segment segments:
(%(segment.start, segment.end, segment.text))


