🗓 Save the Date KI-Snack Week 2026 – Das KI-Event für Macher & Entscheider · 09.–13. November 2026 · München + Online Jetzt anmelden →
Tipps & Tricks

Effiziente lokale Audio-Transkription mit Faster-Whisper und Python

6 min Lesezeit
Effiziente lokale Audio-Transkription mit Faster-Whisper und Python

Die Umwandlung von Audio in Text ist eine häufige Anforderung für Entwickler, sei es beim Erstellen einer Sprach-zu-Text-App, der Analyse von Besprechungsaufzeichnungen oder dem Hinzufügen von Untertiteln zu Videos. Die lokale Durchführung (auf dem eigenen Computer) schützt die Privatsphäre und vermeidet wiederkehrende Kosten für Cloud-Dienste.

Einführung

In diesem Artikel erfahren Sie, wie Sie ein schnelles, lokales Transkriptionssystem mit Whisper und seiner optimierten Version Faster-Whisper einrichten. Wir werden die Audio-Vorverarbeitung, wie die Umwandlung von MP3 in WAV, das Schreiben eines Python-Skripts und die Ausführung sowohl auf CPUs als auch auf GPUs behandeln. Wenn Sie mehr über die lokale Ausführung erfahren möchten, lesen Sie wie Sie ein Echtzeit-Sprach-zu-Sprach-AI-Modell lokal ausführen.

Was ist Whisper? Und warum eine lokale Variante verwenden?

Whisper von OpenAI ist ein Modell zur automatischen Spracherkennung (ASR). Es wurde mit einer großen Menge mehrsprachiger Audiodaten trainiert und erzielt auch bei Hintergrundgeräuschen oder unterschiedlichen Akzenten gute Ergebnisse.

Allerdings kann das ursprüngliche Whisper auf einer CPU langsam sein und benötigt viel Speicher. Hier kommen optimierte Varianten ins Spiel.

  • whisper.cpp ist in C++ geschrieben und hat keine schweren Abhängigkeiten. Es ist sehr schnell auf CPUs, erfordert jedoch eine Kompilierung und ist weniger Python-freundlich.
  • Faster-Whisper ist eine Neuimplementierung, die CTranslate2 verwendet. Sie läuft bis zu 4× schneller als das ursprüngliche Whisper, benötigt weniger RAM und funktioniert nahtlos mit Python. In diesem Tutorial verwenden wir Faster-Whisper.

Beide Varianten laufen zu 100 % lokal; keine Daten verlassen Ihren Computer.

Einrichten Ihrer Umgebung (Plattformübergreifend)

Dieses Setup funktioniert auf Windows, macOS und Linux mit Python 3.8 oder höher. Erstellen und aktivieren Sie eine virtuelle Umgebung (optional, aber empfohlen):

python -m venv whisper_env

Aktivieren Sie die virtuelle Umgebung auf macOS und Linux:

source whisper_env/bin/activate

Auf Windows:

whisper_env\Scripts\activate

Installieren Sie Faster-Whisper:

pip install faster-whisper

Installation von Audio-Vorverarbeitungstools

Whisper erwartet Audio im Format 16 kHz Mono WAV. Um gängige Formate (MP3, M4A, OGG usw.) zu konvertieren, benötigen wir FFmpeg und die Python-Bibliothek pydub.

Installieren Sie FFmpeg:

  • Windows: Laden Sie es von FFmpeg.org herunter und fügen Sie es zu PATH hinzu oder verwenden Sie winget install ffmpeg.
  • macOS: brew install ffmpeg
  • Linux (Ubuntu/Debian): sudo apt install ffmpeg

Installieren Sie dann pydub:

pip install pydub

Optionale GPU-Unterstützung

Wenn Sie eine NVIDIA-GPU haben und schnellere Transkriptionen wünschen, installieren Sie cuBLAS und cuDNN gemäß der GPU-Anleitung von Faster-Whisper. Andernfalls fällt der Code automatisch auf die CPU zurück.

Audio-Vorverarbeitung: Konvertierung von Nicht-WAV-Dateien

Die meisten Audio-Dateien, die Sie antreffen, sind keine rohen WAV-Dateien. Sie verwenden Kompression (MP3) oder Containerformate (M4A). Sie müssen sie in 16 kHz, Mono, PCM WAV konvertieren, bevor Sie sie Whisper übergeben.

Im Folgenden finden Sie eine Python-Funktion, die pydub verwendet (welches FFmpeg im Hintergrund aufruft), um diese Konvertierung durchzuführen.

from pydub import AudioSegment
import os

def convert_to_wav(input_path, output_path=None):
    """
    Konvertiert jede Audio-Datei (MP3, M4A, OGG usw.) in WAV (16 kHz, Mono).
    Wenn output_path None ist, wird die Erweiterung im selben Ordner durch .wav ersetzt.
    """
    if output_path is None:
        base, _ = os.path.splitext(input_path)
        output_path = base + ".wav"
    audio = AudioSegment.from_file(input_path)
    audio = audio.set_channels(1).set_frame_rate(16000)
    audio.export(output_path, format="wav")
    return output_path

Beispiel für die Verwendung:

