Whisper ist OpenAIs Speech-to-Text Modell trainiert auf 680.000 Stunden multilingualer Audio. Es zeigt: Training auf vielfältigen, schwach-gelabelten Daten skaliert besser als saubere, kurierte Datensätze.
Das traditionelle ASR Problem
Vorher waren Spracherkennungssysteme:
Traditioneller ASR:
1. Sammle saubere, gelabelte Audio (teuer)
2. Trainiere auf eine Sprache
3. Funktioniert perfekt in dieser Sprache
4. Scheitert bei Akzenten, Hintergrundgeräuschen, anderen Sprachen
Whispers Insight: Weak Supervision at Scale
Whisper Ansatz:
1. Sammle 680.000 Stunden Video-Audio von YouTube
2. Nutze bestehende Closed-Caption System für Labels
3. Diese sind NICHT hand-gelabelt, können Fehler haben
4. Trainiere großes Modell auf diese imperfekten Daten
Ergebnis:
- Modell lernt von Lärm, Akzenten, Hintergrund
- Generalisiert besser als saubere-Daten Modelle
- Funktioniert in 99 Sprachen!
Das ist die Scale über Quality Strategie.
Training-Daten
Multilingual Audio von YouTube:
English: 117.000 Stunden
Spanish: 32.000 Stunden
German: 15.000 Stunden
Russian: 11.000 Stunden
Chinese: 12.000 Stunden
French: 12.000 Stunden
... (99 Sprachen insgesamt)
Total: 680.000 Stunden = 97 Jahre kontinuierliche Audio
Gesammelt ohne manuelle Labelung!
Architektur
Encoder:
- Input: 16 kHz Audio (STFT)
- Output: 1500-dim Hidden State
- 24 Transformer Blöcke
- 4 Attention Heads pro Layer
Decoder:
- Autoregressive Transformer
- Generiert Tokens nacheinander
- Bedingt durch Encoder Output
Special Tokens:
- <|startoftranscript|>
- <|en|> (Language Token)
- <|transcribe|> oder <|translate|>
Multi-Task Training
Whisper trainierte auf mehreren Tasks:
Task 1: Transcription (English only)
Task 2: Speech Recognition (Multilingual)
Task 3: Speech Translation (zu English)
Special tokens kontrollieren Aufgabe:
- <|transcribe|> → Transkription
- <|translate|> → Translation
Modell-Größen
Model | Parameter | Speed | Accuracy
------|-----------|-------|----------
Tiny | 39M | ~10x | 85%
Base | 74M | ~8x | 89%
Small | 244M | ~6x | 91%
Med. | 769M | ~2x | 92%
Large | 1.5B | 1x | 94%
Speed = relativ zu real-time speech
Performance
Genauigkeit auf Test-Sets:
English (Clean Audio):
- Human Baseline: 95%
- Whisper-Large: 96% (besser als Menschen!)
Multilingual:
- Whisper: 80-85% Genauigkeit über 99 Sprachen
Mit Hintergrundlärm:
- Whisper-Large: 92% auch mit 10dB Lärm
Praktische Deployment
from faster_whisper import WhisperModel
model = WhisperModel("base")
segments, info = model.transcribe("audio.mp3")
for segment in segments:
print(segment.text)
Limitationen
Whisper kann nicht:
- Mehrere Sprecher gut handhaben
- Speaker Identification
- Speaker Diarization
- Reliabel zwischen Non-English Sprachen übersetzen
