速语(Whisper):先进语音转文本技术
Faster Whisper:使用 CTranslate2 彻底革新语音转文本
在人工智能飞速发展的浪潮中,高效准确的语音转文本(STT)技术至关重要。SYSTRAN 的 faster-whisper
项目应运而生,它是一个强大的开源解决方案,利用 CTranslate2 推理引擎重新实现了 OpenAI 著名的 Whisper 模型。这一战略选择带来了显著的性能提升,使其成为开发者和研究人员的理想选择。
Faster Whisper 的主要优势
faster-whisper
的核心创新在于其对速度和资源管理的优化。它实现了比原始 OpenAI 实现快四倍的转录速度,同时占用的内存更少。通过 8 位量化,这种效率得到了进一步提升,该量化可用于 CPU 和 GPU,提供了可定制的性能配置。
性能基准测试:
为了展示其能力,faster-whisper
提供了详细的基准测试,将其性能与 openai/whisper
、whisper.cpp
和 Hugging Face transformers
等其他实现进行了比较。这些基准测试显示了显著的改进:
- GPU 性能: 在 GPU 上,使用 FP16 精度的
faster-whisper
比其他方案完成转录的速度明显更快。使用 INT8 量化后,性能提升更为显著,大大减少了 VRAM 的使用量。 - CPU 性能: 即使在 CPU 上运行,
faster-whisper
也提供了不俗的速度和内存效率,尤其是在利用 INT8 量化和批量处理时。
安装与设置
开始使用 faster-whisper
非常简单。主要的要求是 Python 3.9 或更高版本。与其他一些 STT 解决方案不同,无需在系统上单独安装 FFmpeg
,因为音频解码由 PyAV
库处理。
GPU 要求: 对于 GPU 加速,用户需要 NVIDIA 库,例如适用于 CUDA 12 和 cuDNN 9 的 cuBLAS。项目提供了关于安装这些依赖项的清晰指南,包括针对不同 CUDA 版本的解决方法以及在 Linux 上使用 Docker 或基于 pip 的安装的建议。
通过 Pip 安装:
pip install faster-whisper
用法与功能
将 faster-whisper
集成到您的项目中非常直观。可以使用各种模型大小(例如 large-v3
)来初始化 WhisperModel
类。您可以指定执行设备(cuda
或 cpu
)和计算类型(float16
、int8_float16
、int8
)。
from faster_whisper import WhisperModel
model_size = "large-v3"
model = WhisperModel(model_size, device="cuda", compute_type="float16")
segments, info = model.transcribe("audio.mp3", beam_size=5)
for segment in segments:
print(f"[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
高级功能:
- 批量转录: 对于并发处理多个音频文件,
BatchedInferencePipeline
提供了一种高效的方式来处理批量。 - VAD 过滤器: 集成的 Silero VAD(语音活动检测)有助于过滤掉非语音片段,从而提高转录准确性并减少处理时间。此功能可以通过各种参数进行自定义。
- 词级时间戳: 该库支持为单个单词生成精确的时间戳。
- Distil-Whisper 兼容性:
faster-whisper
可与 Distil-Whisper 模型(包括distil-large-v3
)无缝协同工作,实现更快的推理速度。
模型转换
faster-whisper
支持使用自定义或微调的 Whisper 模型。提供的脚本允许将与 Transformers 库兼容的模型转换为 CTranslate2 格式。这使得可以直接从 Hugging Face Hub 名称或本地目录加载模型。
ct2-transformers-converter --model openai/whisper-large-v3 --output_dir whisper-large-v3-ct2 \n--copy_files tokenizer.json preprocessor_config.json --quantization float16
社区与集成
faster-whisper
的生态系统充满活力,众多社区项目都利用了其能力。值得注意的集成包括:
- speaches: 一个 OpenAI 兼容的 faster-whisper 服务器。
- WhisperX: 用于说话人分离和精确词级时间戳的库。
- whisper-ctranslate2: 一个镜像原始 Whisper CLI 的命令行客户端。
- Whisper-Streaming & WhisperLive: 用于实时和近实时转录的实现。
faster-whisper
作为一种高度优化且功能强大的开源工具,脱颖而出,适合任何需要高效准确的语音转文本功能的用户。其活跃的开发和强大的社区支持确保了其持续的相关性和改进。