Faster Whisper 使用教程
项目介绍
Faster Whisper 是一个基于 CTranslate2 的 OpenAI Whisper 模型的重新实现。CTranslate2 是一个针对 Transformer 模型的快速推理引擎。Faster Whisper 的实现比 openai/whisper 快 4 倍,适用于需要快速语音识别的场景。
项目快速启动
安装
首先,克隆项目仓库并安装必要的依赖:
git clone https://github.com/SYSTRAN/faster-whisper.git
cd faster-whisper
pip install -r requirements.txt
使用示例
以下是一个简单的示例,展示如何在 GPU 上运行 Faster Whisper 进行语音识别:
from faster_whisper import WhisperModel
model_size = "large-v3"
# 在 GPU 上运行,使用 FP16
model = WhisperModel(model_size, device="cuda", compute_type="float16")
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))
应用案例和最佳实践
应用案例
Faster Whisper 可以广泛应用于实时语音识别、语音翻译、字幕生成等领域。例如,在视频会议中实时生成字幕,或者在直播中提供多语言翻译。
最佳实践
- 优化模型大小和计算类型:根据实际需求选择合适的模型大小和计算类型(如 FP16、INT8),以平衡性能和速度。
- 批处理优化:使用批处理(Batched Inference)可以进一步提高推理速度,特别是在处理大量音频数据时。
from faster_whisper import WhisperModel, BatchedInferencePipeline
model = WhisperModel("medium", device="cuda", compute_type="float16")
batched_model = BatchedInferencePipeline(model=model)
segments, info = batched_model.transcribe("audio.mp3", batch_size=16)
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
典型生态项目
Open-Lyrics
Open-Lyrics 是一个使用 Faster Whisper 进行语音文件转录的 Python 库,并将结果翻译和优化成所需语言的 LRC 文件。
wscribe
wscribe 是一个灵活的转录生成工具,支持 Faster Whisper。它可以导出单词级别的转录,并使用 wscribe-editor 进行编辑。
aTrain
aTrain 是一个图形用户界面的 Faster Whisper 实现,由 BANDAS-Center 在格拉茨大学开发,用于 Windows 和 Linux 上的转录和分割。
通过这些生态项目,Faster Whisper 可以更好地集成到各种语音处理和翻译应用中,提供更丰富的功能和更高的效率。