Maskinöversättning · Engelskt original
Prestandatester
RTF (realtidsfaktor) under 1,0 betyder snabbare än realtid.
Apple Silicon (MLX + CoreML)
Alla riktmärken på Apple M5 Pro, 48 GB, macOS 25.5 med release bygger och sammanställd metallib. Varje motor körs i en separat barnprocess (asr-bench --isolated) så Peak RSS-kolumnen är den verkliga permotorkostnaden, inte ett sekventiellt högvattenmärke.
ASR - Word Error Rate
Utvärderad på LibriSpeech test-clean, första 200 yttranden (~ 30 min engelska läsa tal). WER beräknas via en Whisper-stil normalizer + Levenshtein över whitespace tokens. Qwen3-ASR 5-bit rader mättes på en 100-utterance-del av samma fixtur på M-serien (tillämpad när 5 -bit-varianten landade); samma normalizer, samma datamängd.
| Engine | Quant | WER% | RTF | xRT | Peak 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 infödd 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 |
Headline picks: Qwen3-ASR MLX 1.7B B B B 5-bit är den nya noggrannhetsledaren på 1.32% WER - Beats WhisperKit Large-v3 Turbo1.71%) och vår egen 1.7B B B B 8-bit (före)1.52%) när du använder ~600 MB mindre topp RSS än 8-bit och running 23% snabbare. Parakeet TDT v3 är den snabbaste för engelska (endast)117× realtid, 25 Europeiska språket). Omnilingual CTC 300M M M M MLX 4-bit är den flerspråkiga genomströmningsledaren: 222× realtid, 384 MB peak, 1 672 språk.
Qwen3-ASR 0.6B CoreML-raden återspeglar den ombyggda chunked block-attention-kodaren (encoder) (encoer) (en kodare för ZXQXZZB ZxQ2Q2QxZ)aufklarer/Qwen3-ASR-CoreML) - den tidigare exporten sprang oöverträffad global självuppmärksamhet över noll vadderade mel och emitterade <|im_end|> efter den första meningen-final perioden (24.88% WER på samma fixtur före ombyggnaden.
Behöver du en fokuserad beslutsguide? Se Qwen3-ASR vs Whisper: noggrannhet, hastighet och minne.
Diarization mäts separat över åtta språk: se speaker diarization benchmarks för DER och högtalarräkningsavtal över pyannote Community-1, NVIDIA Sortformer, MOSS och Speech Cloud API.
Långformig stabilitet (upprätthållen Neural Engine last)
200 LibriSpeech yttranden behandlas sekventiellt (~ 30 min ljud, M5 Pro). Testar om WER eller latens nedbrytning under långvarig transkription.
| Metric | Första 25% | Senaste 25% | Övergripande |
|---|---|---|---|
| WER% | 1.30 | 1.23 | 2.43 |
| RTF | 0.672 | 0.400 | 0.539 |
Ingen nedbrytning detekteras. WER är stabil över sessionen. RTF faktiskt förbättras som CoreML värmer upp sin exekveringsplan cache. Ingen termisk strypning efter 42 minuter av kontinuerlig Neural Engine inference. Parakeet processer varje chunk självständigt — ingen korskurk state aumulation.
Flerspråkiga resultat (FLEURS)
CER används för CJK-språk (inga ordgränser). Parakeet stöder ~25 europeiska språk (ingen CJK).
| Språkspråk | Metric | Qwen3 4-bitars | Qwen3 8-bit | Parakeet INT8 |
|---|---|---|---|---|
| Spanska spanska | WER | 6.44 | 5.06 | 5.18 |
| Engelska engelska engelska | WER | 6.57 | 5.64 | 9.30 |
| Kinesiska kinesiska | CER | 8.41 | 7.71 | — |
| Tyska tyska | WER | 9.45 | 6.81 | 12.33 |
| Franska franska | WER | 11.42 | 8.50 | 13.02 |
| Japansk Japansk Japan Japansk | CER | 16.11 | 8.64 | — |
| Ryska ryska ryska ryska ryska | WER | 16.35 | 10.52 | 11.49 |
| Koreanska | WER | 19.95 | 6.89 | — |
| Hindi | WER | 25.93 | 18.57 | — |
| Arabiska arabiska | WER | 33.47 | 20.31 | — |
Kompression delta
Noggrannhet förlust från kvantisering till lägre bit bredder.
| Variant | WER% | Substitutioner | Insättningar | Deletions | Totala fel | Storlek |
|---|---|---|---|---|---|---|
| Qwen3 0,6B 8-bitars | 2.80 | 1111 | 92 | 268 | 1471 | 960 MB |
| Qwen3 0,6B 4-bitars | 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 når 1.32% WER vid 5-bitars (1,52% vid 8-bit) - slår WhisperKit Large-v3 Turbo (1,71%) medan du kör vid 30-36x realtid på Apple Silicon.
TTS - Round-Trip Intelligibility
Synthesize text, sedan transkribera ljudet tillbaka med Qwen3-ASR 0.6B och beräkna WER mot den ursprungliga texten. Utvärderad på 30 inbyggda engelska konversationsdomar.
| Engine | Modell | Params | Storlek | WER% | RTF |
|---|---|---|---|---|---|
| CosyVoice3 | 0,5B 4-bitars | 500M | ~1.9 GB | 3.25 | 0.59 |
| Qwen3-TTS | 1.7B 4-bitars | 1.7B | ~2.3 GB | 3.47 | 0.79 |
| Qwen3-TTS | 1.7B 8-bitars | 1.7B | ~3.5 GB | 3.66 | 0.85 |
| Kokoro-82M | CoreML | 82M | ~170 MB | 3.90 | 0.17 |
| Qwen3-TTS | 0,6B 8-bitars | 600M | 960 MB | 9.74 | 0.76 |
| Qwen3-TTS | 0,6B 4-bitars | 600M | 675 MB | 15.58 | 0.76 |
Röstkloning (noll-shot)
Noll-shot röst kloning från samma 12 s referensklipp; rundtur = Qwen3-ASR transkription av utgången jämfört med ingångstexten. Apple M5 Pro, 48 GB; RTF är väggtid ÷ ljud sekunder (lägre är snabbare).
| Engine | WER% | Peak RSS | Audio | Synth | RTF | Roundtrip |
|---|---|---|---|---|---|---|
| Higgs TTS 3 (klon) | 4B bf16 | 8,6 GB | 6,04 s | 4,73 s | 0.78 | Exakt |
| F5-TTS (16 steg) | 336M fp16 | 0,8 GB | 5,09 s | 2.91 s | 0.57 | 1-word sub |
| F5-TTS (32 steg) | 336M fp16 | 0,8 GB | 5,09 s | 5,75 s | 1.13 | 1-word sub |
| IndexTTS2 (klon) | 1.5B-klass fp16 | 3.0 GB | 5,80 s | 5,8 s | 1.0 | Exakt |
Latency breakdown (Qwen3-TTS)
| Steg | Tid | % av Totalt | Beskrivning |
|---|---|---|---|
| Inbäddad | 1-3 ms | <1% | Textinbäddning (TTFT) |
| Generera | 2-6 s | ~92% | Autoregressiva codec tokens |
| Decode | 244-457 ms | ~8% | Codec decoder för vågform |
Alla TTS motorer körs snabbare än realtid (RTF < 1.0). CosyVoice3 leder i intelligens (3.25% WER). Kokoro är den snabbaste (RTF 0.17) på endast 170 MB.
VAD - Detekterings noggrannhet
FLEURS utvärdering (10 språk, 250 filer)
Utvärderad mot Python FireRedVAD referens mark sanning på samma tröskel.
| Engine | 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 utvärdering (multi-talare)
5 multi-speaker konversationsfiler utvärderade vid 10 ms ramupplösning.
| Engine | 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 |
Jämförelse med publicerade siffror
| Modell | F1% | Far% | MR% | Params | Dataset |
|---|---|---|---|---|---|
| Pyannote (vår) | 98.22 | 50.09 | 0.19 | 1.5M | VoxConverse |
| FireRedVAD (papper) | 97.57 | 2.69 | 3.62 | 588K | FLEURS-VAD-102 |
| Silero (vår) | 95.98 | 21.02 | 5.88 | 309K | VoxConverse |
| Silero-VAD (papper) | 95.95 | 9.41 | 3.95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (vår) | 94.21 | 69.33 | 5.05 | 588K | VoxConverse |
FireRedVAD uppnår 99.12% F1 på FLEURS med den lägsta falska larmfrekvensen (2.52%) och körs på 135x realtid. Silero v5 ger det bästa streamingalternativet vid 32 ms per chunk.
Detektering av väckningsord / nyckelord
KWS Zipformer (gigaspeech finjustering)
Streaming Zipformer2 transducerare (transducer)3.49M params, Apache-2.0) med INT8 palettisering på CoreML. utvärderas mot 12 sökord på LibriSpeech test-clean (158 positiva uttalanden, 60 negativa) trösklar inställda: acThreshold = 0.15, contextScore = 0.5, numTrailingBlanks = 1.
| Metric | Värde | Anmärkningar |
|---|---|---|
| RTF (CPU + Neural Engine) | 0.04 | 26× realtid på M-serien |
| Recall (12 sökord) | 88% | LibriSpeech test-clean, 158 positiva uttalanden |
| Falskt positivt/uttalande | 0.27 | 60 negativa uttalanden |
| CoreML INT8 vs PyTorch FP32 | 99% | Emissionsavtal |
| Jämställd modellstorlek | ~4 MB | kodare 3.3 MB + decoder 525 KB + förening 160 KB |
| Runtime minne | 6 MB | Vikter + Encoder State Caches |
Tuned standards förbättrade återkallelse från 62% till 88% (och skära FP / utt från 0,43 till 0,27) vs. de uppströms isfall standarder (acThreshold = 0.25, contextScore = 2.0). se wake-word guide för nyckelord-filformat och per-fras tröskeljustering.
Talarinbäddningar
Extraktion latens
20-sekunders ljudklipp, 10 iterationer efter uppvärmning.
| Modell | Dim | Backend | Latency |
|---|---|---|---|
| CAM++ (3D-talare) | 192 | CoreML (ANE) | 12 ms |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 ms |
| WeSpeaker ResNet34-LM | 256 | CoreML (ANE) | 143 ms |
Inbäddning av kvalitet (VoxConverse)
Kosin likhet mellan segment-nivå inbäddningar från 5 multi-talare inspelningar. Högre separation = bättre högtalardiskriminering.
| Modell | Backend | Intra-Speaker | Inter-Speaker | Separation |
|---|---|---|---|---|
| WeSpeaker | MLX | 0.726 | 0.142 | 0.584 |
| WeSpeaker | CoreML | 0.726 | 0.143 | 0.582 |
| CAM+++ | CoreML | 0.723 | 0.395 | 0.328 |
Alla tre motorer matchar Python pyannote referens (0.577 separation, kosin likhet > 0.96). WeSpeaker uppnår 0.584 separation på både MLX och CoreML. CAM++ löper 5x snabbare (12 Ms vs 65 ms) med god separation (0.328).
Källa Separation - SDR
Signal-to-Distortion Ratio (SDR) på MUSDB18-HQ (50 full-längd testbanor, stereo 44.1kHz). Högre är bättre. Två modellstorlekar: HQ (8.9M param/stem) och L (28.3M params/stem).
| Mål | UMX-HQ (MLX) | UMX-L (MLX) | UMX-HQ (publicerad) |
|---|---|---|---|
| Vocals | 6,23 dB | ~10.5 dB | 6,32 dB |
| Trummor | 6.44 dB | ~7.0 dB | 5,73 dB |
| Basen | 4,56 dB | ~5.5 dB | 5,23 dB |
| Övriga | 3,41 dB | ~4.5 dB | 4,02 dB |
| Modell | Params/stem | Storlek | RTF | Hastighet |
|---|---|---|---|---|
| Open-Unmix HQ | 8,9M | 136 MB | 0.23 | 4.3x realtid |
| Open-Unmix L | 28.3M | 432 MB | 0.21 | 4.8x realtid |
UMX-HQ-matcher publicerade SDR på sång och trummor med en lätt 8,9M-modell. UMX - L ger +2-4 dB förbättring vid 3x modellstorleken. Båda inkluderar multikanal Wiener EM efter filtrering och kör snabbare än realtid på Apple Silicon.
Android — on-device (Galaxy S23)
mätt på en Samsung Galaxy S23 (SM-S918B), arm64, CPU endast, INT8 där noterade. RTF är vägg ÷ ljud (lägre är snabbare än realtid; <1.0 is real time); Peak RSS är den bosatta uppsättningen av körmodellen. STT-rader använder en 20 klipp; TTS rapporterar RTF eller time-to-first-audio (TTFA).
| Modell | Uppgifter | Runtime | Hastighet | Peak RSS |
|---|---|---|---|---|
| Parakeet-EOU 120M | Streaming STT + EOU | ONNX INT8 | 0.21 RTF | 232 MB |
| Omnilingual CTC 300M | Flerspråkig 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 (förinställd röst) | LiteRT | 0,34 RTF ~ 1,1 s TTFA | 832 MB |
| Kokoro-82M | TTS (förinställd röst) | ONNX FP32 | 0.53 RTF | 640 MB |
Headline: Parakeet-EOU-120M är den lättaste STT här på 232 MB flerspråkig (25 Europeiska), streaming, med inline end-of-utterance detection, ungefär 5–6× lättare än 0.6B B B B ParakeetInaktivera den ONNX CPU minne arena (nu standard) skär Parakeet-TDT från ~1.34 GB till ~1.15 GB.
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 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