Benchmarks
1.0 से नीचे RTF (real-time factor) का अर्थ है रियल-टाइम से तेज़।
Apple Silicon (MLX + CoreML)
सभी बेंचमार्क Apple M5 Pro, 48 GB, macOS 25.5 पर रिलीज़ बिल्ड और कंपाइल्ड metallib के साथ।
ASR — Word Error Rate
LibriSpeech test-clean (2620 utterances, ~5.4 घंटे अंग्रेज़ी पठित स्पीच) पर मूल्यांकन।
| Engine | Quant | WER% | RTF | xRT | Peak RSS |
|---|---|---|---|---|---|
| Qwen3-ASR 1.7B MLX | 8-bit | 1.52 | 0.033 | 30.5× | 2.7 GB |
| WhisperKit Large-v3 Turbo | FP16 | 1.71 | 0.084 | 11.9× | 0.4 GB |
| Qwen3-ASR 0.6B MLX | 8-bit | 1.82 | 0.015 | 66.0× | 1.3 GB |
| 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 8-bit beats WhisperKit Large-v3 Turbo on WER (1.52% vs 1.71%) and runs 2.6× faster at 6× the memory. Parakeet TDT v3 is the fastest for English-only (117× real-time, 25 European languages). Omnilingual CTC 300M MLX 4-bit is the multilingual throughput leader: 222× real-time, 384 MB peak, 1 672 languages.
The Qwen3-ASR 0.6B CoreML row reflects the rebuilt chunked block-attention encoder (aufklarer/Qwen3-ASR-CoreML) — the previous export ran unmasked global self-attention over zero-padded mel and emitted <|im_end|> right after the first sentence-final period (24.88% WER on the same fixture before the rebuild).
लंबी-अवधि स्थिरता (निरंतर Neural Engine लोड)
200 LibriSpeech utterances क्रमिक रूप से प्रोसेस किए गए (~30 मिनट ऑडियो, M5 Pro)। परीक्षण करता है कि क्या निरंतर ट्रांसक्रिप्शन के तहत WER या लेटेंसी खराब होती है।
| मेट्रिक | पहले 25% | अंतिम 25% | कुल |
|---|---|---|---|
| WER% | 1.30 | 1.23 | 2.43 |
| RTF | 0.672 | 0.400 | 0.539 |
कोई गिरावट नहीं देखी गई। WER सत्र भर में स्थिर है। RTF वास्तव में बेहतर होता है क्योंकि CoreML अपने execution plan cache को वार्म करता है। 42 मिनट के निरंतर Neural Engine इन्फ़रेंस के बाद कोई थर्मल थ्रॉटलिंग नहीं। Parakeet प्रत्येक chunk को स्वतंत्र रूप से प्रोसेस करता है — कोई क्रॉस-चंक स्टेट संचय नहीं।
बहुभाषी परिणाम (FLEURS)
CJK भाषाओं के लिए CER का उपयोग किया गया (कोई word boundaries नहीं)। Parakeet ~25 यूरोपीय भाषाओं का समर्थन करता है (कोई CJK नहीं)।
| भाषा | मेट्रिक | Qwen3 4-bit | Qwen3 8-bit | Parakeet INT8 |
|---|---|---|---|---|
| स्पेनिश | WER | 6.44 | 5.06 | 5.18 |
| अंग्रेज़ी | WER | 6.57 | 5.64 | 9.30 |
| चीनी | CER | 8.41 | 7.71 | — |
| जर्मन | WER | 9.45 | 6.81 | 12.33 |
| फ़्रेंच | WER | 11.42 | 8.50 | 13.02 |
| जापानी | CER | 16.11 | 8.64 | — |
| रूसी | WER | 16.35 | 10.52 | 11.49 |
| कोरियाई | WER | 19.95 | 6.89 | — |
| हिन्दी | WER | 25.93 | 18.57 | — |
| अरबी | WER | 33.47 | 20.31 | — |
कम्प्रेशन डेल्टा
कम bit widths में क्वांटिज़ करने से सटीकता हानि।
| वेरिएंट | WER% | Substitutions | Insertions | Deletions | कुल त्रुटियाँ | आकार |
|---|---|---|---|---|---|---|
| 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 |
| डेल्टा | +0.54 | +212 | +31 | +40 | +283 | -30% |
| Parakeet TDT INT8 | 2.74 | 990 | 125 | 308 | 1423 | 634 MB |
Qwen3-ASR 1.7B 8-bit 2.35% WER प्राप्त करता है — Whisper Large v3 Turbo (2.5%) और Whisper Large v3 (2.7%) को पार करते हुए, Apple Silicon पर 11x रियल-टाइम पर चलता है।
TTS — राउंड-ट्रिप इंटेलिजिबिलिटी
टेक्स्ट को synthesize करें, फिर ऑडियो को Qwen3-ASR 0.6B के साथ वापस ट्रांसक्राइब करें और मूल टेक्स्ट के विरुद्ध WER की गणना करें। 30 बिल्ट-इन अंग्रेज़ी संवादात्मक वाक्यों पर मूल्यांकन किया गया।
| इंजन | मॉडल | पैरामीटर | आकार | 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 |
लेटेंसी ब्रेकडाउन (Qwen3-TTS)
| चरण | समय | कुल का % | विवरण |
|---|---|---|---|
| Embed | 1-3 ms | <1% | Text embedding (TTFT) |
| Generate | 2-6 s | ~92% | Autoregressive codec tokens |
| Decode | 244-457 ms | ~8% | Codec decoder to waveform |
सभी TTS इंजन रियल-टाइम से तेज़ चलते हैं (RTF < 1.0)। CosyVoice3 इंटेलिजिबिलिटी में आगे है (3.25% WER)। Kokoro केवल 170 MB पर सबसे तेज़ है (RTF 0.17)।
VAD — डिटेक्शन सटीकता
FLEURS मूल्यांकन (10 भाषाएँ, 250 फ़ाइलें)
समान threshold पर Python FireRedVAD संदर्भ ground truth के विरुद्ध मूल्यांकन।
| इंजन | पैरामीटर | बैकएंड | 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 मूल्यांकन (multi-speaker)
5 multi-speaker कन्वर्सेशन फ़ाइलें 10 ms frame resolution पर मूल्यांकित।
| इंजन | पैरामीटर | बैकएंड | 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 |
प्रकाशित संख्याओं के साथ तुलना
| मॉडल | F1% | FAR% | MR% | पैरामीटर | डेटासेट |
|---|---|---|---|---|---|
| Pyannote (हमारा) | 98.22 | 50.09 | 0.19 | 1.5M | VoxConverse |
| FireRedVAD (paper) | 97.57 | 2.69 | 3.62 | 588K | FLEURS-VAD-102 |
| Silero (हमारा) | 95.98 | 21.02 | 5.88 | 309K | VoxConverse |
| Silero-VAD (paper) | 95.95 | 9.41 | 3.95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (हमारा) | 94.21 | 69.33 | 5.05 | 588K | VoxConverse |
FireRedVAD FLEURS पर 99.12% F1 प्राप्त करता है, सबसे कम false alarm rate (2.52%) के साथ और 135x रियल-टाइम पर चलता है। Silero v5 प्रति chunk 32 ms पर सर्वश्रेष्ठ streaming विकल्प प्रदान करता है।
स्पीकर एम्बेडिंग
एक्सट्रैक्शन लेटेंसी
20-सेकंड ऑडियो क्लिप, warmup के बाद 10 iterations।
| मॉडल | Dim | बैकएंड | लेटेंसी |
|---|---|---|---|
| CAM++ (3D-Speaker) | 192 | CoreML (ANE) | 12 ms |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 ms |
| WeSpeaker ResNet34-LM | 256 | CoreML (ANE) | 143 ms |
एम्बेडिंग गुणवत्ता (VoxConverse)
5 multi-speaker रिकॉर्डिंग से segment-level embeddings के बीच cosine similarity। उच्च separation = बेहतर स्पीकर विभेदन।
| मॉडल | बैकएंड | 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 |
तीनों इंजन Python pyannote संदर्भ से मेल खाते हैं (0.577 separation, cosine similarity >0.96)। WeSpeaker MLX और CoreML दोनों पर 0.584 separation प्राप्त करता है। CAM++ अच्छे separation (0.328) के साथ 5x तेज़ चलता है (12 ms बनाम 65 ms)।
सोर्स सेपरेशन — SDR
MUSDB18-HQ (50 पूर्ण-लंबाई टेस्ट ट्रैक, stereo 44.1kHz) पर Signal-to-Distortion Ratio (SDR)। उच्चतर बेहतर है। दो मॉडल आकार: HQ (8.9M params/stem) और L (28.3M params/stem)।
| टारगेट | UMX-HQ (MLX) | UMX-L (MLX) | UMX-HQ (प्रकाशित) |
|---|---|---|---|
| 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 |
| मॉडल | Params/stem | आकार | RTF | गति |
|---|---|---|---|---|
| Open-Unmix HQ | 8.9M | 136 MB | 0.23 | 4.3x रियल-टाइम |
| Open-Unmix L | 28.3M | 432 MB | 0.21 | 4.8x रियल-टाइम |
UMX-HQ एक हल्के 8.9M मॉडल के साथ vocals और drums पर प्रकाशित SDR से मेल खाता है। UMX-L 3x मॉडल आकार पर +2–4 dB सुधार प्रदान करता है। दोनों multichannel Wiener EM पोस्ट-फ़िल्टरिंग शामिल करते हैं और Apple Silicon पर रियल-टाइम से तेज़ चलते हैं।
पुनरुत्पादन
# 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