Login

Eine optimierte Implementierung der Whisper-Spracherkennung basierend auf CTranslate2, 4x schneller und mit geringerem Speicherbedarf als das Original

MITPython 17.0kSYSTRANfaster-whisper Last Updated: 2025-06-02

Detaillierte Beschreibung des Faster-Whisper-Projekts

Projektübersicht

Faster-Whisper ist eine Neuimplementierung des OpenAI Whisper-Modells, die CTranslate2 als schnelle Inferenz-Engine nutzt. Im Vergleich zur Originalversion openai/whisper ist es bei gleicher Genauigkeit bis zu 4-mal schneller und verbraucht gleichzeitig weniger Speicher. Durch die 8-Bit-Quantisierungstechnologie kann die Effizienz auf CPUs und GPUs weiter gesteigert werden.

Kernfunktionen

🚀 Leistungsvorteile

  • Geschwindigkeitssteigerung: Bis zu 4-mal schneller als das Original-Whisper
  • Speicheroptimierung: Geringerer Speicherverbrauch
  • Quantisierungsunterstützung: Unterstützt 8-Bit-Quantisierung zur weiteren Leistungssteigerung
  • Stapelverarbeitung: Unterstützt Stapeltranskription zur Erhöhung des Durchsatzes

🛠️ Technische Merkmale

  • Basiert auf der CTranslate2 Inferenz-Engine
  • Unterstützt GPU- und CPU-Ausführung
  • Kompatibel mit den Original-Whisper-Modellen
  • Unterstützt verschiedene Präzisionsmodi (FP16, FP32, INT8)
  • Integrierte Audio-Dekodierung (kein FFmpeg erforderlich)

Leistungsvergleich

GPU-Benchmark (NVIDIA RTX 3070 Ti 8GB)

Leistungsvergleich für die Transkription von 13 Minuten Audio:

Implementierung Präzision Beam Size Zeit GPU-Speicherverbrauch
openai/whisper fp16 5 2m23s 4708MB
whisper.cpp (Flash Attention) fp16 5 1m05s 4127MB
faster-whisper fp16 5 1m47s 3244MB
faster-whisper int8 5 1m33s 2926MB

CPU-Benchmark (Intel Core i7-12700K)

Implementierung Präzision Beam Size Zeit Speicherverbrauch
openai/whisper fp32 5 6m58s 2335MB
whisper.cpp fp32 5 2m05s 1049MB
faster-whisper fp32 5 2m37s 2257MB
faster-whisper int8 5 1m42s 1477MB

Installationsanleitung

Systemanforderungen

  • Python 3.9 oder höher
  • Für die GPU-Ausführung ist die Unterstützung der NVIDIA CUDA-Bibliotheken erforderlich.

Grundinstallation

pip install faster-whisper

GPU-Unterstützung Installation

NVIDIA-Bibliotheken müssen installiert werden:

  • CUDA 12.x
  • cuDNN 9.x
  • cuBLAS
pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*
export LD_LIBRARY_PATH=`python3 -c 'import os; import nvidia.cublas.lib; import nvidia.cudnn.lib; print(os.path.dirname(nvidia.cublas.lib.__file__) + ":" + os.path.dirname(nvidia.cudnn.lib.__file__))'`

Docker-Methode

# Offizielles NVIDIA CUDA-Image verwenden
docker run --gpus all -it nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04

Nutzungsleitfaden

Grundlegende Transkription

from faster_whisper import WhisperModel

model_size = "large-v3"

# GPU-Ausführung (FP16)
model = WhisperModel(model_size, device="cuda", compute_type="float16")

# Oder GPU-Ausführung (INT8)
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")

# Oder CPU-Ausführung (INT8)
# model = WhisperModel(model_size, device="cpu", compute_type="int8")

segments, info = model.transcribe("audio.mp3", beam_size=5)

print("Erkannte Sprache '%s', Wahrscheinlichkeit %f" % (info.language, info.language_probability))

for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

Stapeltranskription

from faster_whisper import WhisperModel, BatchedInferencePipeline

model = WhisperModel("turbo", 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))

Wortgenaue Zeitstempel

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

for segment in segments:
    for word in segment.words:
        print("[%.2fs -> %.2fs] %s" % (word.start, word.end, word.word))

Spracherkennung (VAD)

# VAD-Filter aktivieren
segments, _ = model.transcribe("audio.mp3", vad_filter=True)

# Benutzerdefinierte VAD-Parameter
segments, _ = model.transcribe(
    "audio.mp3",
    vad_filter=True,
    vad_parameters=dict(min_silence_duration_ms=500),
)

Distil-Whisper-Unterstützung

from faster_whisper import WhisperModel

model_size = "distil-large-v3"
model = WhisperModel(model_size, device="cuda", compute_type="float16")

segments, info = model.transcribe(
    "audio.mp3", 
    beam_size=5, 
    language="en", 
    condition_on_previous_text=False
)

for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

Modellkonvertierung

Konvertierung von Transformers

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

Laden benutzerdefinierter Modelle

# Laden aus lokalem Verzeichnis
model = WhisperModel("whisper-large-v3-ct2")

# Laden vom Hugging Face Hub
model = WhisperModel("username/whisper-large-v3-ct2")

Anwendungsbereiche

  • Spracherkennung (Sprache-zu-Text)
  • Echtzeit-Transkription
  • Untertitelgenerierung
  • Mehrsprachige Übersetzung
  • Sprachanalyse
  • Audio-Inhaltsindizierung

Konfiguration und Optimierung

Logging-Konfiguration

import logging

logging.basicConfig()
logging.getLogger("faster_whisper").setLevel(logging.DEBUG)

Tipps zur Leistungsoptimierung

  • GPU-Beschleunigung für optimale Leistung nutzen
  • Passenden Präzisionsmodus je nach Hardware wählen
  • Stapelverarbeitung zur Erhöhung des Durchsatzes
  • VAD-Filter aktivieren, um die Verarbeitungszeit zu reduzieren
  • Beam Size und Batch Size sinnvoll einstellen

Thread-Konfiguration

# CPU-Thread-Anzahl festlegen
OMP_NUM_THREADS=4 python3 my_script.py

Technische Architektur

Kernkomponenten

  • CTranslate2: Schnelle Inferenz-Engine
  • PyAV: Audio-Dekodierungsbibliothek
  • Silero VAD: Spracherkennungs-Engine (Voice Activity Detection)
  • Transformers: Modellkonvertierungsunterstützung

Unterstützte Modelle

  • OpenAI Whisper-Reihe (tiny, base, small, medium, large-v1/v2/v3)
  • Distil-Whisper-Reihe
  • Benutzerdefinierte feinabgestimmte Modelle

Community und Support

Zusammenfassung

Faster-Whisper ist eine leistungsstarke Spracherkennungslösung, die durch die Optimierung der Inferenz-Engine eine signifikante Geschwindigkeitssteigerung erreicht, bei gleichbleibender Genauigkeit im Vergleich zum Original-Whisper. Seine umfangreichen Funktionen, die gute Ökosystem-Unterstützung und die benutzerfreundliche API machen es zur idealen Wahl für Spracherkennungsanwendungen. Sowohl Entwickler als auch Forscher können mit Faster-Whisper schnell effiziente Sprachverarbeitungsanwendungen entwickeln.

Star History Chart