Maskinoversettelse · Engelsk original
Ytelsestester
RTF (real-time faktor) under 1,0 betyr raskere enn sanntid.
Apple Silicon (MLX + CoreML)
Alle referanser på Apple M5 Pro, 48 GB, macOS 25.5 med utgivelsesbygg og kompilert metalllib. Hver motor kjører i en separat barneprosess (asr-bench --isolated) så Peak RSS-kolonnen er den virkelige per-motorkostnaden, ikke et sekvensielt høyvannsmerke.
ASR — Ordfeilrate
Evaluert på Libri tale test-clean, første 200 uttalelser (~30 min engelsk lese tale). WER beregnet via en Whisper-stil normalizer + Levenshtein over tomme symboler. Qwen3-ASR 5-bit rader ble målt på en 100-utterance undergruppe av den samme fixtur på M-serien (tilsatt når 5-bit variant land); samme normalizer, samme datasett.
| Motoren | 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-bits | 1.52 | 0.033 | 30.5× | 2.7 GB |
| Qwen3-ASR 0.6B MLX | 8-bits | 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-biters | 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-biters | 4.26 | 0.005 | 222.1× | 0.4 GB |
| Omnilingual CTC 300M CoreML | INT8 | 5.67 | 0.128 | 7.8× | 0.5 GB |
| Nemotron Strømming | INT8 | 2.82 | 0.058 | 17.1× | 961 MB |
Hovedvalg: Qwen3-ASR MLX 1.7B 5-bit er den nye nøyaktighetslederen på 1.32% WER — beats WhisperKit Large-v3 Turbo (1.71%) og vår egen 1.7B 8-bit (1.52%) mens du bruker ~600 MB mindre topp RSS enn 8-bit og løper 23% raskere. Parakeet TDT v3 er den raskeste for engelsk-bare (117× sanntid, 25 Europeiske språk). Omnilingual CTC 300M MLX 4-bit er flerspråklig gjennomstrømsleder: 222× sanntid, 384 MB topp, 1 672 Språk.
Qwen3-ASR 0,6B CoreML raden reflekterer den gjenoppbygde blokkeringskoderen (aufklarer/Qwen3-ASR-CoreML) - den tidligere eksporten kjørte umasket global selvtillit over null-fyllt mel og sendte <|im_end|> rett etter den første setningssluttperioden (24.88% WER
Trenger du en fokusert beslutningsguide? Se Qwen3-ASR vs Whisper: nøyaktighet, hastighet og minne.
Diarisering måles separat på åtte språk: se speaker diarization benchmarks for DER og høyttaler-count-avtale over pyannote Community-1, NVIDIA Sortformer, MOSS og tale Cloud API.
Langformet stabilitet (frivillig Neural Engine belastning)
200 Libri taletale uttrykk behandlet sekvensiell (~30 min lyd, M5 Pro). Tester om WER eller latens nedgradering under vedvarende transkripsjon.
| Metrisk | Første 25% | Siste 25% | Generelt |
|---|---|---|---|
| WER% | 1.30 | 1.23 | 2.43 |
| RTF | 0.672 | 0.400 | 0.539 |
Ingen nedbrytning detektert. WER er stabil over hele sesjonen. RTF forbedres faktisk som CoreML varmer opp sin utførelsesplan cache. Ingen termisk trottling etter 42 minutter kontinuerlig Neural Engine inferens. Parakeet prosessererer hver bunt uavhengig av hverandre - ingen kryss-chunk tilstand akkumulering.
Flerspråklige resultater (FLEURS)
CER som brukes for CJK-språk (ingen ordgrenser). Parakeet støtter ~25 Europeiske språk (ingen CJK).
| Språk | Metrisk | Qwen3 4-bit | Qwen3 8-bits | Parakeet INT8 |
|---|---|---|---|---|
| Spansk | WER | 6.44 | 5.06 | 5.18 |
| Engelsk | WER | 6.57 | 5.64 | 9.30 |
| Kinesisk | CER | 8.41 | 7.71 | — |
| Tysk | WER | 9.45 | 6.81 | 12.33 |
| fransk | WER | 11.42 | 8.50 | 13.02 |
| Japansk | CER | 16.11 | 8.64 | — |
| russiske | WER | 16.35 | 10.52 | 11.49 |
| koreansk | WER | 19.95 | 6.89 | — |
| Hindi | WER | 25.93 | 18.57 | — |
| Arabisk | WER | 33.47 | 20.31 | — |
Kompresjonsdelta
Nøyaktighetstap fra kvantisering til lavere bitbredder.
| Variant | WER% | Substitusjoner | Innsettinger | Delements | Totale feil | Størrelse |
|---|---|---|---|---|---|---|
| Qwen3 0.6B 8-bit | 2.80 | 1111 | 92 | 268 | 1471 | 960 MB |
| Qwen3 0.6B 4-biters | 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 ved 5-bit (1,52% ved 8-bit) - å slå WhisperKit Large-v3 Turbo (1,71 %) mens du kjører på 30-36× i sanntid på Apple Silicon.
TTS — Rund-Trip Intelligitet
Synthesize-tekst, deretter overføre lyden tilbake med Qwen3-ASR 0.6B og beregne WER mot den opprinnelige teksten. Evaluert på 30 innebygde engelske samtalesetninger.
| Motoren | Modell | Params | Størrelse | WER% | RTF |
|---|---|---|---|---|---|
| CosyVoice3 | 0.5B 4-biters | 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-biters | 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 |
Stemmekloning (null-shot)
Null-shot stemmekloning fra det samme 12-s referanseklippet; rundtrip = Qwen3-ASR transkripsjon av utgangen i forhold til inngangsteksten. Apple M5 Pro, 48 GB; RTF er veggtid ® lyd sekunder (lavere er raskere).
| Motoren | WER% | Peak RSS | Audio | Synth | RTF | Roundtrip |
|---|---|---|---|---|---|---|
| Higgs TTS 3 (klon) | 4B bf16 | 8.6 GB | 6.04 s | 4.73 s | 0.78 | Nøyaktig |
| F5-TTS (16 trinn) | 336M fp16 | 0.8 GB | 5.09 s | 2.91 s | 0.57 | 1 ord undertekst |
| F5-TTS (32 trinn) | 336M fp16 | 0.8 GB | 5.09 s | 5.75 s | 1.13 | 1 ord undertekst |
| IndexTTS2 (klon) | 1.5B-klasse fp16 | 3.0 GB | 5.80 s | 5.8 s | 1.0 | Nøyaktig |
Latenthet nedbrytning (Qwen3-TTS)
| Stage | Tid | % av totalt | Beskrivelse |
|---|---|---|---|
| Bygg inn | 1-3 ms | <1% | Tekstinnbygging (TTFT) |
| Oppretter | 2-6 s | ~92% | Autoregressive kodek tokens |
| Decode | 244-457 ms | ~8% | Kodekodedekoder til bølgeform |
Alle TTS motorer kjører raskere enn sanntid (RTF < 1.0). CosyVoice3 leder i intelligabilitet (3,25% WER). Kokoro er den raskeste (RTF 0,17) på bare 170 MB.
VAD — Deteksjonsnøyaktighet
FLEURS evaluering (10 språk, 250 filer)
Evaluert mot Python FireRedVAD referansejord sannhet på samme terskel.
| Motoren | Params | Motor | 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 evaluering (multi-speaker)
5 multi-speaker konversasjonsfiler evaluert ved 10 ms rammeoppløsning.
| Motoren | Params | Motor | 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 |
Sammenligning med publiserte tall
| Modell | F1% | FAR% | MR% | Params | Datasett |
|---|---|---|---|---|---|
| Pyannote (våre) | 98.22 | 50.09 | 0.19 | 1.5M | VoxConverse |
| FireRedVAD (papir) | 97.57 | 2.69 | 3.62 | 588K | FLEURS-VAD-102 |
| Silero (våre) | 95.98 | 21.02 | 5.88 | 309K | VoxConverse |
| Silero-VAD (papir) | 95.95 | 9.41 | 3.95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (våre) | 94.21 | 69.33 | 5.05 | 588K | VoxConverse |
FireRedVAD oppnår 99.12% F1 på FLEURS med den laveste falske alarmhastigheten (2.52%) og kjører på 135x sanntid. Silero v5 gir det beste streamingalternativet på 32 ms per bit.
Påvisning av aktiveringsord / nøkkelord
KWS Zipformer (Gigaspeech fine-tune)
Streaming Zipformer2 transducer (3.49M params, Apache-2.0) med INT8 palettisering på CoreML. Evaluert mot 12 nøkkelord på libri taleprøve-rensing (158 positive uttalelser, 60 negative). Terskeler som er avgrenset: acThreshold = 0.15, contextScore = 0.5, numTrailingBlanks = 1.
| Metrisk | Verdi | Noter |
|---|---|---|
| RTF (CPU + Neural Engine) | 0.04 | 26× sanntid på M-serien |
| Husk (12 nøkkelord) | 88% | Libri Speech Test-clean, 158 positive uttalelser |
| Falske positive / uttalelse | 0.27 | 60 negative uttalelser |
| CoreML INT8 vs PyTorch FP32 | 99% | Utslippsavtale |
| Kompilert modellstørrelse | ~ 4 MB | Dekoder 3.3 MB + dekoder 525 KB + joiner 160 KB |
| Kjøretid minne | ~ 6 MB | Vekter + koder tilstand caches |
Tunerte standarder forbedret tilbakekalling fra 62% til 88% (og kutt FP/utt fra 0,43 til 0,27) vs. oppstrøms isfallsstandarder (acThreshold = 0.25, contextScore = 2.0). Se wake-word guide for søkeord-filformat og per-frase terskeljustering.
Talerrepresentasjoner
Utvinnings latens
20 sekunders lydklipp, 10 iterasjoner etter oppvarming.
| Modell | Dim | Motor | Latentens |
|---|---|---|---|
| CAM++ (3D-taler) | 192 | CoreML (ANE) | 12 ms |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 ms |
| WeSpeaker ResNet34-LM | 256 | CoreML (ANE) | 143 ms |
Innbyggingskvalitet (VoxConverse)
Kosinuslikhet mellom segment-nivå innbygginger fra 5 multi-høyttalere innspillinger. høyere separasjon = bedre høyttaler diskriminering.
| Modell | Motor | Intra-taler | Inter-taler | Separasjon |
|---|---|---|---|---|
| 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 tre motorene matcher Python pyannote referanse (0,577 separasjon, cosinus likhet >0.96). WeSpeaker oppnår 0.584 separasjon på både MLX og CoreML. CAM++ kjører 5x raskere (12 ms vs 65 ms) med god separasjon (0,328).
Kildeseparering — SDR
Signal-til-forvrengningsforhold (SDR) på MUSDB18-HQ (50 full-lengde testspor, stereo 44,1kHz). høyere er bedre. To modellstørrelser: HQ (8,9M params/stem) og L (28,3M param/stem).
| Mål | UMX-HQ (MLX) | UMX-L (MLX) | UMX-HQ |
|---|---|---|---|
| Vocals | 6.23 dB | ~10.5 dB | 6.32 dB |
| Trommer | 6.44 dB | ~7.0 dB | 5.73 dB |
| Bass | 4.56 dB | ~5.5 dB | 5.23 dB |
| Andre | 3.41 dB | ~4.5 dB | 4.02 dB |
| Modell | Params/stem | Størrelse | RTF | Hastighet |
|---|---|---|---|---|
| Open-Unmix HQ | 8.9M | 136 MB | 0.23 | 4.3x sanntid |
| Open-Unmix L | 28.3M | 432 MB | 0.21 | 4,8x sanntid |
UMX-HQ matches publisert SDR på vokal og trommer med en lett 8,9M-modell. UMX -L gir +2-4 dB forbedring i 3x modellen størrelse. Begge inkluderer multikanal Wiener EM etter filtrering og kjøre raskere enn sanntid på Apple Silicon.
Android - on-device (Galaxy S23)
Målt på en VEGN galax S23 (SM-S918B), arm64, CPUkun, INT8 hvor det er nevnt. RTF er veggen (lavere er raskere enn sanntid; <1.0 er sanntid); Peak RSS er det residente settet til den løpende modellen. STT-rader bruker et 20 s klip; TTS rapporter RTF eller tid-til-første-audio (TTFA).
| Modell | Oppgave | Runtime | Hastighet | Peak RSS |
|---|---|---|---|---|
| Parakeet-EOU 120M | Streaming STT + EOU | ONNX INT8 | 0.21 RTF | 232 MB |
| Omnilingual CTC 300M | flerspråklig STT | LiteRT | 0.15 RTF | 831 MB |
| Nemotron Strømming 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 (preset stemme) | LiteRT | 0.34 RTF · ~1.1 s TTFA | 832 MB |
| Kokoro-82M | TTS (preset stemme) | ONNX FP32 | 0.53 RTF | 640 MB |
Headline: Parakeet-EOU-120M er den letteste STT her på ~232 MB — flerspråklig (25 Europeisk), streaming, med inline end-of-utterance deteksjon, omtrent 5-6× lettere enn 0,6B Parakeet. Disabling av ONNX CPU minnearena (nå standard) kutt Parakeet-TDTDTTD fra ~1.34 GB til ~1.15 GB.
Reproduksjon
# 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