Traducere automată · Originalul în engleză
Teste de performanță
RTF (factor în timp real) sub 1,0 înseamnă mai rapid decât în timp real.
Apple Silicon (MLX + CoreML)
Toate valorile de referință la Apple M5 Pro, 48 GB, macOS 25,5 cu exploatare și compilat metallib. Fiecare motor funcționează într-un proces separat pentru copii (asr-bench --isolated), astfel încât coloana Vârf RSS este costul real per motor, nu o marcă de mare apă secvențială.
ASR
Evaluate la LibriSpeech test-clean, primele 200 de declaraţii (~30 min de vorbire în limba engleză). WER calculate prin intermediul unui normalizator în stilul Whisper + Levenshtein peste jetoane spaţiale albe. Qwen3-ASR 5-bit rânduri au fost măsurate pe un subset de 100-tuterance din acelaşi element de pe M-serie (adăugat atunci când varianta 5 biţi a aterizat); acelaşi normalizor, acelaşi set de date.
| Motor | Cuantic | WER% | RTF | xRT | Vârful RSS |
|---|---|---|---|---|---|
| Qwen3-ASR 1.7B MLX | 5-bit | 1.32 | 0.027 | 36.4× | 1.92 GB |
| Qwen3-ASR 1.7B MLX | 8 biți | 1.52 | 0.033 | 30.5× | 2,7 GB |
| Qwen3-ASR 0,6B MLX | 8 biți | 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 nativ CoreML | FP16 | 1.40 | 0.089 | 14.0× | 384 MO |
| Qwen3-ASR 0,6B MLX | 4 biți | 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 biți | 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 MO |
Alegeri de linie: Qwen3-ASR MLX Z 1.7B 5-bit este noul lider de precizie la 1.32% WER "Bate WhisperKit Large-v3 Turbo (1.71%) și propria noastră 1.7B 8- bit (1.52%) în timpul utilizării ~600 MB mai puțin de vârf RSS decât 8- bit and running 23% Mai repede. Parakeet TDT v3 este cel mai rapid pentru limba engleză (117× timp real; 25 Limbi europene). CTC omnilingual 300Pr MLX 4-Bit este lider multilingv de trecere: 222× timp real; 384 MB vârf, 1 672 limbi străine.
Rândul Qwen3-ASR 0.6B CoreML reflectă codorul reconstruit de blocare (aufklaer/Qwen3-ASR-CoreML) ا exportul anterior a avut o autoatenţie globală demascată faţă de melul cu adaos zero şi emis <|im_end|> imediat după prima teză-finală (24.88% WER pe același dispozitiv înainte de reconstrucție).
Aveți nevoie de un ghid decizional concentrat? A se vedea Qwen3-ASR vs Whisper: precizie, viteză și memorie.
Diarizarea se măsoară separat în opt limbi: a se vedea Diarizarea difuzorului pentru acordul DER și numărul de vorbitori de pyannote Community-1, NVIDIA Sortareformer, MOSS și Cloud Discurs API.
Stabilitate pe termen lung (susţinută Neural Engine sarcină)
200 LibriSpeech speech spees procesed secvențial (~30 min audio, M5 Pro). Testări fie WER sau latență degradează sub transcriere susținută.
| Metrică | Primul 25% | Ultimul 25% | Per ansamblu |
|---|---|---|---|
| WER% | 1.30 | 1.23 | 2.43 |
| RTF | 0.672 | 0.400 | 0.539 |
Nicio degradare detectată. WER nu este stabilă pe parcursul sesiunii. RTF efectiv îmbunătățește ca CoreML încălzește cache-ul planului său de execuție. Nu se mai trolează termic după 42 de minute de continuu Neural Engine. Parakeet procesează fiecare bucată independent
Rezultate multilingve (FLEURS)
CER utilizat pentru limbile CJK (fără limite de cuvinte). Parakeet suportă ~25 de limbi europene (fără CJK).
| Limba | Metrică | Qwen3 4-bit | Qwen3 8-bit | Parakeet INT8 |
|---|---|---|---|---|
| Spaniolă | WER | 6.44 | 5.06 | 5.18 |
| Engleză | WER | 6.57 | 5.64 | 9.30 |
| Chineză | CER | 8.41 | 7.71 | — |
| Germană | WER | 9.45 | 6.81 | 12.33 |
| Franceză | WER | 11.42 | 8.50 | 13.02 |
| Japoneză | CER | 16.11 | 8.64 | — |
| Rusoaică | WER | 16.35 | 10.52 | 11.49 |
| Coreeană | WER | 19.95 | 6.89 | — |
| Hindi | WER | 25.93 | 18.57 | — |
| Arabă | WER | 33.47 | 20.31 | — |
Deltă de compresie
Pierdere de precizie de la cuantizare la lățime de biți mai mică.
| Variantă | WER% | Substituții | Insetări | Deleții | Total erori | Dimensiune |
|---|---|---|---|---|---|---|
| Qwen3 0,6B 8-bit | 2.80 | 1111 | 92 | 268 | 1471 | 960 MO |
| Qwen3 0,6B 4-bit | 3.34 | 1323 | 123 | 308 | 1754 | 675 MO |
| Delta | +0.54 | +212 | +31 | +40 | +283 | -30% |
| Parakeet TDT INT8 | 2.74 | 990 | 125 | 308 | 1423 | 634 MO |
Qwen3-ASR 1.7B MLX ajunge 1.32% WER la 5- bit (1.52% la 8-bit) Large-v3 Turbo (1.71%) în timp ce rulează la 30-36× în timp real Apple Silicon.
TTS
Sintetizează textul, apoi transcrie audio înapoi cu Qwen3-ASR 0.6B și calculează WER împotriva textului original. Evaluat pe 30 propoziții conversaționale în limba engleză.
| Motor | Model | Paramele | Dimensiune | 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-biți | 1.7B | ~3,5 GB | 3.66 | 0.85 |
| Kokoro-82M | CoreML | 82M | ~170 MO | 3.90 | 0.17 |
| Qwen3-TTS | 0.6B 8-bit | 600M | ~960 MO | 9.74 | 0.76 |
| Qwen3-TTS | 0.6B 4-bit | 600M | ~675 MO | 15.58 | 0.76 |
Clonarea vocii (shot zero)
Clonarea vocală cu zero foc din același clip de referință de 12 s; turul turului = Qwen3-ASR transcrierea ieșirii în comparație cu textul de intrare. Apple M5 Pro, 48 GB; RTF este timpul de perete secunde audio (mai scăzut este mai rapid).
| Motor | WER% | Vârful RSS | Audio | Sinteză | RTF | Excursie rotundă |
|---|---|---|---|---|---|---|
| Higgs TTS 3 (clone) | 4B bf16 | 8,6 GB | 6.04 s | 4.73 s | 0.78 | exact |
| F5-TTS (16 pași) | 336M fp16 | 0.8 GB | 5.09 s | 2.91 s | 0.57 | 1-cuvânt sub |
| F5-TTS (32 de etape) | 336M fp16 | 0.8 GB | 5.09 s | 5.75 s | 1.13 | 1-cuvânt sub |
| IndexTTS2 (clonă) | Clasa 1.5B fp16 | 3.0 GB | 5.80 s | 5.8 s | 1.0 | exact |
Defalcarea în funcție de frecvență (Qwen3-TTS)
| Etape | Timp | % din total | Descriere |
|---|---|---|---|
| Încorporează | 1-3 ms | <1% | Încorporarea textului (TTFT) |
| Generează | 2-6 s | ~92% | Jetoane de codec autoregresive |
| Decodează | 244-457 ms | ~8% | Decodor cod pentru a forma unda |
Toate motoarele TTS merg mai repede decât cele în timp real (RTF < 1,0). CosyVoice3 conduce în inteligibilitate (3,25% WER). Kokoro este cel mai rapid (RTF 0,17 la numai 170 MB.
VAD
FLEURS evaluare (10 limbi, 250 dosare)
Evaluat împotriva lui Python FireRedVAD Reference ground truth at the same three.
| Motor | Paramele | Platformă | 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 |
Evaluarea VoxConverse (multi-speaker)
5 fișiere de conversație multi-speaker evaluate la 10 ms rezoluție cadru.
| Motor | Paramele | Platformă | 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 |
Comparație cu numerele publicate
| Model | F1% | FAR% | MR% | Paramele | Set de date |
|---|---|---|---|---|---|
| Pyannote (al nostru) | 98.22 | 50.09 | 0.19 | 1.5M | VoxConverse |
| FireRedVAD (hârtie) | 97.57 | 2.69 | 3.62 | 588K | FLEURS-VAD-102 |
| Silero (al nostru) | 95.98 | 21.02 | 5.88 | 309K | VoxConverse |
| Silero-VAD (hârtie) | 95.95 | 9.41 | 3.95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (al nostru) | 94.21 | 69.33 | 5.05 | 588K | VoxConverse |
FireRedVAD atinge 99.12% F1 la FLEURS cu cea mai mică rată de alarmă falsă (2,52%) și rulează la 135x în timp real. Silero v5 oferă cea mai bună opțiune de streaming la 32 ms per bucată.
Detectarea cuvintelor de activare / cuvintelor-cheie
KWS Zipformer (gigasspeach fin-tune)
Streaming Zipformer2 Traductor (3.49M params, Apache-2.0) cu INT8 palettizare pe CoreMLEvaluat împotriva 12 Cuvinte cheie despre LibriSpeech test-clean (158 declaraţii pozitive, 60 minus). Praguri reglate: acThreshold = 0.15, contextScore = 0.5, numTrailingBlanks = 1.
| Metrică | Valoare | Note |
|---|---|---|
| RTF (CPU + Neural Engine) | 0.04 | 26× în timp real pe seria M |
| Reamintire (12 cuvinte-cheie) | 88% | LibriSpeech test-clean, 158 declaraţii pozitive |
| False pozitive / declaraţii | 0.27 | 60 de declaraţii negative |
| CoreML INT8 vs PyTorch FP32 | 99% | Acordul privind emisiile |
| Dimensiunea modelului compilat | ~4 MO | codor 3.3 MB + decodor 525 KB + joker 160 KB |
| Memorie pe timp de execuție | ~6 MO | Greutate + cache de stare codor |
Rechemarea implicită a fost îmbunătățită de la 62% la 88% (și reduce FP/utt de la 0,43 la 0,27) față de implicitul cascadei de gheață din amonte (acThreshold = 0.25, contextScore = 2.0). A se vedea ghidul de cuvinte wake pentru formatul de fișier cheie și pentru reglajul pragului perfraudă.
Reprezentări vectoriale ale vorbitorilor
Latență de extracție
20 secunde clip audio, 10 iterații după încălzire.
| Model | Dim | Platformă | Latitudine |
|---|---|---|---|
| CAM++ (3D-Speaker) | 192 | CoreML (ANE) | 12 ms |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 ms |
| WeSpeaker ResNet34-LM | 256 | CoreML (ANE) | 143 ms |
Calitate de îmbăiere (VoxConverse)
Asemănări între segmentarea celor 5 înregistrări multi-speaker. Separare mai mare = o mai bună discriminare a vorbitorilor.
| Model | Platformă | Inter-Vorbitor | Inter-Speaker | Separare |
|---|---|---|---|---|
| WeSpeaker | MLX | 0.726 | 0.142 | 0.584 |
| WeSpeaker | CoreML | 0.726 | 0.143 | 0.582 |
| CAM++ | CoreML | 0.723 | 0.395 | 0.328 |
Toate cele trei motoare se potrivesc cu numărul Python pyannote de referință (0,577), cosinus similaritate >0,96. WeSpeaker atinge 0,584 separare atât pe MLX cât și pe CoreML. CAM++ rulează 5x mai rapid (12 ms vs 65 ms) cu o separare bună (0,328).
Sursă:
Raportul semnal-distorție (SDR) pe MUSDB18-HQ (50 piese de încercare cu lungime completă, stereo 44.1kHz). Mai mare este mai bună. Două dimensiuni model: HQ (8.9M params/stem) și L (28.3M param/stem).
| Țintă | UMX-HQ (MLX) | UMX-L (MLX) | UMX-HQ (publicat) |
|---|---|---|---|
| Vocaluri | 6,23 dB | ~10.5 dB | 6,32 dB |
| Tambure | 6,44 dB | ~7,0 dB | 5,73 dB |
| Bass | 4.56 dB | ~5,5 dB | 5,23 dB |
| Altele | 3,41 dB | ~4,5 dB | 4,02 dB |
| Model | Paramele/stemele | Dimensiune | RTF | Viteza |
|---|---|---|---|---|
| Open-Unmix HQ | 8,9M | 136 MO | 0.23 | 4.3x în timp real |
| Deschis- Unmix L | 28,3M | 432 MO | 0.21 | 4.8x în timp real |
UMX-HQ meciuri publicate DST pe vocal și tobe cu un model ușor 8.9M. UMX -L oferă +2"; 4 dB îmbunătățire la 3x dimensiunea modelului. Ambele includ multichannel Wiener EM post-filtrare și rulează mai repede decât în timp real pe Apple Silicon.
Android bază S23)
Măsurat pe o Samsung Galaxy S23 (SM-S918B), arm64, numai CPU, INT8, unde a fost notat. RTF este perete audio (mai mic este mai rapid decât timpul real; <1.0 e timp real); Vârful RSS este setul rezident al modelului de funcționare. Rândurile STT folosesc un clip 20; TTS raportează RTF sau timpul-la-primul-audio (TTFA).
| Model | Sarcina | Timp de execuție | Viteza | Vârful RSS |
|---|---|---|---|---|
| Parakeet-EOU 120M | Streaming STT + EOU | ONNX INT8 | 0.21 RTF | 232 MB |
| CTC 300M omnilingual | STT multilingv | LiteRT | 0.15 RTF | 831 MO |
| 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 (voce prestabilită) | LiteRT | 0,34 RTF · ~1,1 s TTFA | 832 MO |
| Kokoro-82M | TTS (voce prestabilită) | ONNX FP32 | 0.53 RTF | 640 MO |
Titlu: Parakeet-EOU-120M este cel mai uşor STT aici la ~232 MB În cazul în care nu se poate utiliza o metodă de testare, trebuie să se ia în considerare o metodă de analiză pentru a verifica dacă este posibil.25 European), streaming, cu detectarea în linie a sfârşitului de exprimare, aproximativ 5–6× mai ușor decât 0.6B Parakeet- Dezactivarea ONNX CPU arena memoriei (acum implicit) taie Parakeet-TDT din ~1.34 GB la ~1.15 GB.
Reproducere
# 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