Benchmarklar

RTF (gerçek zamanlı faktör) değerinin 1.0'ın altında olması gerçek zamanlıdan daha hızlı anlamına gelir.

Apple Silicon (MLX + CoreML)

Tüm benchmarklar Apple M5 Pro, 48 GB, macOS 25.5 üzerinde release derlemeleri ve derlenmiş metallib ile çalıştırıldı.

ASR — Kelime Hata Oranı

LibriSpeech test-clean üzerinde değerlendirildi (2620 söyleniş, ~5.4 saat İngilizce okuma konuşması).

EngineQuantWER%RTFxRTPeak RSS
Qwen3-ASR 1.7B MLX5-bit1.320.02736.4×1.92 GB
Qwen3-ASR 1.7B MLX8-bit1.520.03330.5×2.7 GB
Qwen3-ASR 0.6B MLX8-bit1.820.01566.0×1.3 GB
Qwen3-ASR 0.6B MLX5-bit1.740.01470.5×1.03 GB
WhisperKit Large-v3 TurboFP161.710.08411.9×0.4 GB
WhisperASR native CoreMLFP161.400.08914.0×384 MB
Qwen3-ASR 0.6B MLX4-bit2.200.01285.6×1.0 GB
Parakeet TDT v3INT82.370.009117.4×0.9 GB
Qwen3-ASR 0.6B CoreMLINT83.020.09810.2×1.4 GB
Omnilingual CTC 300M MLX4-bit4.260.005222.1×0.4 GB
Omnilingual CTC 300M CoreMLINT85.670.1287.8×0.5 GB
Nemotron StreamingINT82.820.05817.1×961 MB

Öne çıkan seçimler: Qwen3-ASR MLX 1.7B 5-bit, 1.32% WER ile yeni doğruluk lideri: WhisperKit Large-v3 Turbo’yu (1.71%) ve kendi 1.7B 8-bit modelimizi (1.52%) geçiyor, 8-bit’e göre ~600 MB daha az peak RSS kullanıyor ve 23% daha hızlı. Parakeet TDT v3 İngilizce için en hızlısı (117× gerçek zaman, 25 Avrupa dili). Omnilingual CTC 300M MLX 4-bit çok dilli throughput lideri: 222× gerçek zaman, 384 MB peak, 1 672 dil.

Qwen3-ASR 0.6B CoreML satırı yeniden inşa edilen chunked block-attention encoder’ı (aufklarer/Qwen3-ASR-CoreML) yansıtır. Önceki export, zero-padded mel üzerinde maskesiz global self-attention çalıştırıyor ve ilk cümle sonu noktasından hemen sonra <|im_end|> üretiyordu (aynı fixture’da rebuild öncesi 24.88% WER).

Uzun biçim kararlılığı (sürekli Neural Engine yükü)

200 LibriSpeech söylenişi sırayla işlendi (~30 dakika ses, M5 Pro). Sürekli transkripsiyon sırasında WER veya gecikmenin bozulup bozulmadığını test eder.

Metrikİlk %25Son %25Genel
WER%1.301.232.43
RTF0.6720.4000.539

Hiçbir bozulma tespit edilmedi. WER oturum boyunca kararlıdır. CoreML yürütme planı önbelleğini ısıttıkça RTF aslında iyileşir. 42 dakika kesintisiz Neural Engine çıkarımından sonra termal kısıtlama yok. Parakeet her parçayı bağımsız işler — parçalar arası durum birikimi yoktur.

Çok dilli sonuçlar (FLEURS)

CJK dilleri için CER kullanıldı (kelime sınırı yok). Parakeet ~25 Avrupa dilini destekler (CJK yok).

DilMetrikQwen3 4-bitQwen3 8-bitParakeet INT8
İspanyolcaWER6.445.065.18
İngilizceWER6.575.649.30
ÇinceCER8.417.71
AlmancaWER9.456.8112.33
FransızcaWER11.428.5013.02
JaponcaCER16.118.64
RusçaWER16.3510.5211.49
KoreceWER19.956.89
HintçeWER25.9318.57
ArapçaWER33.4720.31

Sıkıştırma farkı

Daha düşük bit genişliklerine niceleme nedeniyle doğruluk kaybı.

VaryantWER%Yerine KoymaEklemeSilmeToplam HataBoyut
Qwen3 0.6B 8-bit2.801111922681471960 MB
Qwen3 0.6B 4-bit3.3413231233081754675 MB
Fark+0.54+212+31+40+283-30%
Parakeet TDT INT82.749901253081423634 MB
Önemli çıkarım

