Faster-Whisper:基于CTranslate2的高效语音转录工具

【免费下载链接】faster-whisper 【免费下载链接】faster-whisper 项目地址: https://gitcode.com/gh_mirrors/fas/faster-whisper

Faster-Whisper是一个使用CTranslate2重新实现OpenAI Whisper模型的项目,相比原版Whisper,它在保持相同准确率的同时实现了高达4倍的速度提升,并且内存使用更少。该项目支持8位量化,可进一步在CPU和GPU上提高效率。

项目特点与优势

性能对比

  • GPU性能:使用large-v2模型在NVIDIA Tesla V100S上测试,faster-whisper FP16版本仅需54秒完成13分钟音频转录,而openai/whisper需要4分30秒
  • CPU性能:在Intel Xeon Gold 6226R上测试,faster-whisper INT8版本仅需2分04秒,内存使用仅995MB
  • 内存效率:最大GPU内存使用从11325MB降至4755MB(FP16)和3091MB(INT8)

支持模型

  • 支持所有标准Whisper模型(tiny、base、small、medium、large-v1/v2/v3)
  • 兼容Distil-Whisper蒸馏模型(distil-large-v2、distil-medium.en等)
  • 支持自定义微调模型的转换和使用

安装指南

基础安装

pip install faster-whisper

GPU支持要求

如需GPU加速,需要安装以下NVIDIA库:

  • cuBLAS for CUDA 12
  • cuDNN 8 for CUDA 12

其他安装方式

# 安装master分支最新版本
pip install --force-reinstall "faster-whisper @ https://github.com/SYSTRAN/faster-whisper/archive/refs/heads/master.tar.gz"

# 安装特定commit版本
pip install --force-reinstall "faster-whisper @ https://github.com/SYSTRAN/faster-whisper/archive/a4f1cc8f11433e454c3934442b5e1a4ed5e865c3.tar.gz"

使用示例

基础转录功能

from faster_whisper import WhisperModel

# 初始化模型(GPU FP16模式)
model_size = "large-v3"
model = WhisperModel(model_size, device="cuda", compute_type="float16")

# 执行转录
segments, info = model.transcribe("audio.mp3", beam_size=5)

print(f"检测到语言 '{info.language}',概率 {info.language_probability}")

for segment in segments:
    print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

词级时间戳

segments, _ = model.transcribe("audio.mp3", word_timestamps=True)

for segment in segments:
    for word in segment.words:
        print(f"[{word.start:.2f}s -> {word.end:.2f}s] {word.word}")

VAD语音活动检测

# 启用VAD过滤
segments, _ = model.transcribe("audio.mp3", vad_filter=True)

# 自定义VAD参数
segments, _ = model.transcribe(
    "audio.mp3",
    vad_filter=True,
    vad_parameters=dict(min_silence_duration_ms=500),
)

项目结构

faster-whisper/
├── faster_whisper/          # 核心代码库
│   ├── __init__.py         # 包初始化文件
│   ├── audio.py            # 音频处理模块
│   ├── feature_extractor.py # 特征提取器
│   ├── tokenizer.py        # 分词器实现
│   ├── transcribe.py       # 转录核心逻辑
│   ├── utils.py            # 工具函数
│   ├── vad.py              # VAD语音检测
│   └── version.py          # 版本管理
├── tests/                  # 测试套件
│   ├── test_transcribe.py  # 转录功能测试
│   └── test_utils.py       # 工具函数测试
├── benchmark/              # 性能基准测试
│   ├── speed_benchmark.py  # 速度测试
│   └── memory_benchmark.py # 内存测试
├── docker/                 # Docker容器化支持
│   ├── Dockerfile          # Docker构建文件
│   └── infer.py            # 推理脚本
└── requirements.txt        # 项目依赖列表

模型转换

转换现有模型

pip install transformers[torch]>=4.23

ct2-transformers-converter --model openai/whisper-large-v3 \
--output_dir whisper-large-v3-ct2 \
--copy_files tokenizer.json preprocessor_config.json \
--quantization float16

加载转换后的模型

# 从本地目录加载
model = faster_whisper.WhisperModel("whisper-large-v3-ct2")

# 从Hugging Face Hub加载
model = faster_whisper.WhisperModel("username/whisper-large-v3-ct2")

社区集成

项目已被多个开源项目集成使用:

  • faster-whisper-server:OpenAI兼容的服务器实现
  • WhisperX:提供说话人分离和精确词级时间戳
  • whisper-ctranslate2:命令行客户端工具
  • Open-Lyrics:生成.lrc歌词文件的工具

开发与贡献

项目使用标准的Python包结构,支持开发模式安装和测试:

# 安装开发依赖
pip install -e .[dev]

# 运行测试
pytest tests/

项目遵循MIT开源协议,欢迎开发者提交Issue和Pull Request来共同改进项目。

性能对比图表

通过使用faster-whisper,开发者可以显著提升语音转录任务的效率,特别是在处理大量音频数据或需要实时转录的场景中表现出色。项目的模块化设计也便于集成到现有的语音处理流水线中。

【免费下载链接】faster-whisper 【免费下载链接】faster-whisper 项目地址: https://gitcode.com/gh_mirrors/fas/faster-whisper

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