1. 模型种类
Whisper 支持多种模型规格,包括 tiny、base、small、medium、large 等。Faster-Whisper 的模型种类与 Whisper 类似。
2. 模型安装
Whisper 和 Faster-Whisper 的模型主要有两种获取方式:
-
通过 pip 安装:
- Whisper: 运行
pip install -U openai-whisper,下载结果为.pt文件。参考文档:OpenAI Whisper。 - Faster-Whisper: 运行
pip install faster-whisper,下载结果为.pt文件。参考文档:SYSTRAN Faster-Whisper。
- Whisper: 运行
-
通过 Hugging Face 下载:
- 访问 Hugging Face 搜索 whisper,可下载 large-v3 和 large-v3-turbo 等模型。文件格式与上述 pip 安装方式有所不同。
3. 模型运行
3.1 使用 pip 安装的模型(Whisper)
参考官方示例代码如下:
import whisper
model = whisper.load_model("turbo")
# load audio and pad/trim it to fit 30 seconds
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)
# make log-Mel spectrogram and move to the same device as the model
mel = whisper.log_mel_spectrogram(audio, n_mels=model.dims.n_mels).to(model.device)
# detect the spoken language
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")
# decode the audio
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)
# print the recognized text
print(result.text)
注意:Whisper 模型通常建议音频时长适中,如果音频时间太短,可能识别结果不准确,具体请自行尝试。
3.2 使用 pip 安装的模型(Faster-Whisper)
参考官方示例代码如下:
from faster_whisper import WhisperModel
model_size = "large-v3"
# Run on GPU with FP16
model = WhisperModel(model_size, device="cuda", compute_type="float16")
# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")
segments, info = model.transcribe("audio.mp3", beam_size=5)
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
print("\[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
在初始化 WhisperModel 时,可以指定 cuda 编号以便合理利用资源。
3.3 使用 Hugging Face 模型的部署
若采用 Hugging Face 下载的模型,可参考 vLLM 框架。vLLM 框架中的 Whisper 模型和 Faster-Whisper 模型通常来自 Hugging Face。关于 vLLM 安装踩坑问题,后续将另行发布。