Qwen3-ASR 1.7B MLX, 5-bit’te 1.32% WER’e (8-bit’te 1.52%) ulaşır; WhisperKit Large-v3 Turbo’yu (1.71%) geçer ve Apple Silicon’da 30-36× gerçek zaman hızında çalışır.

TTS — Gidiş-Dönüş Anlaşılırlığı

Metni sentezle, ardından elde edilen sesi Qwen3-ASR 0.6B ile yeniden transkripte et ve orijinal metne karşı WER hesapla. 30 yerleşik İngilizce sohbet cümlesi üzerinde değerlendirildi.

EngineModelParametreBoyutWER%RTF
CosyVoice30.5B 4-bit500M~1.9 GB3.250.59
Qwen3-TTS1.7B 4-bit1.7B~2.3 GB3.470.79
Qwen3-TTS1.7B 8-bit1.7B~3.5 GB3.660.85
Kokoro-82MCoreML82M~170 MB3.900.17
Qwen3-TTS0.6B 8-bit600M~960 MB9.740.76
Qwen3-TTS0.6B 4-bit600M~675 MB15.580.76

Gecikme dökümü (Qwen3-TTS)

AşamaSüreToplam %Açıklama
Embed1-3 ms<1%Metin gömme (TTFT)
Generate2-6 s~92%Otoregresif codec token'ları
Decode244-457 ms~8%Codec çözücüsünden dalga formuna
Önemli çıkarım

Tüm TTS engine'leri gerçek zamanlıdan daha hızlı çalışır (RTF < 1.0). CosyVoice3 anlaşılırlıkta öndedir (%3.25 WER). Kokoro yalnızca 170 MB ile en hızlısıdır (RTF 0.17).

VAD — Algılama Doğruluğu

FLEURS değerlendirmesi (10 dil, 250 dosya)

Aynı eşik değerinde Python FireRedVAD referans doğruluğuna karşı değerlendirildi.

EngineParametreBackendF1%FAR%MR%RTF
FireRedVAD588KCoreML (ANE)99.122.520.470.007
Silero v5309KCoreML (ANE)95.1315.761.890.022
Silero v5309KMLX (GPU)95.1115.851.890.027
Pyannote1.5MMLX (GPU)94.8614.712.920.358

VoxConverse değerlendirmesi (çoklu konuşmacı)

10 ms frame çözünürlüğünde değerlendirilen 5 çoklu konuşmacılı sohbet dosyası.

EngineParametreBackendF1%FAR%MR%RTF
Pyannote1.5MMLX (GPU)98.2250.090.190.358
Silero v5309KCoreML (ANE)97.5233.292.690.022
Silero v5309KMLX (GPU)95.9821.025.880.027
FireRedVAD588KCoreML (ANE)94.2140.125.050.007

Yayımlanmış sayılarla karşılaştırma

ModelF1%FAR%MR%ParametreVeri Kümesi
Pyannote (bizim)98.2250.090.191.5MVoxConverse
FireRedVAD (makale)97.572.693.62588KFLEURS-VAD-102
Silero (bizim)95.9821.025.88309KVoxConverse
Silero-VAD (makale)95.959.413.95309KFLEURS-VAD-102
FireRedVAD (bizim)94.2169.335.05588KVoxConverse
Önemli çıkarım

FireRedVAD FLEURS üzerinde en düşük yanlış alarm oranıyla (%2.52) %99.12 F1 elde eder ve 135x gerçek zamanlı çalışır. Silero v5, parça başına 32 ms ile en iyi akış seçeneğini sunar.

Wake-Word / Anahtar Kelime Algılama

KWS Zipformer (gigaspeech ince ayarlı)

CoreML üzerinde INT8 palettization ile streaming Zipformer2 transducer (3.49M parametre, Apache-2.0). LibriSpeech test-clean üzerinde 12 anahtar kelimeye karşı değerlendirildi (158 pozitif söyleniş, 60 negatif). Ayarlanmış eşikler: acThreshold = 0.15, contextScore = 0.5, numTrailingBlanks = 1.

MetrikDeğerNotlar
RTF (CPU + Neural Engine)0.04M serisinde 26× gerçek zamanlı
Recall (12 anahtar kelime)88%LibriSpeech test-clean, 158 pozitif söyleniş
Söyleniş başına yanlış pozitif0.2760 negatif söyleniş
CoreML INT8 vs PyTorch FP3299%Çıkış uyumu
Derlenmiş model boyutu~4 MBencoder 3.3 MB + decoder 525 KB + joiner 160 KB
Çalışma zamanı belleği~6 MBAğırlıklar + encoder durum önbellekleri