wav_file = convert_to_wav("meeting.mp3")
print(f"Konvertiert zu: {wav_file}")

Grundlegendes Transkriptionsskript mit Faster-Whisper

Nun schreiben wir ein vollständiges Python-Skript, das ein Whisper-Modell lädt, eine WAV-Datei transkribiert und das Ergebnis ausgibt.

from faster_whisper import WhisperModel

def transcribe_audio(wav_path, model_size="base", device="cpu"):
    """
    Transkribiert eine WAV-Datei (16 kHz Mono) mit Faster-Whisper.
    model_size: "tiny", "base", "small", "medium", "large-v2", "large-v3"
    device: "cpu" oder "cuda" (wenn GPU verfügbar)
    """
    model = WhisperModel(model_size, device=device, compute_type="int8")
    segments, info = model.transcribe(wav_path, beam_size=5, language="en")
    print(f"Erkannte Sprache: {info.language} (Wahrscheinlichkeit: {info.language_probability:.2f})")
    print("\nTranskription:")
    for segment in segments:
        print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")
    full_text = " ".join([seg.text for seg in segments])
    return full_text

if __name__ == "__main__":
    text = transcribe_audio("my_recording.wav", model_size="small", device="cpu")

Was passiert im obigen Code?

  • WhisperModel lädt das gewählte Modell (z. B. small) beim ersten Ausführen in ~/.cache/huggingface/hub.
  • beam_size=5 balanciert Genauigkeit und Geschwindigkeit. Höhere Werte (z. B. 10) sind langsamer, aber genauer.
  • compute_type="int8" verwendet 8-Bit-Ganzzahlmathematik für schnellere Inferenz. Für die GPU können Sie „float16“ ausprobieren.

Konvertierung von MP3 in Transkript: Ein vollständiges Beispiel

Hier ist ein vollständiges Skript, das jede Audio-Datei in WAV konvertiert und sie dann transkribiert.

import os
from pydub import AudioSegment
from faster_whisper import WhisperModel

def convert_to_wav(input_path):
    """Konvertiert jedes Audio in 16kHz Mono WAV."""
    audio = AudioSegment.from_file(input_path)
    audio = audio.set_channels(1).set_frame_rate(16000)
    wav_path = os.path.splitext(input_path)[0] + ".wav"
    audio.export(wav_path, format="wav")
    return wav_path

def transcribe_file(audio_path, model_size="base", device="cpu"):
    if not audio_path.lower().endswith(".wav"):
        print(f"Konvertiere {audio_path} in WAV...")
        audio_path = convert_to_wav(audio_path)
    print(f"Lade Modell '{model_size}' auf {device.upper()}...")
    model = WhisperModel(model_size, device=device, compute_type="int8")
    segments, info = model.transcribe(audio_path, beam_size=5)
    print(f"\nSprache: {info.language} (Wahrscheinlichkeit: {info.language_probability:.2f})")
    print("\nTranskript:")
    for seg in segments:
        print(seg.text, end=" ", flush=True)
    print()  # finale neue Zeile

if __name__ == "__main__":
    transcribe_file("interview.mp3", model_size="small", device="cpu")

Speichern Sie dies als transcribe.py und führen Sie es aus:

python transcribe.py

Das Skript lädt das Modell einmal, konvertiert die Datei und gibt das Transkript aus.

Fazit

Sie haben nun ein lokales, schnelles und datenschutzfreundliches Audio-Transkriptionssystem. Einige wichtige Erkenntnisse:

  • Faster-Whisper bietet nahezu Echtzeit-Transkription auf einer CPU und hervorragende Geschwindigkeit auf einer GPU.
  • Verarbeiten Sie Audio immer vor, um 16 kHz Mono WAV mit pydub und FFmpeg zu erhalten.
  • Der Parameter model_size tauscht Genauigkeit gegen Geschwindigkeit aus – beginnen Sie mit „base“ oder „small“.
  • Die lokale Ausführung bedeutet keine API-Schlüssel, keine Datenfreigabe und keine monatlichen Gebühren.

Probieren Sie verschiedene Whisper-Modellgrößen für bessere Genauigkeit aus. Fügen Sie Sprecherdiarisierung (Identifizierung, wer wann gesprochen hat) mit Bibliotheken wie pyannote.audio hinzu. Erstellen Sie eine einfache Weboberfläche mit Gradio oder Streamlit.

Shittu Olumide ist Software-Ingenieur und technischer Autor, der leidenschaftlich daran interessiert ist, modernste Technologien zu nutzen, um fesselnde Geschichten zu erzählen, mit einem scharfen Blick für Details und einem Talent dafür, komplexe Konzepte zu vereinfachen. Sie können Shittu auch auf Twitter finden.

© 2026 Guiding Tech Media | Über | Kontakt | Werbung | Datenschutz | Nutzungsbedingungen

„`

Bildquelle: ai-generated-gemini

🚀
KI-Snack Week 2026 · 09.–13. November
Das KI-Event für Macher & Entscheider
2 Tage live in München + 3 Tage Online-Masterclasses · Jetzt Ticket sichern
Mehr erfahren →
KI Snack