
Echtzeit-Streaming mit Whisper: Leitfaden für latenzarme Speech-to-Text (2026)
Eric King
Author
Echtzeit-Streaming mit Whisper: Leitfaden für latenzarme Speech-to-Text
OpenAI Whisper ist ein Open-Source-Spracherkennungsmodell mit hoher Genauigkeit und breiter Mehrsprachenunterstützung. Obwohl Whisper ursprünglich nicht für Streaming entwickelt wurde, kannst du mit der richtigen Pipeline latzenarme Echtzeit-Speech-to-Text-Systeme aufbauen – ideal für Live-Untertitel, Meeting-Transkription, Livestreams und Sprachassistenten.
Dieser Leitfaden zeigt, wie du Whisper in Echtzeit einsetzen kannst – inklusive Architektur, Techniken, Trade-offs und Beispielcode.
Warum Streaming schwierig ist
Klassisches Whisper arbeitet mit vollständigen Audiosegmenten, nicht mit kontinuierlichen Streams. Herausforderungen sind unter anderem:
- Inkrementelles Decoding – Umgang mit Teil-Audio
- Geringe Latenz – Ergebnisse schnell liefern
- Artefakte an Chunk-Grenzen
- GPU-Auslastung vs. Reaktionsfähigkeit
Um diese Hürden zu überwinden, verwendest du Sliding Windows + Overlap und inkrementelles Buffering.
Architektur-Überblick
Echtzeit-Streaming mit Whisper nutzt typischerweise die folgenden Komponenten:
Audio Source → Audio Buffer → Segmenter → Whisper Inference → Post-processing → Consumer
- Audio Source – Mikrofon / Browser / Telefonie
- Segmenter – erstellt sich überlappende Chunks
- Whisper Inference – GPU/CPU-Modelle
- Post-processing – Text mit Timestamps zusammenführen
Segmentierung für geringe Latenz
Du empfängst kontinuierlich Audio vom Client. Um zu vermeiden, zu lange Datenblöcke zu verarbeiten:
- Window-Länge: 1–5 Sekunden
- Overlap: 0,5–1 Sekunde
- Buffer-Größe: hängt von den Latenzanforderungen ab
Ein kleineres Window bedeutet geringere Latenz, aber mehr Overhead.
Modelle für Streaming auswählen
| Model | VRAM | Latency | Accuracy |
|---|---|---|---|
| tiny | 1–2 GB | ⭐⭐⭐⭐ | ❌ |
| base | 2–4 GB | ⭐⭐⭐ | ⭐⭐ |
| small | 4–8 GB | ⭐⭐ | ⭐⭐⭐ |
| medium | 8–12 GB+ | ⭐ | ⭐⭐⭐⭐ |
Bester Kompromiss für Streaming:
base oder smallBasic Streaming Workflow (Pseudo Code)
import whisper
import sounddevice as sd
import numpy as np
model = whisper.load_model("small").to("cuda")
BUFFER = []
WINDOW = 3 # seconds
OVERLAP = 1 # seconds
RATE = 16000
def callback(indata, frames, time, status):
global BUFFER
BUFFER.extend(indata.flatten().tolist())
# When buffer length > window, process
if len(BUFFER) >= RATE * WINDOW:
segment = BUFFER[:RATE * WINDOW]
BUFFER = BUFFER[int(RATE * (WINDOW - OVERLAP)):]
audio = np.array(segment)
result = model.transcribe(audio, fp16=True)
print("--- partial →", result["text"])
Dieser Code gibt kontinuierlich partielle Transkripte aus und nutzt die Überlappung wieder.
Overlaps & Stitching handhaben
Overlap reduziert verlorene Wörter an Segmentgrenzen.
Zum Beispiel:
Segmente:
- 0–3 s
- 2–5 s
- 4–7 s
Dann:
- Überlappende Textduplikate entfernen
- Timestamps anpassen
- Kontinuierlichen Stream erzeugen
Echtzeit im Browser
Du kannst Audio im Browser mit WebRTC oder der Web Audio API streamen:
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const processor = audioContext.createScriptProcessor(4096, 1, 1);
source.connect(processor);
processor.connect(audioContext.destination);
processor.onaudioprocess = (e) => {
const chunk = e.inputBuffer.getChannelData(0);
sendToServer(chunk); // WebSocket/Socket.io
};
Deployment-Patterns
☁️ Serverless (Cloud)
- Clients senden Audio über WebSockets
- AWS Lambda (kurze Audios) / GPU-Server
- Whisper läuft auf einer GPU-Instanz
- Skalierung über Auto-Scaling
🖥️ Dedizierter GPU-Server
- Persistente GPU
- Geringere Latenz
- Am besten für 24/7-Services
🌀 Hybrid
- Edge erfasst Audio + kleines Modell als Vorfilter
- Weiterleitung an GPU für vollständige Transkription
Latenz reduzieren
🟡 1. Kleinere Window-Größen verwenden
Weniger Batching → schnellere partielle Ergebnisse
🔵 2. Buffer überlappen
Weniger verlorene Wörter
🟢 3. FP16 / BF16 verwenden
Schnellere Inferenz
🔴 4. Mehrere Nutzer batchen
Wenn der Server viele Streams verarbeitet, erhöht Batching den Durchsatz
Monitoring & Metriken
Überwache:
- Latenz pro Segment
- Word Error Rate (WER)
- GPU-Auslastung
- Partielle vs. finale Genauigkeit
Nutze Prometheus / Grafana für Dashboards.
Trade-offs
| Goal | Tradeoff |
|---|---|
| Niedrige Latenz | Weniger Kontext → geringere Genauigkeit |
| Hohe Genauigkeit | Größere Windows → höhere Latenz |
| Kleines Modell | Schneller, weniger genau |
| Großes Modell | Langsamer, genauer |
Beispiel-Use-Cases
- Live-Untertitel für Livestreams
- Meeting- oder Vorlesungs-Transkription
- Interaktive Voice-Apps
- Konferenz- und Webinar-Services
Fazit
Echtzeit-Streaming mit Whisper ist absolut machbar – aber du musst ein Gleichgewicht finden zwischen:
- Window-Größe
- Overlap
- Modellgröße
- Hardware-Performance
Mit dem richtigen Design erreichst du latenzarme, genaue Streaming-Transkription, die sich für produktive Umgebungen eignet.
