Das Self-Hosting von Whisper kann Transkriptionen auf Hardware ermöglichen, die Sie kontrollieren, aber „lokal“ bedeutet nicht automatisch „privat“. Eine zuverlässige Einrichtung besteht aus vier Teilen: einer geeigneten Whisper-Implementierung, heruntergeladenen Modell-Dateien, einer reproduzierbaren Audio-Pipeline und einer Sicherheitsbarriere, die temporäre Dateien, Protokolle, Backups und jede von Ihnen bereitgestellte lokale API abdeckt.
Dieser Leitfaden stellt Ihnen drei aktuelle Wege vor: das Referenz-Python-Paket von OpenAI, faster-whisper für optimierte Python-Inferenz und whisper.cpp für eine ressourcenschonende C/C++-Bereitstellung. Die unten aufgeführten Befehle und Modellhinweise wurden am 28. August 2026 anhand der offiziellen Dokumentationen der Projekte geprüft.
Kurze Empfehlung
- Beginnen Sie mit OpenAI Whisper, wenn Sie die Referenzimplementierung und die einfachste offizielle CLI wünschen.
- Wählen Sie faster-whisper, wenn Sie einen Python-Dienst, Batching, Quantisierung oder integrierte Spracherkennung (VAD) benötigen.
- Wählen Sie whisper.cpp, wenn Sie eine kompakte native Build-Version, Apple-Silicon-Unterstützung, eine CPU-fokussierte Bereitstellung, ein offizielles Docker-Image oder einen kleinen lokalen HTTP-Server wünschen.
Was das Self-Hosting von Whisper bedeutet – und was nicht
Whisper ist ein Spracherkennungsmodell und eine Open-Source-Codebasis. Wenn Sie eine Implementierung auf Ihrem eigenen Computer ausführen, kann der Inferenzschritt erfolgen, ohne die Aufnahme an eine gehostete Transkriptions-API zu senden. Sobald die erforderlichen Pakete und Modellressourcen vorhanden sind, kann die Transkription auch ohne aktive Internetverbindung erfolgen.
Dies ist eine nützliche Datenschutzbarriere, aber kein vollständiges Sicherheitsprogramm. Eine lokale Inferenz sichert nicht automatisch temporäre Dateien, Befehlshistorien, Anwendungsprotokolle, exportierte Transkripte, Betriebssystem-Backups, freigegebene Ordner oder einen Dienst, der auf einem Netzwerkport lauscht. Modell-Installer können beim ersten Abruf eines Modellnamens auch Gewichte herunterladen.
Bevor Sie einen Workflow als „offline“ bezeichnen, testen Sie ihn mit deaktivierter Netzwerkverbindung und bestätigen Sie Folgendes:
- die Anwendung startet, ohne zu versuchen, ein Paket oder Modell abzurufen;
- das ausgewählte Modell wird von einem bekannten lokalen Pfad geladen;
- Eingabeaudio und generierter Text bleiben in genehmigten Verzeichnissen;
- temporäre Dateien werden gemäß Ihrer Aufbewahrungsrichtlinie gelöscht; und
- kein HTTP-Server über die von Ihnen vorgesehene Schnittstelle hinaus erreichbar ist.
Wählen Sie die Implementierung, bevor Sie ein Modell auswählen
Alle drei Wege führen Whisper-Familienmodelle aus, aber sie haben nicht identische Abhängigkeiten, Befehlsnamen, Modellformate oder Leistungsmerkmale. Wählen Sie die Laufzeitumgebung, die zu Ihrer Betriebsumgebung passt, anstatt einen Befehl zu kopieren, der für eine andere Implementierung geschrieben wurde.
| Implementierung | Beste Eignung | Hauptabhängiges Modell | Wichtige Barriere |
|---|---|---|---|
| OpenAI Whisper | Referenz-CLI und Python-API | Python, PyTorch, FFmpeg | Wählen Sie den richtigen PyTorch-CPU/CUDA-Build |
| faster-whisper | Optimierte Python-Dienste, Batching, INT8, VAD | Python und CTranslate2 | GPU-Bibliotheksanforderungen variieren je nach installierter Version |
| whisper.cpp | Native CPU/Apple-Builds, Quantisierung, Docker, lokaler Server | CMake und ein unterstützter Compiler | Verwendet konvertierte GGML-Modell-Dateien und andere CLI-Namen |
Wählen Sie ein Modell und dimensionieren Sie die Hardware
OpenAI listet derzeit sechs Modellgrößen. In der README werden der ungefähre VRAM-Bedarf und die relative Geschwindigkeit angegeben, gemessen auf einer bestimmten Referenz-GPU. Diese Zahlen sind für eine erste Einschätzung nützlich, stellen aber keine Garantien dar: Der tatsächliche Speicherbedarf und die Geschwindigkeit hängen von der Implementierung, der Präzision, der Batch-Größe, der Beam-Größe, der Sprache, der Audiodauer und der Hardware ab.
| Offizieller Modellname | Parameter | Ungefährer VRAM in der Tabelle von OpenAI | Praktischer Ausgangspunkt |
|---|---|---|---|
| tiny | 39 M | ~1 GB | Schneller Prototyp oder ressourcenbeschränktes Gerät |
| base | 74 M | ~1 GB | Leichte englische oder mehrsprachige Transkription |
| small | 244 M | ~2 GB | Ausgewogener CPU- oder moderater GPU-Prototyp |
| medium | 769 M | ~5 GB | Mehrsprachige Arbeit mit höherer Genauigkeit |
| large | 1.550 M | ~10 GB | Maximale Kapazität des Referenzmodells, wenn die Hardware dies zulässt |
| turbo | 809 M | ~6 GB | Schnelle Transkription, aber keine Übersetzung |
Die Tabelle von OpenAI beschreibt turbo im Vergleichstest als etwa achtmal so schnell wie large. Verstehen Sie dies nicht als Versprechen, dass es auf jedem Computer „achtmal schneller“ ist. Turbo ist nicht für Übersetzungen trainiert. Wenn die Aufgabe darin besteht, nicht-englisch gesprochene Sprache ins Englische zu übersetzen, empfiehlt OpenAI stattdessen ein mehrsprachiges Modell wie medium oder large.
Für rein englische Aufnahmen können die .en-Varianten von tiny, base, small und medium getestet werden. Für die Produktionsgrößenwahl führen Sie dieselbe repräsentative Datei mit zwei Kandidatenmodellen aus und erfassen den Spitzen-Speicherverbrauch, die reale Laufzeit, Transkriptionsfehler und die Korrekturzeit.
System und eine saubere Testdatei vorbereiten
Erstellen Sie ein eigenes Projektverzeichnis und eine virtuelle Umgebung, damit Paketversionen sichtbar und rückgängig machbar sind. Wenn Sie die Python-Implementierung von OpenAI mit einer GPU verwenden, wählen Sie den aktuellen PyTorch-Befehl für Ihr Betriebssystem und Ihre CUDA-Konfiguration aus dem offiziellen PyTorch-Installer. Vermeiden Sie es, eine veraltete CUDA-Wheel-URL aus einem Tutorial zu kopieren.
OpenAI Whisper benötigt das Kommandozeilen-Tool FFmpeg. Installieren Sie es über einen unterstützten Paketmanager oder die offizielle FFmpeg-Downloadseite und überprüfen Sie anschließend:
ffmpeg -version
python --version
FFmpeg ist keine universell zwingend erforderliche Abhängigkeit für jede Whisper-Implementierung. Zum Beispiel kann whisper.cpp unterstützte Eingaben über seine eigenen Beispiel-Tools dekodieren, während eine optionale FFmpeg-Integration die Formatsunterstützung erweitert. Um eine vorhersehbare 16-kHz-Mono-16-Bit-WAV-Testdatei für whisper.cpp zu erstellen, verwenden Sie:
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav
Verwenden Sie eine kurze, mit Einverständnis erstellte Probe, die einen Namen, eine Zahl, zwei Sprecher, eine kurze Stille und einen domänenspezifischen Begriff enthält. Diese einzige Testdatei wird mehr Bereitstellungsprobleme aufdecken als ein perfekt reiner Demo-Clip.
Weg 1: OpenAI Whisper installieren
Öffnen Sie ein Terminal in Ihrem Projektverzeichnis, erstellen Sie eine virtuelle Umgebung, aktivieren Sie diese und installieren Sie das aktuelle Paket:
python -m venv .venv
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
# macOS oder Linux
source .venv/bin/activate
pip install -U openai-whisper
Führen Sie die erste Transkription mit der offiziellen CLI aus:
whisper audio.mp3 --model turbo
Beim ersten Ausführen wird möglicherweise das ausgewählte Modell heruntergeladen. Überprüfen Sie anschließend, ob die erwarteten Ausgabedateien erstellt wurden, und vergleichen Sie mehrere Zeitstempel mit dem Quellaudio. Geben Sie bei nicht-englischer Transkription in derselben Sprache die Sprache an, wenn die automatische Erkennung unzuverlässig ist:
whisper japanese.wav --language Japanese --model turbo
Für Übersetzungen ins Englische verwenden Sie turbo nicht:
whisper japanese.wav --model medium --language Japanese --task translate
Ein minimaler Python-Aufruf ist ebenso direkt:
import whisper
model = whisper.load_model("turbo")
result = model.transcribe("audio.mp3")
print(result["text"])
Weg 2: faster-whisper installieren
faster-whisper führt Whisper-Modelle über CTranslate2 aus. Es ist nützlich, wenn Sie eine Python-Integration mit konfigurierbarer Präzision, Batching, Wort-Zeitstempeln oder integrierter VAD-Filterung wünschen.
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\Activate.ps1
pip install faster-whisper
Beginnen Sie mit einem expliziten Gerät und Computertyp, anstatt einen GPU-Pfad vorauszusetzen:
from faster_whisper import WhisperModel
model = WhisperModel("small", device="cpu", compute_type="int8")
segments, info = model.transcribe(
"audio.mp3",
beam_size=5,
vad_filter=True,
)
print("Erkannte Sprache:", info.language)
for segment in segments:
print(f"[{segment.start:.2f} - {segment.end:.2f}] {segment.text}")
Die zurückgegebenen Segmente werden lazy generiert, daher iterieren Sie über sie, um die Transkription durchzuführen. Bei einer NVIDIA-Bereitstellung folgen Sie den GPU-Bibliotheksanforderungen des aktuellen faster-whisper-Repositorys und überprüfen Sie die installierten Versionen, anstatt sich auf eine ältere CUDA/CUDNN-Kombination aus einem Blogpost zu verlassen.
Benchmarks benötigen ihre Bedingungen. Das faster-whisper-Projekt berichtet derzeit über ein Beispiel, bei dem large-v2 mit INT8 auf einer RTX 3070 Ti 8GB 2.926 MB verwendete, mit einer Beam-Größe von 5 und dem im Repository angegebenen Software-Stack. Dieses Ergebnis zeigt eine getestete Konfiguration; es ist kein Versprechen, dass jedes Modell, jede GPU, jede Batch-Größe oder jede Audiodatei den gleichen Speicherverbrauch aufweist.
Weg 3: whisper.cpp bauen
Das aktuelle Projekt befindet sich unter ggml-org/whisper.cpp und verwendet CMake in seinem dokumentierten Quickstart. Klonen Sie das Repository, laden Sie ein konvertiertes Modell herunter und bauen Sie die CLI:
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
sh ./models/download-ggml-model.sh base.en
cmake -B build
cmake --build build -j --config Release
Führen Sie eine Transkription mit einem expliziten Modellpfad aus:
./build/bin/whisper-cli \
--model models/ggml-base.en.bin \
--file output.wav
Unter Windows kann sich die ausführbare Datei in einem konfigurationsspezifischen Ordner wie build\bin\Release befinden. Verwenden Sie whisper-cli --help aus dem tatsächlichen Build-Output, um die Flags für Ihre Version zu bestätigen.
whisper.cpp unterstützt auch quantisierte GGML-Modelle, die Speicher und Festplattenplatz reduzieren können. Quantisierung kann Qualität und Geschwindigkeit verändern, vergleichen Sie daher einen quantisierten Kandidaten mit seinem nicht-quantisierten Gegenstück auf Ihrer eigenen Testdatei, bevor Sie ihn standardisieren.
Eine Air-Gapped-Bereitstellung vorbereiten
Ein Air-Gapped-System kann keine fehlenden Python-Wheels, GPU-Bibliotheken, Modellgewichte, VAD-Ressourcen oder Container-Layer abrufen. Erstellen Sie zuerst eine vollständige Manifestdatei auf einer verbundenen Staging-Maschine.
- Notieren Sie Betriebssystem, CPU-Architektur, GPU-Modell, Treiberversion und Python-Version.
- Laden Sie die exakten Pakete, Modell-Dateien, das optionale VAD-Modell und ihre Prüfsummen herunter.
- Übertragen Sie die Ressourcen über den genehmigten Prozess Ihrer Organisation.
- Installieren Sie von lokalen Pfaden und konfigurieren Sie ein explizites lokales Modellverzeichnis.
- Trennen Sie die Netzwerkverbindung vor dem Abnahmetest.
- Transkribieren Sie die Testdatei, bestätigen Sie die Ausgaben und überwachen Sie fehlgeschlagene Verbindungsversuche.
Gehen Sie nicht davon aus, dass ein erfolgreicher erster Online-Lauf eine Offline-Bereitstellung beweist. Er könnte einen benutzerbezogenen Cache gefüllt haben, der unter einem Dienstkonto oder in einem neuen Container nicht existiert. Testen Sie mit derselben Identität, denselben Verzeichnissen und derselben Startmethode, die in der Produktion verwendet werden.
Eine lokale API oder einen Docker-Dienst sicher ausführen
whisper.cpp enthält whisper-server, einen HTTP-Server mit einem OpenAI-ähnlichen Transkriptions-Endpunkt. Bauen Sie das Projekt zuerst und untersuchen Sie dann die aktuellen Optionen des Servers:
./build/bin/whisper-server --help
./build/bin/whisper-server \
--host 127.0.0.1 \
--port 8080 \
--model models/ggml-base.en.bin
Binden Sie den Dienst an localhost, es sei denn, eine andere Maschine benötigt tatsächlich Zugriff. Die Docker-Dokumentation warnt davor, dass veröffentlichte Ports außerhalb des Hosts erreichbar sein können, wenn sie breit gebunden werden. Wenn Sie Transkriptionen absichtlich in einem LAN bereitstellen, fügen Sie Authentifizierung, TLS, Anfragesize-Limits, Timeouts, Upload-Isolierung und eine Aufbewahrungsrichtlinie hinzu; ein lokaler Prozess ist keine Zugriffskontrollschicht.
Das whisper.cpp-Projekt veröffentlicht auch Projekt-Docker-Images. Sichern Sie das Modellverzeichnis, damit ein neu erstellter Container die Ressourcen nicht erneut herunterlädt:
docker run --rm \
-v /absolute/path/models:/models \
-v /absolute/path/audio:/audios \
ghcr.io/ggml-org/whisper.cpp:main \
"whisper-cli -m /models/ggml-base.en.bin -f /audios/output.wav"
Fixieren Sie für die Produktion einen Image-Digest oder eine geprüfte Release-Version. Behandeln Sie Community-Wrapper als separate Projekte: Überprüfen Sie deren Repository, API-Schema, Image-Publisher, Lizenz, Update-Rhythmus und Standard-Netzwerkeinstellungen, anstatt sie als offizielle OpenAI-Dienste darzustellen.
VAD verwenden, ohne echte Sprache zu verbergen
Lange Nicht-Sprachpassagen können bei automatisierten Transkriptionen unerwünschte Ausgaben erzeugen. Die Spracherkennung (Voice Activity Detection) kann Bereiche, die vor dem Dekodieren als Stille oder Nicht-Sprache eingestuft werden, überspringen und so unnötige Rechenarbeit und einige stillenbezogene Fehler reduzieren. Sie kann nicht garantieren, dass jede Halluzination verschwindet, und aggressive Schwellenwerte können leise Wörter entfernen.
faster-whisper stellt Silero VAD über vad_filter=True bereit. Beginnen Sie mit den Standardeinstellungen des Projekts und testen Sie anschließend Pausen, leise Sprecher, Musik und verrauschte Aufnahmen, bevor Sie die Parameter ändern.
Die aktuelle whisper.cpp-Dokumentation bietet ein herunterladbares Silero-Modell und explizite VAD-Flags:
./models/download-vad-model.sh silero-v6.2.0
./build/bin/whisper-cli \
--file output.wav \
--model models/ggml-base.en.bin \
--vad \
--vad-model models/ggml-silero-v6.2.0.bin
Überprüfen Sie die Schnittpunkte anhand der Wellenform. Wenn die erste Silbe nach einer Pause verschwindet, reduzieren Sie die Aggressivität oder fügen Sie um die erkannte Sprache herum Puffer hinzu, anstatt ein optisch saubereres, aber unvollständiges Transkript zu akzeptieren.
Ausgaben, Zeitstempel und Qualität validieren
Ein Befehl, der erfolgreich beendet wird, reicht nicht aus. Bewahren Sie das ursprüngliche Quellaudio auf und überprüfen Sie das Transkript mit einer kleinen Akzeptanz-Checkliste:
- Vollständigkeit: Sind das erste und letzte Wort vorhanden? Wurden leise Sätze abgeschnitten?
- Namen und Zahlen: Überprüfen Sie Personen, Produkte, Daten, Maße und Mengen.
- Sprache: Bestätigen Sie die erkannte Sprache und ob die Aufgabe Transkription oder Übersetzung war.
- Zeitstempel: Suchen Sie nach mehreren Segmentgrenzen und überprüfen Sie die Übereinstimmung.
- Verhalten bei Stille: Untersuchen Sie lange Pausen auf wiederholte oder erfundene Sätze.
- Reproduzierbarkeit: Halten Sie die Implementierungsversion, das Modell, die Präzision, die Flags, die Hardware und die Laufzeit fest.
Für Untertitel legen Sie eine Richtlinie für die Zeilenlänge fest und überprüfen Sie die endgültige SRT- oder VTT-Datei in einem Player. Für durchsuchbare Notizen behalten Sie Zeitstempel oder Segment-IDs bei, damit ein Prüfer zum Audio zurückkehren kann. Trennen Sie bei sensiblen Materialien die unveränderliche Quellaufnahme vom generierten Text und wenden Sie auf beide eine definierte Aufbewahrungsfrist an.
Wenn Sie einen Offline-Workflow von der Aufnahme bis zur Transkription aufbauen, sehen Sie sich auch an, wie Offline-KI-Edge-Verarbeitung funktioniert und den Vergleich von Offline-KI-Sprachaufnahmegeräten.
Häufige Fehler beheben
| Symptom | Wahrscheinliche Prüfung | Nächste Aktion |
|---|---|---|
| FFmpeg nicht gefunden | Die ausführbare Datei fehlt oder ist nicht im PATH | Führen Sie ffmpeg -version in derselben Shell aus und korrigieren Sie den PATH |
| CUDA ist nicht verfügbar | Nur CPU-PyTorch oder inkompatible GPU-Bibliotheken | Verwenden Sie den Live-PyTorch-Auswähler und die projektspezifischen GPU-Anforderungen |
| Speicherfehler (Out-of-memory) | Modell, Präzision, Batch oder gleichzeitige Jobs überschreiten den Speicher | Versuchen Sie ein kleineres Modell, eine geringere Batch-Größe oder einen unterstützten quantisierten Computertyp |
| whisper.cpp lehnt Audio ab | Nicht unterstütztes Format für das gebaute Beispiel | Konvertieren Sie in 16 kHz Mono 16-Bit WAV oder bauen Sie breitere Dekodierungsunterstützung |
| Wiederholter Text in Stille | Nicht-Sprache hat den Dekodierer erreicht | Testen Sie VAD, überprüfen Sie die Schnittpunkte und vergleichen Sie Modell-/Dekodierungseinstellungen |
| Übersetzung gibt die Quellsprache zurück | Turbo wurde für eine Übersetzungsaufgabe verwendet | Verwenden Sie ein mehrsprachiges Modell wie medium oder large mit --task translate
|
| Offline-Start versucht herunterzuladen | Ein Modell, Wheel, VAD-Asset oder Container-Layer fehlt | Vervollständigen Sie das Asset-Manifest und testen Sie unter der Produktionsidentität |
Häufig gestellte Fragen
Kann Whisper vollständig offline laufen?
Ja, die Inferenz kann ohne Internetverbindung laufen, nachdem die erforderliche Software und die Modell-Assets lokal gespeichert wurden. Beweisen Sie die Grenze, indem Sie mit deaktiviertem Netzwerk testen und auf fehlende Downloads, temporäre Dateien, Protokolle und offene Dienste prüfen.
Welche Whisper-Implementierung sollte ich selbst hosten?
Verwenden Sie OpenAI Whisper für die Referenz-Python-CLI, faster-whisper für einen optimierten Python-Dienst mit Quantisierung oder VAD und whisper.cpp für einen nativen Build, quantisierte GGML-Modelle, Apple/CPU-Bereitstellung, Docker oder seinen integrierten lokalen Server.
Benötigt Whisper FFmpeg?
Die Python-Implementierung von OpenAI benötigt das FFmpeg-Kommandozeilen-Tool. Das macht FFmpeg nicht für jede Implementierung zwingend erforderlich: whisper.cpp hat seinen eigenen unterstützten Dekodierungspfad und eine optionale FFmpeg-Integration für breitere Formate.
Wie viel VRAM benötigt das Turbo-Modell?
Die Modelltabelle von OpenAI listet für Turbo ungefähr 6 GB auf. Behandeln Sie dies als Planungsschätzung für die Referenzimplementierung; der tatsächliche Verbrauch ändert sich mit Laufzeit, Präzision, Batch-Größe, Hardware und gleichzeitigen Arbeitslasten.
Kann das Turbo-Modell Sprache ins Englische übersetzen?
Nein. OpenAI gibt an, dass Turbo nicht für die Übersetzung trainiert wurde. Verwenden Sie ein mehrsprachiges Modell wie medium oder large, wenn Sie nicht-englische Sprache ins Englische übersetzen.
Verhindert VAD jede Whisper-Halluzination?
Nein. VAD kann die an das Modell gesendete Nicht-Sprache reduzieren und möglicherweise stillenbezogene Ausgaben reduzieren, aber es kann auch leise Sprache entfernen, wenn es zu aggressiv konfiguriert ist. Validieren Sie Schwellenwerte und Segmentgrenzen anhand repräsentativer Audioaufnahmen.
Ist eine lokale Whisper-API standardmäßig privat?
Nein. Lokale Verarbeitung vermeidet eine gehostete Transkriptions-API, aber der Dienst benötigt dennoch eine Schnittstellenbindung, Authentifizierung bei gemeinsamer Nutzung, verschlüsselte Übertragung, wo angemessen, Upload-Isolierung, Protokollierungssteuerungen und eine Aufbewahrungsrichtlinie.
Offizielle Quellen geprüft am 28. August 2026

0 Kommentare