让我们比较一下当前的whisper、whisper.cpp和faster-whisper。
OpenAI / Whisper 自发布以来,似乎在各个方面都发生了变化,例如在 2022 年 12 月增加了 large-v2 模型和各种版本升级。
whisper.cpp是用 CPU 的 C/C++ 编写的。 它似乎是Core ML支持,所以它对于Mac用户有强烈的感觉。
而 faster-whisper是基于 CTranslate2 重写了 Whisper 模型,似乎它的速度比原版的快 4 倍,精度也相同,并且使用的内存更少。
以下是测试音频 (WAV)(48 秒)的测试示例。
结果
Faster-whisper 的 GPU 和传闻中的一样快。
Faster-whisper CPU运算速度更快,GPU的速度也从85.62秒→23.9秒加快。
whisper.cpp 效果反而不是很好。 可能真正的价值体现在支持Mac CoreML加速上。
Whisper
安装
!pip install -U openai-whisper
模型加载
import whisper
model = whisper.load_model("large", device="cpu")
执行
%%time
result = model.transcribe("sampleTokyo.WAV")
print(result["text"])
whisper.cpp
安装
!git clone https://github.com/ggerganov/whisper.cpp.git
%cd whisper.cpp
!bash ./models/download-ggml-model.sh large
!make
转换为 16kHz 的 WAV
!ffmpeg -i ../sampleTokyo.WAV -ar 16000 sampleTokyo.wav
执行
%%time
!./main -f ./sampleTokyo.wav -nt -l ja -m models/ggml-large.bin
faster-whisper
安装
!pip install faster-whisper
模型加载
from faster_whisper import WhisperModel
model_size = "large-v2"
model = WhisperModel(model_size, device="cpu", compute_type="float32")
#model = WhisperModel(model_size, device="cpu", compute_type="int8")
#model = WhisperModel(model_size, device="cuda", compute_type="float16")
#model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
%%time
segments, info = model.transcribe("sampleTokyo.WAV", beam_size=5, language='ja')
results = list(segments)
print(' '.join([result.text for result in results]))