Benchmarks
Ein RTF (Echtzeitfaktor) unter 1,0 bedeutet schneller als Echtzeit.
Apple Silicon (MLX + CoreML)
Alle Benchmarks auf M2 Max, 64 GB, macOS 14 mit Release-Builds und kompilierter metallib.
ASR — Wortfehlerrate
Ausgewertet auf LibriSpeech test-clean (2620 Äußerungen, ~5,4 Stunden englischer Lesesprache).
| Modell | Bits | Größe | WER% | RTF |
|---|---|---|---|---|
| Qwen3-ASR 1.7B | 8-Bit | 2,3 GB | 2,35 | 0,090 |
| Qwen3-ASR 1.7B | 4-Bit | 1,2 GB | 2,57 | 0,045 |
| Parakeet TDT 0.6B | INT8 | 634 MB | 2,74 | 0,089 |
| Qwen3-ASR 0.6B | 8-Bit | 960 MB | 2,80 | 0,025 |
| Qwen3-ASR 0.6B | 4-Bit | 675 MB | 3,34 | 0,023 |
Vergleich mit veröffentlichten Modellen
| Modell | Parameter | Größe | Präzision | WER% | Quelle |
|---|---|---|---|---|---|
| Qwen3-ASR 1.7B | 1,7B | 2,3 GB | 8-Bit | 2,35 | Dieser Benchmark |
| Whisper Large v3 Turbo | 809M | 1,6 GB | FP16 | 2,5 | OpenAI (2024) |
| Qwen3-ASR 1.7B | 1,7B | 1,2 GB | 4-Bit | 2,57 | Dieser Benchmark |
| Whisper Large v3 | 1,5B | 3,1 GB | FP16 | 2,7 | OpenAI (2023) |
| Parakeet TDT 0.6B | 600M | 634 MB | INT8 | 2,74 | Dieser Benchmark |
| Qwen3-ASR 0.6B | 600M | 960 MB | 8-Bit | 2,80 | Dieser Benchmark |
| Whisper Medium | 769M | 1,5 GB | FP16 | 3,0 | OpenAI (2022) |
| Qwen3-ASR 0.6B | 600M | 675 MB | 4-Bit | 3,34 | Dieser Benchmark |
| Whisper Small | 244M | 483 MB | FP16 | 3,4 | OpenAI (2022) |
Langzeitstabilität (anhaltende Neural-Engine-Last)
200 LibriSpeech-Äußerungen sequenziell verarbeitet (~30 min Audio, M2 Max). Testet, ob WER oder Latenz unter dauerhafter Transkription nachlassen.
| Metrik | Erste 25% | Letzte 25% | Gesamt |
|---|---|---|---|
| WER% | 1,30 | 1,23 | 2,43 |
| RTF | 0,672 | 0,400 | 0,539 |
Keine Verschlechterung festgestellt. Die WER bleibt über die gesamte Sitzung stabil. Der RTF verbessert sich sogar, während CoreML seinen Execution-Plan-Cache aufwärmt. Kein Thermal Throttling nach 42 Minuten kontinuierlicher Neural-Engine-Inferenz. Parakeet verarbeitet jeden Chunk unabhängig — keine Zustandsakkumulation über Chunks hinweg.
Mehrsprachige Ergebnisse (FLEURS)
Für CJK-Sprachen wird die CER verwendet (keine Wortgrenzen). Parakeet unterstützt ~25 europäische Sprachen (kein CJK).
| Sprache | Metrik | Qwen3 4-Bit | Qwen3 8-Bit | Parakeet INT8 |
|---|---|---|---|---|
| Spanisch | WER | 6,44 | 5,06 | 5,18 |
| Englisch | WER | 6,57 | 5,64 | 9,30 |
| Chinesisch | CER | 8,41 | 7,71 | — |
| Deutsch | WER | 9,45 | 6,81 | 12,33 |
| Französisch | WER | 11,42 | 8,50 | 13,02 |
| Japanisch | CER | 16,11 | 8,64 | — |
| Russisch | WER | 16,35 | 10,52 | 11,49 |
| Koreanisch | WER | 19,95 | 6,89 | — |
| Hindi | WER | 25,93 | 18,57 | — |
| Arabisch | WER | 33,47 | 20,31 | — |
Kompressions-Delta
Genauigkeitsverlust durch Quantisierung auf geringere Bitbreiten.
| Variante | WER% | Substitutionen | Einfügungen | Löschungen | Gesamtfehler | Größe |
|---|---|---|---|---|---|---|
| Qwen3 0.6B 8-Bit | 2,80 | 1111 | 92 | 268 | 1471 | 960 MB |
| Qwen3 0.6B 4-Bit | 3,34 | 1323 | 123 | 308 | 1754 | 675 MB |
| Delta | +0,54 | +212 | +31 | +40 | +283 | -30% |
| Parakeet TDT INT8 | 2,74 | 990 | 125 | 308 | 1423 | 634 MB |
Qwen3-ASR 1.7B 8-Bit erreicht 2,35 % WER — übertrifft Whisper Large v3 Turbo (2,5 %) und Whisper Large v3 (2,7 %) und läuft dabei mit 11-facher Echtzeit auf Apple Silicon.
TTS — Round-Trip-Verständlichkeit
Text synthetisieren, dann das Audio mit Qwen3-ASR 0.6B zurück transkribieren und die WER gegenüber dem Originaltext berechnen. Ausgewertet auf 30 eingebauten englischen Konversationssätzen.
| Engine | Modell | Parameter | Größe | WER% | RTF |
|---|---|---|---|---|---|
| CosyVoice3 | 0.5B 4-Bit | 500M | ~1,9 GB | 3,25 | 0,59 |
| Qwen3-TTS | 1.7B 4-Bit | 1,7B | ~2,3 GB | 3,47 | 0,79 |
| Qwen3-TTS | 1.7B 8-Bit | 1,7B | ~3,5 GB | 3,66 | 0,85 |
| Kokoro-82M | CoreML | 82M | ~170 MB | 3,90 | 0,17 |
| Qwen3-TTS | 0.6B 8-Bit | 600M | ~960 MB | 9,74 | 0,76 |
| Qwen3-TTS | 0.6B 4-Bit | 600M | ~675 MB | 15,58 | 0,76 |
Latenzaufschlüsselung (Qwen3-TTS)
| Stufe | Zeit | % gesamt | Beschreibung |
|---|---|---|---|
| Embed | 1–3 ms | <1% | Text-Embedding (TTFT) |
| Generate | 2–6 s | ~92% | Autoregressive Codec-Tokens |
| Decode | 244–457 ms | ~8% | Codec-Decoder zur Wellenform |
Alle TTS-Engines laufen schneller als Echtzeit (RTF < 1,0). CosyVoice3 führt bei der Verständlichkeit (3,25 % WER). Kokoro ist am schnellsten (RTF 0,17) bei nur 170 MB.
VAD — Erkennungsgenauigkeit
FLEURS-Auswertung (10 Sprachen, 250 Dateien)
Ausgewertet gegen die Referenz-Ground-Truth des Python-FireRedVAD bei gleichem Schwellenwert.
| Engine | Parameter | Backend | F1% | FAR% | MR% | RTF |
|---|---|---|---|---|---|---|
| FireRedVAD | 588K | CoreML (ANE) | 99,12 | 2,52 | 0,47 | 0,007 |
| Silero v5 | 309K | CoreML (ANE) | 95,13 | 15,76 | 1,89 | 0,022 |
| Silero v5 | 309K | MLX (GPU) | 95,11 | 15,85 | 1,89 | 0,027 |
| Pyannote | 1,5M | MLX (GPU) | 94,86 | 14,71 | 2,92 | 0,358 |
VoxConverse-Auswertung (mehrere Sprecher)
5 Mehrsprecher-Konversationsdateien ausgewertet bei 10 ms Frame-Auflösung.
| Engine | Parameter | Backend | F1% | FAR% | MR% | RTF |
|---|---|---|---|---|---|---|
| Pyannote | 1,5M | MLX (GPU) | 98,22 | 50,09 | 0,19 | 0,358 |
| Silero v5 | 309K | CoreML (ANE) | 97,52 | 33,29 | 2,69 | 0,022 |
| Silero v5 | 309K | MLX (GPU) | 95,98 | 21,02 | 5,88 | 0,027 |
| FireRedVAD | 588K | CoreML (ANE) | 94,21 | 40,12 | 5,05 | 0,007 |
Vergleich mit veröffentlichten Zahlen
| Modell | F1% | FAR% | MR% | Parameter | Datensatz |
|---|---|---|---|---|---|
| Pyannote (unsere) | 98,22 | 50,09 | 0,19 | 1,5M | VoxConverse |
| FireRedVAD (Paper) | 97,57 | 2,69 | 3,62 | 588K | FLEURS-VAD-102 |
| Silero (unsere) | 95,98 | 21,02 | 5,88 | 309K | VoxConverse |
| Silero-VAD (Paper) | 95,95 | 9,41 | 3,95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (unsere) | 94,21 | 69,33 | 5,05 | 588K | VoxConverse |
FireRedVAD erreicht 99,12 % F1 auf FLEURS mit der niedrigsten Fehlalarmrate (2,52 %) und läuft mit 135-facher Echtzeit. Silero v5 bietet die beste Streaming-Option mit 32 ms pro Chunk.
Sprechereinbettungen
Extraktionslatenz
20-Sekunden-Audioclip, 10 Iterationen nach Aufwärmen.
| Modell | Dim | Backend | Latenz |
|---|---|---|---|
| CAM++ (3D-Speaker) | 192 | CoreML (ANE) | 12 ms |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 ms |
| WeSpeaker ResNet34-LM | 256 | CoreML (ANE) | 143 ms |
Embedding-Qualität (VoxConverse)
Kosinusähnlichkeit zwischen segmentebenen Embeddings aus 5 Mehrsprecheraufnahmen. Höhere Trennung = bessere Sprecherunterscheidung.
| Modell | Backend | Intra-Sprecher | Inter-Sprecher | Trennung |
|---|---|---|---|---|
| WeSpeaker | MLX | 0,726 | 0,142 | 0,584 |
| WeSpeaker | CoreML | 0,726 | 0,143 | 0,582 |
| CAM++ | CoreML | 0,723 | 0,395 | 0,328 |
Alle drei Engines erreichen die Python-pyannote-Referenz (0,577 Trennung, Kosinusähnlichkeit >0,96). WeSpeaker erzielt 0,584 Trennung auf MLX und CoreML. CAM++ läuft 5x schneller (12 ms vs. 65 ms) bei guter Trennung (0,328).
Quellentrennung — SDR
Signal-to-Distortion Ratio (SDR) auf MUSDB18-HQ (50 Tracks in voller Länge im Test, Stereo 44,1 kHz). Höher ist besser. Zwei Modellgrößen: HQ (8,9M Parameter/Stem) und L (28,3M Parameter/Stem).
| Ziel | UMX-HQ (MLX) | UMX-L (MLX) | UMX-HQ (veröffentlicht) |
|---|---|---|---|
| Vocals | 6,23 dB | ~10,5 dB | 6,32 dB |
| Drums | 6,44 dB | ~7,0 dB | 5,73 dB |
| Bass | 4,56 dB | ~5,5 dB | 5,23 dB |
| Other | 3,41 dB | ~4,5 dB | 4,02 dB |
| Modell | Parameter/Stem | Größe | RTF | Geschwindigkeit |
|---|---|---|---|---|
| Open-Unmix HQ | 8,9M | 136 MB | 0,23 | 4,3-fache Echtzeit |
| Open-Unmix L | 28,3M | 432 MB | 0,21 | 4,8-fache Echtzeit |
UMX-HQ erreicht die veröffentlichten SDR-Werte für Vocals und Drums mit einem leichtgewichtigen 8,9M-Modell. UMX-L liefert +2–4 dB Verbesserung bei dreifacher Modellgröße. Beide enthalten mehrkanalige Wiener-EM-Nachfilterung und laufen schneller als Echtzeit auf Apple Silicon.
Reproduktion
# ASR-Benchmarks (LibriSpeech test-clean)
make build
python scripts/benchmark_asr.py --batch --engine qwen3 --model 0.6B
python scripts/benchmark_asr.py --batch --engine qwen3 --model 0.6B-8bit
python scripts/benchmark_asr.py --batch --engine parakeet
python scripts/benchmark_asr.py --batch --engine parakeet --model int8
# ASR mehrsprachig (FLEURS, automatischer Download)
python scripts/benchmark_asr.py --dataset fleurs --language en_us --batch
# TTS Round-Trip
python scripts/benchmark_tts.py --compare
# VAD-Vergleich
python scripts/benchmark_vad.py --compare
# Sprechereinbettungs-Vergleich
python scripts/benchmark_speaker.py --compare
# Quellentrennung (MUSDB18-HQ, Download von Zenodo)
python scripts/benchmark_separation.py --data-dir benchmarks/data/musdb18-hq