Ayarlanmış varsayılanlar, upstream icefall varsayılanlarına (acThreshold = 0.25, contextScore = 2.0) kıyasla recall'ı %62'den %88'e çıkardı (ve söyleniş başına FP'yi 0.43'ten 0.27'ye düşürdü). Anahtar kelime dosyası formatı ve kelime başına eşik ayarı için wake-word kılavuzuna bakın.

Konuşmacı Gömmeleri

Çıkarım gecikmesi

20 saniyelik ses klibi, ısınma sonrası 10 yineleme.

ModelBoyutBackendGecikme
CAM++ (3D-Speaker)192CoreML (ANE)12 ms
WeSpeaker ResNet34-LM256MLX (GPU)64 ms
WeSpeaker ResNet34-LM256CoreML (ANE)143 ms

Gömme kalitesi (VoxConverse)

5 çoklu konuşmacılı kayıttan segment düzeyindeki gömmeler arasındaki kosinüs benzerliği. Daha yüksek ayrım = daha iyi konuşmacı ayırt etme.

ModelBackendAynı KonuşmacıFarklı KonuşmacıAyrım
WeSpeakerMLX0.7260.1420.584
WeSpeakerCoreML0.7260.1430.582
CAM++CoreML0.7230.3950.328
Önemli çıkarım

Üç engine de Python pyannote referansıyla eşleşir (0.577 ayrım, kosinüs benzerliği >0.96). WeSpeaker hem MLX hem de CoreML üzerinde 0.584 ayrım elde eder. CAM++ 5x daha hızlı çalışır (12 ms vs 65 ms) ve iyi ayrım (0.328) sunar.

Kaynak Ayırma — SDR

MUSDB18-HQ üzerinde Sinyal-Bozulma Oranı (SDR) (50 tam uzunluklu test parçası, stereo 44.1kHz). Daha yüksek daha iyidir. İki model boyutu: HQ (stem başına 8.9M parametre) ve L (stem başına 28.3M parametre).

HedefUMX-HQ (MLX)UMX-L (MLX)UMX-HQ (yayımlanmış)
Vokal6.23 dB~10.5 dB6.32 dB
Davul6.44 dB~7.0 dB5.73 dB
Bas4.56 dB~5.5 dB5.23 dB
Diğer3.41 dB~4.5 dB4.02 dB
ModelParametre/stemBoyutRTFHız
Open-Unmix HQ8.9M136 MB0.234.3x gerçek zamanlı
Open-Unmix L28.3M432 MB0.214.8x gerçek zamanlı
Önemli çıkarım

UMX-HQ, hafif 8.9M modeliyle vokal ve davullarda yayımlanmış SDR'yi yakalar. UMX-L 3 kat daha büyük model boyutunda +2–4 dB iyileşme sağlar. Her ikisi de çok kanallı Wiener EM son filtreleme içerir ve Apple Silicon üzerinde gerçek zamanlıdan daha hızlı çalışır.

Android — cihaz üzerinde (Galaxy S23)

Samsung Galaxy S23 (SM-S918B), arm64, yalnızca CPU üzerinde ölçüldü, belirtilen yerlerde INT8. RTF süre ÷ ses oranıdır (düşük = gerçek zamandan hızlı; <1.0 = gerçek zaman); Peak RSS çalışan modelin yerleşik belleğidir. STT 20 sn’lik bir klip kullanır; TTS RTF veya ilk sese kadar geçen süreyi (TTFA) bildirir.

ModelTaskRuntimeSpeedPeak RSS
Parakeet-EOU 120MStreaming STT + EOUONNX INT80.21 RTF232 MB
Omnilingual CTC 300MMultilingual STTLiteRT0.15 RTF831 MB
Nemotron Streaming 0.6BStreaming STTLiteRT0.67 RTF1.30 GB
Parakeet-TDT 0.6BSTT (batch)ONNX INT80.082 RTF1.15 GB
Supertonic-3 99MTTS (preset voice)LiteRT0.34 RTF · ~1.1 s TTFA832 MB
Kokoro-82MTTS (preset voice)ONNX FP320.53 RTF640 MB

Öne çıkan: Parakeet-EOU-120M buradaki en hafif STT’dir, yalnızca ~232 MB – çok dilli (25 Avrupa dili), akışlı ve yerleşik konuşma sonu algılamasıyla, 0.6B Parakeet’ten yaklaşık 5–6× daha küçük. ONNX’in CPU bellek arenasını devre dışı bırakmak (artık varsayılan) Parakeet-TDT’yi ~1.34 GB’den ~1.15 GB’ye düşürdü.

Yeniden Üretim

# 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