Vollständige Benchmark-Tabelle: Whisper-Performance auf Apple Silicon (M1–M5)
| Chip | Tiny | Base | Small | Medium | Large-v3 |
|---|---|---|---|---|---|
| M1 | 32× | 20× | 12× | 5× | — |
| M1 Pro | 38× | 24× | 16× | 7× | — |
| M1 Max | 45× | 30× | 22× | 10× | — |
| M1 Ultra | 55× | 38× | 28× | 14× | — |
| M2 | 36× | 23× | 14× | 6× | — |
| M2 Pro | 42× | 28× | 20× | 9× | — |
| M2 Max | 50× | 35× | 26× | 12× | — |
| M2 Ultra | 60× | 42× | 32× | 17× | — |
| M3 | 40× | 26× | 16× | 7× | — |
| M3 Pro | 46× | 32× | 22× | 10× | — |
| M3 Max | 55× | 40× | 30× | 14× | — |
| M4 | 44× | 30× | 18× | 8× | — |
| M4 Pro | 50× | 36× | 26× | 12× | — |
| M4 Max | 60× | 44× | 34× | 16× | — |
| M5 (base) | 48× | 34× | 22× | 10× | — |
| M5 Pro | 55× | 40× | 30× | 14× | — |
| M5 Max | 65× | 48× | 38× | 18× | — |
×N Realzeit = N Sekunden Audio in 1 Sekunde transkribiert. Benchmarks via whisper.cpp mit Metal-Beschleunigung. Alle M1 Pro+ können large-v3 in Realzeit oder schneller ausführen.
Whisper-Modellgrößen – Welches sollten Sie wählen?
| Modell | Parameter | Festplattengröße | RAM-Verwendung | Englisch WER | Am besten für |
|---|---|---|---|---|---|
| — | — | — | — | — | — |
| — | — | — | — | — | — |
| — | — | — | — | — | — |
| — | — | — | — | — | — |
| — | — | — | — | — | — |
| — | — | — | — | — | — |
| — | — | — | — | — | — |
WER (Word Error Rate) im LibriSpeech-Testsatz auf Englisch. Large-v3-turbo und distil-large-v3 sind das ideale Gleichgewicht für Echtzeit auf den meisten Macs — nahezu large-v3-Qualität mit 4–6× Geschwindigkeit.
Metal vs Core ML vs Apple Neural Engine: Welches Backend?
Apple Silicon bietet drei Beschleunigungswege für Whisper. Jedes hat Nachteile.
Metal (via whisper.cpp) – Empfohlen: Nutzt Apple Metal GPU Framework, kompatibel mit allen M-Series-Chips, 10–12× Realzeit auf large-v3 (M5 Pro), Setup via make WHISPER_METAL=1. Am besten für: die meisten Benutzer, einfachstes Setup, bewährte Performance.
Core ML (via Apple Core ML Format) – Fortgeschritten: Nutzt Apple Machine-Learning-Framework, kann Neural Engine (ANE) für einige Operationen ansprechen, 15–20% schneller bei einigen Workloads, erfordert Modellkonvertierung (10–15 Min. Setup). Am besten für: Power-Benutzer, die maximale Geschwindigkeit wollen.
Apple Neural Engine (ANE) – Begrenzte Verwendung: Dedizierter KI-Beschleuniger auf allen M-Series-Chips, nicht direkt zugänglich (muss über Core ML laufen), Whisper nutzt ANE nicht vollständig aufgrund von Architektur-Inkompatibilität, funktioniert am besten bei kleinen Modellen (tiny, base). Am besten für: tiny/base Whisper auf batteriegestützten Laptops.
Entscheidungsmatrix: Erstes Setup → Metal (whisper.cpp). Maximale Geschwindigkeit auf large-v3 → Metal (whisper.cpp). Akku-Laptop, Base-Modell → Core ML mit ANE. Produktionsserver → Metal (bewährt, zuverlässig). Echtzeit-Transkription → Metal mit Streaming-Modus. Cloud-Deployment auf Mac-Instanzen → Metal (containerisierbar).
- Metal (whisper.cpp): Schneller, weit verbreitet kompatibel, einfachstes Setup
- Core ML: Neural Engine Optimierung, 15–20% Geschwindigkeitszugewinn bei einigen Workloads (erfordert Konvertierung)
- Apple Neural Engine: Begrenzte Vorteile für große Modelle, am besten für tiny/base auf Laptops
Setup: whisper.cpp mit Metal-Beschleunigung
- 1Abhängigkeiten installieren
Why it matters: xcode-select --install (Xcode-Tools) brew install ffmpeg (Audio-Konvertierung) - 2whisper.cpp mit Metal klonen und bauen
Why it matters: git clone https://github.com/ggerganov/whisper.cpp cd whisper.cpp make WHISPER_METAL=1 ./main -h | grep -i metal - 3Ein Modell herunterladen
Why it matters: bash ./models/download-ggml-model.sh small (466 MB, Echtzeit) bash ./models/download-ggml-model.sh large-v3 (3 GB, beste Qualität) bash ./models/download-ggml-model.sh large-v3-turbo (1,6 GB, ausgeglichen) - 4Eine Audiodatei transkribieren
Why it matters: ./main -m models/ggml-large-v3.bin -f /path/to/audio.wav ./main -m models/ggml-large-v3.bin -f audio.wav -oj (JSON) ./main -m models/ggml-large-v3.bin -f audio.wav -l en (Sprache angeben) - 5Nicht-WAV-Audio zuerst konvertieren
Why it matters: ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav ./main -m models/ggml-large-v3.bin -f output.wav
Echtzeit-Streaming-Transkription (Live-Mikrofon)
Für Live-Transkription vom Mikrofon – Sprachassistenten, Meeting-Transkription, Barrierefreiheits-Tools.
Option 1: whisper.cpp Stream-Modus
./stream -m models/ggml-small.bin --step 500 --length 5000
# --step 500: verarbeite alle 500ms
# --length 5000: behalte letzte 5 Sekunden Kontext
Option 2: Python mit faster-whisper (siehe Code-Block unten)
Latenz auf M5 Pro: small-Modell ~200ms, large-v3-turbo ~400–600ms, large-v3 ~800ms–1,2s hinter Realzeit.
import sounddevice as sd
import numpy as np
from faster_whisper import WhisperModel
model = WhisperModel("large-v3-turbo", device="cpu", compute_type="int8")
buffer = []
chunk_duration = 3
sample_rate = 16000
def callback(indata, frames, time, status):
buffer.append(indata.copy())
if len(buffer) * 1024 / sample_rate >= chunk_duration:
audio = np.concatenate(buffer).flatten().astype(np.float32)
segments, _ = model.transcribe(audio, beam_size=5)
for segment in segments:
print(segment.text)
buffer.clear()
with sd.InputStream(callback=callback, channels=1, samplerate=sample_rate):
print("Listening... (Ctrl+C to stop)")
while True:
sd.sleep(1000)Voice-Assistant-Pipeline: Whisper + Ollama + Piper TTS
Vollständiger Code für einen lokalen Sprachassistenten, der vollständig auf Apple Silicon läuft.
import sounddevice as sd
import numpy as np
import requests
import subprocess
from faster_whisper import WhisperModel
WHISPER_MODEL = "large-v3-turbo"
OLLAMA_URL = "http://localhost:11434/api/chat"
LLM_MODEL = "llama3.1:8b"
SAMPLE_RATE = 16000
whisper = WhisperModel(WHISPER_MODEL, device="cpu", compute_type="int8")
def record_audio(duration=5):
print("Listening...")
audio = sd.rec(int(duration * SAMPLE_RATE),
samplerate=SAMPLE_RATE,
channels=1,
dtype=np.float32)
sd.wait()
return audio.flatten()
def transcribe(audio):
segments, _ = whisper.transcribe(audio, beam_size=5)
return " ".join([seg.text for seg in segments])
def llm_respond(user_text):
response = requests.post(OLLAMA_URL, json={
"model": LLM_MODEL,
"messages": [{"role": "user", "content": user_text}],
"stream": False
})
return response.json()["message"]["content"]
def speak(text):
subprocess.run(
["piper", "--model", "en_US-amy-medium.onnx"],
input=text.encode(),
check=True
)
while True:
audio = record_audio(duration=5)
user_text = transcribe(audio)
print(f"You: {user_text}")
if not user_text.strip():
continue
response = llm_respond(user_text)
print(f"AI: {response}")
speak(response)Beste Whisper-Konfiguration nach Mac-Modell
| Mac-Konfiguration | Empfohlenes Modell | Realzeit-Mehrfach | Use Case |
|---|---|---|---|
| — | — | — | — |
| — | — | — | — |
| — | — | — | — |
| — | — | — | — |
| — | — | — | — |
| — | — | — | — |
| — | — | — | — |
Für Echtzeit-Sprachassistenten: Verwenden Sie small oder large-v3-turbo für niedrigste Latenz. Für Meeting-/Podcast-Transkription: Verwenden Sie large-v3 für maximale Genauigkeit (1–2 Sekunden Verzögerung akzeptabel).
Lokal Whisper vs Cloud Speech-to-Text Services
| Metrik | Whisper Lokal (M5 Pro) | Google Speech-to-Text | OpenAI Whisper API | AssemblyAI |
|---|---|---|---|---|
| — | — | — | — | — |
| — | — | — | — | — |
| — | — | — | — | — |
| — | — | — | — | — |
| — | — | — | — | — |
| — | — | — | — | — |
| — | — | — | — | — |
Monatliche Kosten (8 Stunden/Tag): Whisper lokal 0 €, Google 259 €, OpenAI 65 €, AssemblyAI 117 €. Für datenschutzsensible Arbeit (medizinisch, legal, Journalismus) ist lokal Whisper die einzige Option. Für hochvolumige Transkription (>75 €/Monat Cloud) amortisiert sich ein lokaler Mac in 12 Monaten.
Ist Whisper schneller als Cloud-APIs?
Lokal auf M5 Pro: 10× Realzeit (100ms Latenz). Cloud-APIs: 100–500ms Latenz aufgrund von Netzwerk. Lokal ist schneller und kostenlos.
Kann Whisper mehrere Sprecher verarbeiten?
Ja, Zeitstempel trennen Sprecher. Verwenden Sie Post-Processing oder Diarisierungs-Tools, um Sprecheridentität zu identifizieren.
Welche Sprachunterstützung gibt es?
99 Sprachen mit Auto-Erkennung. Genauigkeit variiert je nach Sprache – Englisch ist 2,5% WER, andere Sprachen 5–15% WER.
Welches Whisper-Modell hat das beste Verhältnis zwischen Geschwindigkeit und Qualität?
Large-v3-turbo oder distil-large-v3. Beide erreichen ~95% der large-v3 Genauigkeit mit 4–6× Geschwindigkeit. Für die meisten Echtzeit-Use Cases empfohlen.
Kann Whisper akzentuiertes Englisch oder Nicht-Muttersprachler handhaben?
Ja, aber WER steigt. Englisch ohne Akzent: ~2,5%. Starker Akzent/nicht muttersprachlich: 5–12%. Large-v3 handhabe Akzente besser als kleinere Modelle.
Funktioniert Whisper für Podcasts und Musiktranskription?
Podcasts: Ja, hervorragend für gesprochenes Wort. Musik mit Text: schlecht – Whisper wird für Sprache trainiert. Verwenden Sie spezialisierte Modelle für Musik.
Wie präzise ist Whisper bei technischer Terminologie?
Variable. Häufige technische Begriffe: gut. Hochspezialisierte Begriffe: könnten falsch transkribiert werden. Verwenden Sie --prompt-Flag mit erwarteter Vokabeln, um Genauigkeit zu verbessern.
Kann ich mehrere Whisper-Instanzen auf einem Mac ausführen?
Ja, speichergebunden. M5 Pro 36GB: 2 gleichzeitige large-v3 Instanzen. M5 Max 128GB: 4–6 Instanzen oder eine Instanz plus LLM/TTS.