Automatische vertaling · Engels origineel
Prestatiemetingen
RTF (real-time factor) onder 1,0 betekent sneller dan real-time.
Apple Silicon (MLX + CoreML)
Alle benchmarks op Apple M5 Pro, 48 GB, macOS 25.5 met release builds en gecompileerde metallib. Elke motor draait in een afzonderlijk kindproces (asr-bench --isolated) zodat de Peak RSS-kolom de werkelijke kosten per motor is, niet een sequentiële hoogwatermarkering.
ASR
Geëvalueerd op LibriSpraaktestreiniger, eerste 200 uitingen (~30 min van Engels gelezen toespraak). WER berekend via een Whisper-style normalizer + Levenshtein over whitespace tokens. De Qwen3-ASR 5-bit rijen werden gemeten op een 100-utterance-subset van dezelfde armatuur op M-serie (toegevoegd bij landing van de 5-bitsvariant); dezelfde normalizer, dezelfde dataset.
| Motor | Kwant | WER% | RTF | xRT | Piek RSS |
|---|---|---|---|---|---|
| Qwen3-ASR 1.7B MLX | 5-bit | 1.32 | 0.027 | 36.4× | 1,92 GB |
| Qwen3-ASR 1.7B MLX | 8-bit | 1.52 | 0.033 | 30.5× | 2,7 GB |
| Qwen3-ASR 0,6B MLX | 8-bit | 1.82 | 0.015 | 66.0× | 1,3 GB |
| Qwen3-ASR 0,6B MLX | 5-bit | 1.74 | 0.014 | 70.5× | 1,03 GB |
| WhisperKit Large-v3 Turbo | FP16 | 1.71 | 0.084 | 11.9× | 0,4 GB |
| WhisperASR native CoreML | FP16 | 1.40 | 0.089 | 14.0× | 384 MB |
| Qwen3-ASR 0,6B MLX | 4-bit | 2.20 | 0.012 | 85.6× | 1,0 GB |
| Parakeet TDT v3 | INT8 | 2.37 | 0.009 | 117.4× | 0,9 GB |
| Qwen3-ASR 0,6B CoreML | INT8 | 3.02 | 0.098 | 10.2× | 1,4 GB |
| Omnilingual CTC 300M MLX | 4-bit | 4.26 | 0.005 | 222.1× | 0,4 GB |
| Omnilingual CTC 300M CoreML | INT8 | 5.67 | 0.128 | 7.8× | 0,5 GB |
| Nemotron Streaming | INT8 | 2.82 | 0.058 | 17.1× | 961 MB |
Hoofdlijn picks: Qwen3-ASR MLX z 1.7B 5-bit is de nieuwe nauwkeurigheid leider op 1.32% WER Verslaat WhisperKit Large-v3 Turbo (1.71%) en onze eigen 1.7B 8-bit (1.52%) tijdens het gebruik van ~600 MB minder piek RSS dan 8-bit en draait 23% Sneller. Parakeet TDT v3 is de snelste voor alleen Engels (117× real time, 25 Niet-linguale CTC 300G MLX 4-bit is de meertalige verwerkingsleider: 222× real time, 384 MB piek, 1 672 talen.
De Qwen3-ASR 0.6B CoreML rij weerspiegelt de herbouwde blok-aandachts-encoder (aufklarer/Qwen3-ASR-CoreML) De vorige uitvoer liep ontmaskerd wereldwijde zelf-aandacht over nul-gewatteerde mel en uitgestoten <|im_end|> direct na de eerste zin-eindperiode (24.88% WER op dezelfde armatuur voor de herbouw).
Heb je een gerichte beslissingsgids nodig? Zie Qwen3-ASR vs Whisper: nauwkeurigheid, snelheid en geheugen.
Diarisatie wordt afzonderlijk gemeten in acht talen: zie diarisatiebenchmarks voor luidsprekers voor DER en afspraak voor luidsprekers Community-1, NVIDIA Sortformer, MOSS en de spraakcloud API.
Long-form stabiliteit (duurzaam Neural Engine belasting)
200 LibriSpraakuitdrukkingen die achtereenvolgens worden verwerkt (~30 min audio, M5 Pro). Testen of WER of latentie afbreken onder aanhoudende transcriptie.
| Metrisch | Eerste 25% | Laatste 25% | Totaal |
|---|---|---|---|
| WER% | 1.30 | 1.23 | 2.43 |
| RTF | 0.672 | 0.400 | 0.539 |
Geen degradatie gedetecteerd. WER is stabiel gedurende de sessie. RTF verbetert eigenlijk als CoreML warmt zijn uitvoeringsplan cache op. Geen thermisch gedwarsboomd na 42 minuten continue Neural Engine gevolggeving. Parakeet verwerkt elke brok afzonderlijk . geen cross-chunk toestand accumulatie.
Meertalige resultaten (FLEURS)
CER gebruikt voor CJK-talen (geen woordgrenzen). Parakeet ondersteunt ~25 Europese talen (geen CJK).
| Taal | Metrisch | Qwen3 4-bit | Qwen3 8-bit | Parakeet INT8 |
|---|---|---|---|---|
| Spaans | WER | 6.44 | 5.06 | 5.18 |
| Engels | WER | 6.57 | 5.64 | 9.30 |
| Chinees | CER | 8.41 | 7.71 | — |
| Duits | WER | 9.45 | 6.81 | 12.33 |
| Frans | WER | 11.42 | 8.50 | 13.02 |
| Japans | CER | 16.11 | 8.64 | — |
| Russisch | WER | 16.35 | 10.52 | 11.49 |
| Koreaans | WER | 19.95 | 6.89 | — |
| Hindi | WER | 25.93 | 18.57 | — |
| Arabisch | WER | 33.47 | 20.31 | — |
Compressie delta
Nauwkeurigheid verlies van kwantiseren tot lagere bit breedtes.
| Variant | WER% | Substituten | Invoegingen | Verwijderingen | Totaal fouten | Grootte |
|---|---|---|---|---|---|---|
| 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 MLX bereikt 1,32% WER bij 5-bit (1,52% bij 8-bit) .Versla WhisperKit Large-v3 Turbo (1.71%) terwijl hij draait op 30-36× real-time op Apple Silicon.
TTS
Synthesizertekst, transcribeer vervolgens de audio terug met Qwen3-ASR 0,6B en bereken WER tegen de oorspronkelijke tekst. Geëvalueerd op 30 ingebouwde Engelse conversatiezinnen.
| Motor | Model | Params | Grootte | WER% | RTF |
|---|---|---|---|---|---|
| CosyVoice3 | 0,5B 4-bits | 500M | ~1,9 GB | 3.25 | 0.59 |
| Qwen3-TTS | 1,7B 4-bits | 1.7B | ~2,3 GB | 3.47 | 0.79 |
| Qwen3-TTS | 1,7B 8-bits | 1.7B | ~3,5 GB | 3.66 | 0.85 |
| Kokoro-82M | CoreML | 82M | ~170 MB | 3.90 | 0.17 |
| Qwen3-TTS | 0,6B 8-bits | 600M | ~960 MB | 9.74 | 0.76 |
| Qwen3-TTS | 0,6B 4-bits | 600M | ~675 MB | 15.58 | 0.76 |
Klonen van stemmen (nulschot)
Zero-shot voice cloning van dezelfde 12 s referentie clip; reroundtrip = Qwen3-ASR transcriptie van de uitvoer in vergelijking met de invoertekst. Apple M5 Pro, 48 GB; RTF is wandtijd › audioseconden (lager is sneller).
| Motor | WER% | Piek RSS | Audio | Synth | RTF | Rondrit |
|---|---|---|---|---|---|---|
| Higgs TTS 3 (kloon) | 4B bf16 | 8,6 GB | 6,04 s | 4,73 s | 0.78 | exact |
| F5-TTS (16 stappen) | 336M fp16 | 0,8 GB | 5,09 s | 2,91 s | 0.57 | 1-woord sub |
| F5-TTS (32 stappen) | 336M fp16 | 0,8 GB | 5,09 s | 5,75 s | 1.13 | 1-woord sub |
| IndexTTS2 (kloon) | 1.5B-klasse fp16 | 3,0 GB | 5,80 s | 5,8 s | 1.0 | exact |
Afbraak van de gevoeligheid (Qwen3-TTS)
| Fase | Tijd | % van Totaal | Omschrijving |
|---|---|---|---|
| Ingeschakeld | 1-3 ms | <1% | Tekstinbedding (TTFT) |
| Genereren | 2-6 s | ~92% | Autoregressieve codec tokens |
| Decoderen | 244-457 ms | ~8% | Codec decoder om te golfen |
Alle TTS motoren draaien sneller dan real-time (RTF < 1,0). CosyVoice3 leidt tot verstaanbaarheid (3,25% WER). Kokoro is de snelste (RTF 0,17) bij slechts 170 MB.
VAD
FLEURS evaluatie (10 talen, 250 bestanden)
Geëvalueerd tegen Python FireRedVAD referentiegrond waarheid op dezelfde drempel.
| Motor | Params | 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-evaluatie (multi speaker)
5 gespreksbestanden met meerdere luidsprekers geëvalueerd bij 10 ms frame resolutie.
| Motor | Params | 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 |
Vergelijking met gepubliceerde nummers
| Model | F1% | FAR% | MR% | Params | Dataset |
|---|---|---|---|---|---|
| Pyannote (ours) | 98.22 | 50.09 | 0.19 | 1,5M | VoxConverse |
| FireRedVAD (papier) | 97.57 | 2.69 | 3.62 | 588K | FLEURS-VAD-102 |
| Silero (ours) | 95.98 | 21.02 | 5.88 | 309K | VoxConverse |
| Silero-VAD (papier) | 95.95 | 9.41 | 3.95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (ours) | 94.21 | 69.33 | 5.05 | 588K | VoxConverse |
FireRedVAD bereikt 99,12% F1 op FLEURS met de laagste vals alarmsnelheid (2.52%) en draait op 135x real-time. Silero v5 biedt de beste streamingoptie op 32 ms per stuk.
Detectie van activeringswoorden / trefwoorden
KWS Zipformer (gigaspeech fine-tune)
Streaming Zipformer2 transducer (3.49M-params, Apache-2.0) met INT8 paletvorming op CoreML. Geevalueerd tegen 12 trefwoorden over LibriSpeech test-clean (158 positieve uitingen, 60 negatief). Drempels ingesteld: acThreshold = 0.15, contextScore = 0.5, numTrailingBlanks = 1.
| Metrisch | Waarde | Opmerkingen |
|---|---|---|
| RTF (CPU + Neural Engine) | 0.04 | 26× real-time op M-serie |
| Herinnering (12 trefwoorden) | 88% | LibriSpeech test-clean, 158 positieve uitingen |
| Valse positieven / uitspraak | 0.27 | 60 negatieve uitingen |
| CoreML INT8 vs PyTorch FP32 | 99% | Emissieovereenkomst |
| Gecompileerde modelgrootte | ~4 MB | encoder 3.3 MB + decoder 525 KB + joiner 160 KB |
| Runtime geheugen | ~6 MB | Gewichten + encoder state caches |
Gestemde standaardinstellingen verbeterden terugroep van 62% naar 88% (en sneden FP/utt van 0,43 naar 0,27) vs. de upstream-ijsvalstandaarden (acThreshold = 0.25, contextScore = 2.0). Zie de wake-word guide voor trefwoordbestandsformaat en per-frase drempelafstemming.
Sprekerembeddings
Extractielatentie
20 seconden audioclip, 10 iteraties na opwarming.
| Model | Dim | Backend | Matigheid |
|---|---|---|---|
| CAM++ (3D-luidspreker) | 192 | CoreML (ANE) | 12 ms |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 ms |
| WeSpeaker ResNet34-LM | 256 | CoreML (ANE) | 143 ms |
Inbeddingskwaliteit (VoxConverse)
Cosinus overeenkomst tussen segment-niveau inbeddingen van 5 multi-luidsprekers opnames. Hogere scheiding = betere spreker discriminatie.
| Model | Backend | Intraspeaker | Interspeaker | Scheiding |
|---|---|---|---|---|
| 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 drie de motoren komen overeen met de Python pyannote referentie (0.577 scheiding, cosinus overeenkomst >0.96). WeSpeaker bereikt 0.584 scheiding op zowel MLX als CoreML. CAM++ draait 5x sneller (12 ms vs 65 ms) met goede scheiding (0.328).
Bron Scheiding
Signal-to-Distortion Ratio (SDR) on MUSDB18-HQ (50 testsporen met volledige lengte, stereo 44.1kHz). Hoger is beter. Twee modelformaten: HQ (8.9M params/stem) en L (28.3M params / stem).
| Doel | UMX-HQ (MLX) | UMX-L (MLX) | UMX-HQ (gepubliceerd) |
|---|---|---|---|
| Zang | 6,23 dB | ~10,5 dB | 6,32 dB |
| Drums | 6,44 dB | ~7,0 dB | 5,73 dB |
| Bas | 4,56 dB | ~5,5 dB | 5,23 dB |
| Overige gevallen | 3,41 dB | ~4.5 dB | 4,02 dB |
| Model | Paramen/stam | Grootte | RTF | Snelheid |
|---|---|---|---|---|
| Open-Unmix HQ | 8,9M | 136 MB | 0.23 | 4.3x real-time |
| Open-Unmix L | 28,3M | 432 MB | 0.21 | 4,8x real-time |
UMX-HQ matches publiceerde SDR op zang en drums met een lichtgewicht 8.9M model. UMX-L levert +2–4 db verbetering bij 3x de modelgrootte. Beide omvatten multichannel Wiener EM post-filtering en lopen sneller dan real-time op Apple Silicon.
Android 616/2007 op apparaat (Galaxy S23)
Gemeten op een Alleen Samsung Galaxy S23 (SM-S918B), arm64, CPU, INT8 waar opgemerkt. RTF is wandgeluid (lager is sneller dan real time; <1.0 real time); Peak RSS is de resident set van het lopende model. STT rijen gebruiken een 20 s clip; TTS rapporteert RTF of time-to-first-audio (TTFA).
| Model | Taak | Starttijd | Snelheid | Piek RSS |
|---|---|---|---|---|
| Parakeet-EOU 120M | Streaming STT + EOU | ONNX INT8 | 0.21 RTF | 232 MB |
| Omnilingual CTC 300M | Meertalige STT | LiteRT | 0.15 RTF | 831 MB |
| Nemotron Streaming 0,6B | Streaming STT | LiteRT | 0.67 RTF | 1,30 GB |
| Parakeet-TDT 0,6B | STT (batch) | ONNX INT8 | 0.082 RTF | 1,15 GB |
| Supertonic-3 99M | TTS (voorgestelde stem) | LiteRT | 0,34 RTF · ~ 1,1 s TTFA | 832 MB |
| Kokoro-82M | TTS (voorgestelde stem) | ONNX FP32 | 0.53 RTF | 640 MB |
Hoofdregel: Parakeet-EOU-120M is de lichtste STT hier op 232 MB Meertalig (25 Europees), streaming, met inline end-of-utterance detectie, ruwweg 5–6× lichter dan de 0.6B Parakeet. Het uitschakelen van de ONNX CPU geheugen arena (nu de standaard) knippen Parakeet-TDT van ~1.34 GB tot ~1.15 GB.
Reproductie
# 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 multilingual (FLEURS, auto-download)
python scripts/benchmark_asr.py --dataset fleurs --language en_us --batch
# TTS round-trip
python scripts/benchmark_tts.py --compare
# VAD comparison
python scripts/benchmark_vad.py --compare
# Speaker embeddings comparison
python scripts/benchmark_speaker.py --compare
# Source separation (MUSDB18-HQ, download from Zenodo)
python scripts/benchmark_separation.py --data-dir benchmarks/data/musdb18-hq