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 M2 Max, 64 GB, macOS 14 ü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ı).
| Model | Bit | Boyut | WER% | RTF |
|---|---|---|---|---|
| Qwen3-ASR 1.7B | 8-bit | 2.3 GB | 2.35 | 0.090 |
| Qwen3-ASR 1.7B | 4-bit | 1.2 GB | 2.57 | 0.045 |
| Parakeet TDT 0.6B | INT8 | 634 MB | 2.74 | 0.089 |
| Qwen3-ASR 0.6B | 8-bit | 960 MB | 2.80 | 0.025 |
| Qwen3-ASR 0.6B | 4-bit | 675 MB | 3.34 | 0.023 |
Yayımlanmış modellerle karşılaştırma
| Model | Parametre | Boyut | Hassasiyet | WER% | Kaynak |
|---|---|---|---|---|---|
| Qwen3-ASR 1.7B | 1.7B | 2.3 GB | 8-bit | 2.35 | Bu benchmark |
| Whisper Large v3 Turbo | 809M | 1.6 GB | FP16 | 2.5 | OpenAI (2024) |
| Qwen3-ASR 1.7B | 1.7B | 1.2 GB | 4-bit | 2.57 | Bu benchmark |
| Whisper Large v3 | 1.5B | 3.1 GB | FP16 | 2.7 | OpenAI (2023) |
| Parakeet TDT 0.6B | 600M | 634 MB | INT8 | 2.74 | Bu benchmark |
| Qwen3-ASR 0.6B | 600M | 960 MB | 8-bit | 2.80 | Bu benchmark |
| Whisper Medium | 769M | 1.5 GB | FP16 | 3.0 | OpenAI (2022) |
| Qwen3-ASR 0.6B | 600M | 675 MB | 4-bit | 3.34 | Bu benchmark |
| Whisper Small | 244M | 483 MB | FP16 | 3.4 | OpenAI (2022) |
Uzun biçim kararlılığı (sürekli Neural Engine yükü)
200 LibriSpeech söylenişi sırayla işlendi (~30 dakika ses, M2 Max). Sürekli transkripsiyon sırasında WER veya gecikmenin bozulup bozulmadığını test eder.
| Metrik | İlk %25 | Son %25 | Genel |
|---|---|---|---|
| WER% | 1.30 | 1.23 | 2.43 |
| RTF | 0.672 | 0.400 | 0.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).
| Dil | Metrik | Qwen3 4-bit | Qwen3 8-bit | Parakeet INT8 |
|---|---|---|---|---|
| İspanyolca | WER | 6.44 | 5.06 | 5.18 |
| İngilizce | WER | 6.57 | 5.64 | 9.30 |
| Çince | CER | 8.41 | 7.71 | — |
| Almanca | WER | 9.45 | 6.81 | 12.33 |
| Fransızca | WER | 11.42 | 8.50 | 13.02 |
| Japonca | CER | 16.11 | 8.64 | — |
| Rusça | WER | 16.35 | 10.52 | 11.49 |
| Korece | WER | 19.95 | 6.89 | — |
| Hintçe | WER | 25.93 | 18.57 | — |
| Arapça | WER | 33.47 | 20.31 | — |
Sıkıştırma farkı
Daha düşük bit genişliklerine niceleme nedeniyle doğruluk kaybı.
| Varyant | WER% | Yerine Koyma | Ekleme | Silme | Toplam Hata | Boyut |
|---|---|---|---|---|---|---|
| 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 |
| Fark | +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 elde eder — Whisper Large v3 Turbo'yu (%2.5) ve Whisper Large v3'ü (%2.7) geçer ve Apple Silicon üzerinde 11x gerçek zamanlı ç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.
| Engine | Model | Parametre | Boyut | 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 |
Gecikme dökümü (Qwen3-TTS)
| Aşama | Süre | Toplam % | Açıklama |
|---|---|---|---|
| Embed | 1-3 ms | <1% | Metin gömme (TTFT) |
| Generate | 2-6 s | ~92% | Otoregresif codec token'ları |
| Decode | 244-457 ms | ~8% | Codec çözücüsünden dalga formuna |
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.
| Engine | Parametre | 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 değerlendirmesi (çoklu konuşmacı)
10 ms frame çözünürlüğünde değerlendirilen 5 çoklu konuşmacılı sohbet dosyası.
| Engine | Parametre | 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 |
Yayımlanmış sayılarla karşılaştırma
| Model | F1% | FAR% | MR% | Parametre | Veri Kümesi |
|---|---|---|---|---|---|
| Pyannote (bizim) | 98.22 | 50.09 | 0.19 | 1.5M | VoxConverse |
| FireRedVAD (makale) | 97.57 | 2.69 | 3.62 | 588K | FLEURS-VAD-102 |
| Silero (bizim) | 95.98 | 21.02 | 5.88 | 309K | VoxConverse |
| Silero-VAD (makale) | 95.95 | 9.41 | 3.95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (bizim) | 94.21 | 69.33 | 5.05 | 588K | VoxConverse |
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.
| Metrik | Değer | Notlar |
|---|---|---|
| RTF (CPU + Neural Engine) | 0.04 | M serisinde 26× gerçek zamanlı |
| Recall (12 anahtar kelime) | 88% | LibriSpeech test-clean, 158 pozitif söyleniş |
| Söyleniş başına yanlış pozitif | 0.27 | 60 negatif söyleniş |
| CoreML INT8 vs PyTorch FP32 | 99% | Çıkış uyumu |
| Derlenmiş model boyutu | ~4 MB | encoder 3.3 MB + decoder 525 KB + joiner 160 KB |
| Çalışma zamanı belleği | ~6 MB | Ağı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.
| Model | Boyut | Backend | Gecikme |
|---|---|---|---|
| CAM++ (3D-Speaker) | 192 | CoreML (ANE) | 12 ms |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 ms |
| WeSpeaker ResNet34-LM | 256 | CoreML (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.
| Model | Backend | Aynı Konuşmacı | Farklı Konuşmacı | Ayrım |
|---|---|---|---|---|
| WeSpeaker | MLX | 0.726 | 0.142 | 0.584 |
| WeSpeaker | CoreML | 0.726 | 0.143 | 0.582 |
| CAM++ | CoreML | 0.723 | 0.395 | 0.328 |
Üç 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).
| Hedef | UMX-HQ (MLX) | UMX-L (MLX) | UMX-HQ (yayımlanmış) |
|---|---|---|---|
| Vokal | 6.23 dB | ~10.5 dB | 6.32 dB |
| Davul | 6.44 dB | ~7.0 dB | 5.73 dB |
| Bas | 4.56 dB | ~5.5 dB | 5.23 dB |
| Diğer | 3.41 dB | ~4.5 dB | 4.02 dB |
| Model | Parametre/stem | Boyut | RTF | Hız |
|---|---|---|---|---|
| Open-Unmix HQ | 8.9M | 136 MB | 0.23 | 4.3x gerçek zamanlı |
| Open-Unmix L | 28.3M | 432 MB | 0.21 | 4.8x gerçek zamanlı |
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.
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