Tłumaczenie automatyczne · Oryginał angielski
Testy wydajności
RTF (czynnik czasu rzeczywistego) poniżej 1.0 oznacza szybszy niż czas rzeczywistego.
Apple Silicon (MLX + CoreML)
Wszystkie punkty odniesienia dotyczące Jabłko M5 Pro, 48 GB, macOS 25.5 Każdy silnik pracuje w oddzielnym procesie dziecięcym (asr-bench --isolated) więc kolumna RSS jest prawdziwym kosztem silnika, a nie sekwencyjnym znakiem wysokowodnym.
ASR - wskaźnik błędów w słowach
Ocena Test LibriSpeech-clean, pierwszy 200 wypowiedzi (~30 min angielskiego czytania mowy). WER Obliczony za pomocą normalizatora w stylu Whisper + Levenshtein nad żetonów Whitespace. Qwen3-ASR 5- bit Wiersze zostały zmierzone na podzbiorze 100-utterance tego samego urządzenia na serii M- (dodano, gdy wariant 5- bit wylądował); ten sam normalizator, ten sam zestaw danych.
| Silnik | Kwant | WER% | RTF | xRT | Szczyt RSS |
|---|---|---|---|---|---|
| Qwen3-ASR 1.7B MLX | 5- bit | 1.32 | 0.027 | 36.4× | 1,92 GB |
| Qwen3-ASR 1.7B MLX | 8- bit | 1.52 | 0.033 | 30.5× | 2,7 GB |
| Qwen3-ASR 0.6B MLX | 8- bit | 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 tubylec CoreML | FP16 | 1.40 | 0.089 | 14.0× | 384 MB |
| 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 |
| Omnillingual CTC 300M MLX | 4- bit | 4.26 | 0.005 | 222.1× | 0.4 GB |
| Omnillingual CTC 300M CoreML | INT8 | 5.67 | 0.128 | 7.8× | 0,5 GB |
| Streaming Nemotron | INT8 | 2.82 | 0.058 | 17.1× | 961 MB |
Wytryski nagłowne: Qwen3-ASR MLX 1.7B 5- bit jest nowym liderem dokładności w 1.32% WER - Bije WhisperKit Large-v3 Turbo (1.71%) i nasze własne 1.7B 8- bit (1.52%) podczas stosowania ~600 MB mniej szczytowy RSS niż 8-bit i running 23% Szybciej. Parakeet TDT v3 jest najszybszy tylko dla Anglików (117× czas realny, 25 Języki europejskie). 300do MLX 4-bit jest wielojęzycznym liderem przepustowości: 222× czas realny, 384 Pik MB, 1 672 języków.
Wiersz Qwen3-ASR 0.6B CoreML odzwierciedla odbudowany, odbudowany, block- attention encoder (aufklarer / Qwen3-ASR-CoreML) - poprzedni eksport prowadził niezamaskowaną uwagę globalną nad zero- wyściełanym mlem i emitowany <|im_end|> tuż po pierwszym wyroku końcowym (24.88% WER na tym samym urządzeniu przed odbudową).
Potrzebujesz ukierunkowanego przewodnika decyzji? Qwen3-ASR vs Whisper: dokładność, prędkość i pamięć.
Diaryzacja jest mierzona oddzielnie w ośmiu językach: patrz Wartości odniesienia diaryzacji głośników w przypadku porozumienia w sprawie DER i umowy w sprawie liczenia głośników w piannote Community-1, NVIDIA Sortformer, MOSS i Chmura mowy API.
Stabilność postaci długich (trwałe obciążenie Neural Engine)
200 LibriSpeech utterances przetworzone kolejno (~ 30 min audio, M5 Pro). Testy czy WER lub degradacji opóźnień w trwałej transkrypcji.
| Metric | Pierwsze 25% | Ostatnie 25% | Ogółem |
|---|---|---|---|
| WER% | 1.30 | 1.23 | 2.43 |
| RTF | 0.672 | 0.400 | 0.539 |
Nie wykryto degradacji. WER jest stabilny w trakcie sesji. RTF rzeczywiście poprawia się, jak CoreML Ogrzewa swój plan wykonania cache. Brak termicznego zaciskania po 42 minuty ciągłego Neural Engine Wniosek. Parakeet przetwarza każdy kawałek niezależnie - bez kumulacji stanu krzyżowego.
Wielojęzyczne wyniki (FLEURS)
CER używane w językach CJK (bez granic słownych). Parakeet obsługuje ~ 25 języki europejskie (bez CJK).
| Język | Metric | Qwen3 4- bit | Qwen3 8- bit | Parakeet INT8 |
|---|---|---|---|---|
| Hiszpański | WER | 6.44 | 5.06 | 5.18 |
| Angielski | WER | 6.57 | 5.64 | 9.30 |
| Chiński | CER | 8.41 | 7.71 | — |
| Niemiecki | WER | 9.45 | 6.81 | 12.33 |
| Francuski | WER | 11.42 | 8.50 | 13.02 |
| Japoński | CER | 16.11 | 8.64 | — |
| Rosyjski | WER | 16.35 | 10.52 | 11.49 |
| Koreański | WER | 19.95 | 6.89 | — |
| Hindi | WER | 25.93 | 18.57 | — |
| Arabski | WER | 33.47 | 20.31 | — |
Kompresja delta
Utrata dokładności od kwantyzacji do dolnej szerokości bitu.
| Wariant | WER% | Substytucje | Wpisy | Usunięcia | Błędy ogółem | Rozmiar |
|---|---|---|---|---|---|---|
| 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 |
| Delta | +0.54 | +212 | +31 | +40 | +283 | -30% |
| Parakeet TDT INT8 | 2.74 | 990 | 125 | 308 | 1423 | 634 MB |
Qwen3-ASR 1.7B MLX 1.32% WER at 5- bit (1.52% at 8-bit) - bicie WhisperKit Large-v3 Turbo (1.71%) podczas biegu na 30-36× real- time Apple Silicon.
TTS - Przejażdżka po okrągłych drogach
Zsynchronizować tekst, a następnie przepisywać audio z powrotem Qwen3-ASR 0.6B i obliczyć WER względem tekstu oryginalnego. Oceniane na 30 built- w angielskich zdaniach konwersacyjnych.
| Silnik | Wzór | Params | Rozmiar | 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 |
Klonowanie głosu (zero- shot)
Klonowanie głosu zeroshot z tego samego klipu referencyjnego 12; rundtrip = Qwen3-ASR transkrypcja wyjścia w porównaniu z tekstem wejściowym. Apple M5 Pro, 48 GB; RTF jest czas sciana ¶ sekunda audio (niższy jest szybszy).
| Silnik | WER% | Szczyt RSS | Audio | Synth | RTF | Podróż dookoła |
|---|---|---|---|---|---|---|
| Higgs TTS 3 (klon) | 4B bf16 | 8.6 GB | 6.04 s | 4.73 s | 0.78 | dokładnie |
| F5-TTS (stopnie 16) | 336M fp16 | 0.8 GB | 5,09 s | 2,91 s | 0.57 | 1- słowo sub |
| F5-TTS (stopnie 32) | 336M fp16 | 0.8 GB | 5,09 s | 5,75 s | 1.13 | 1- słowo sub |
| IndexTTS2 (klon) | 1.5B- class fp16 | 3.0 GB | 5,80 s | 5.8 s | 1.0 | dokładnie |
Podział na ułamki (Qwen3-TTS)
| Etap | Czas | % całości | Opis |
|---|---|---|---|
| Zamontowane | 1-3 ms | <1% | Osadzanie tekstu (TTFT) |
| Generuj | 2- 6 s | ~92% | Autoregresywne żetony kodekowe |
| Dekodowanie | 244- 457 ms | ~8% | Dekoder kodekowy do formy falowej |
Wszystkie TTS silniki działają szybciej niż w czasie rzeczywistym (RTF < 1.0). CosyVoice3 prowadzi w inteligentności (3.25% WER). Kokoro jest najszybszy (RTF 0.17) tylko w 170 MB.
VAD - dokładność wykrywania
Ocena FLEURS (języki 10, pliki 250)
Oceniany pod kątem prawdy odniesienia Python FireRedVAD przy tym samym progu.
| Silnik | Params | Wstecz | 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 |
Ocena VoxConverse (wielogłośnikowa)
5 plików wielośmówkowych z rozdzielczością 10 ms.
| Silnik | Params | Wstecz | 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 |
Porównanie z opublikowanymi liczbami
| Wzór | F1% | FAR% | MR% | Params | Zestaw danych |
|---|---|---|---|---|---|
| Pyannote (nasz) | 98.22 | 50.09 | 0.19 | 1,5M | VoxConverse |
| FireRedVAD (papier) | 97.57 | 2.69 | 3.62 | 588K | FLEURS-VAD-102 |
| Silero (nasz) | 95.98 | 21.02 | 5.88 | 309K | VoxConverse |
| Silero- VAD (papier) | 95.95 | 9.41 | 3.95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (nasz) | 94.21 | 69.33 | 5.05 | 588K | VoxConverse |
FireRedVAD osiąga 99.12% F1 na FLEURS z najniższą false alarm rate (2.52%) i działa w czasie rzeczywistym 135x. Silero v5 zapewnia najlepszą opcję strumieniowania w 32 ms per chunk.
Wykrywanie słów wybudzających / kluczowych
KWS Zipformer (gigaspeech fine- tune)
Strumieniowanie Zipformer2 przetwornik (3.49M params, Apache-2.0) z INT8 paletyzacja CoreML. Oceniany przeciwko 12 słowa kluczowe na LibriSpeech test- clean (158 pozytywne wypowiedzi, 60 ujemne). Progi dostrojone: acThreshold = 0.15, contextScore = 0.5, numTrailingBlanks = 1.
| Metric | Wartość | Uwagi |
|---|---|---|
| RTF (CPU + Neural Engine) | 0.04 | 26 × real- time na serii M- |
| Przypomnij (12 słów kluczowych) | 88% | LibriSpeech test-clean, 158 pozytywnych wypowiedzi |
| Fałszywe pozytywne / wymowne | 0.27 | 60 negatywnych wypowiedzi |
| CoreML INT8 vs PyTorch FP32 | 99% | Umowa w sprawie emisji |
| Kompilowany rozmiar modelu | ~ 4 MB | koder 3,3 MB + dekoder 525 KB + łącznik 160 KB |
| Pamięć Runtime | ~ 6 MB | Wagi + bufory stanu enkodera |
Domyślne przycinanie poprawiło odzyskanie od 62% do 88% (i wycięło FP / utt z 0.43 na 0.27) w stosunku do domyślnych icefall (acThreshold = 0.25, contextScore = 2.0). Patrz Przewodnik po słowie budzenia dla formatu plików keyword- file i dostrajania progów fraza.
Embeddingi mówców
Opóźnienie ekstrakcji
20- sekundowy klip audio, 10 iteracji po rozgrzewce.
| Wzór | Dim | Wstecz | Opóźnienie |
|---|---|---|---|
| CAM + + (3D- Speaker) | 192 | CoreML (ANE) | 12 ms |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 ms |
| WeSpeaker ResNet34-LM | 256 | CoreML (ANE) | 143 ms |
Jakość osadzania (VoxConverse)
Cosine podobieństwo między segment- level osadzania z 5 multigłośników nagrań. Wyższa separacja = lepsza dyskryminacja głośników.
| Wzór | Wstecz | Intra- Speaker | Inter- Speaker | Separacja |
|---|---|---|---|---|
| WeSpeaker | MLX | 0.726 | 0.142 | 0.584 |
| WeSpeaker | CoreML | 0.726 | 0.143 | 0.582 |
| CAM + + | CoreML | 0.723 | 0.395 | 0.328 |
Wszystkie trzy silniki pasują do odniesienia do Python piannote (separacja 0.577, podobieństwo cosinusa > 0.96). WeSpeaker osiąga Separacja 0.584 w sprawie zarówno MLX, jak i CoreML. CAM + + 5x szybciej (12 ms vs. 65 ms) z dobrym oddzieleniem (0.328).
Separacja źródeł - SDR
Wskaźnik zakłóceń (SDR) MUSDB18-HQ (50 Ścieżki testowe o pełnej długości, stereo 44.1kHz). Wyższy jest lepszy. Dwa rozmiary modelu: HQ (8.9M params / stem) i L (28.3M params / stem).
| Cel | UMX- HQ (MLX) | UMX- L (MLX) | UMX- HQ (opublikowane) |
|---|---|---|---|
| Głosy | 6.23 dB | ~ 10.5 dB | 6,32 dB |
| Bębny | 6.44 dB | ~ 7.0 dB | 5,73 dB |
| Bass | 4,56 dB | ~ 5.5 dB | 5,23 dB |
| Inne | 3,41 dB | ~ 4.5 dB | 4.02 dB |
| Wzór | Paramy / trzpień | Rozmiar | RTF | Prędkość |
|---|---|---|---|---|
| Open- Unmix HQ | 8.9M | 136 MB | 0.23 | 4.3x czasu rzeczywistego |
| Open- Unmix L | 28,3M | 432 MB | 0.21 | 4,8x czasu rzeczywistego |
UMX- HQ mecze opublikowane SDR na wokalach i bębnach z lekkim modelu 8.9M. UMX-L zapewnia + 2- 4 dB poprawy w 3x rozmiar modelu. Oba obejmują wiener wielowarstwowy EM postfiltrowanie i działa szybciej niż w czasie rzeczywistym na Apple Silicon.
Android - urządzenie pokładowe (Galaxy S23)
Zmierzone na Samsung Galaxy S23 (SM-S918B), arm64, CPU Tylko, INT8 gdzie zauważono. RTF jest ściana ¶ audio (niższy jest szybszy od czasu rzeczywistego; < 1.0 to czas rzeczywisty); Peak RSS jest zbiorem rezydentów modelu running. STT rzędy używają klipu 20; TTS raportuje RTF lub time- to- first-audio (TTFA).
| Wzór | Zadanie | Czas działania | Prędkość | Szczyt RSS |
|---|---|---|---|---|
| Parakeet- EOU 120M | Streaming STT + EOU | ONNX INT8 | 0.21 RTF | 232 MB |
| Omnillingual CTC 300M | Wielojęzyczny STT | LiteRT | 0.15 RTF | 831 MB |
| Nemotron Streaming 0.6B | Streaming STT | LiteRT | 0.67 RTF | 1,30 GB |
| Parakeet- TDT 0,6B | STT (partia) | ONNX INT8 | 0.082 RTF | 1,15 GB |
| Supertonic-3 99M | TTS (preset voice) | LiteRT | 0.34 RTF · ~1.1 s TTFA | 832 MB |
| Kokoro-82M | TTS (preset voice) | ONNX FP32 | 0.53 RTF | 640 MB |
Nagłówek: Parakeet-EOU-120M jest najlżejszym STT tutaj w - 232 MB - wielojęzyczny (25 Europejska), strumieniowa, z inline end- of- exterance detection, w przybliżeniu 5–6× lżejszy niż 0.6B ParakeetWyłączenie ONNX CPU arena pamięci (teraz domyślnie) wyciąć Parakeet- TDT z ~1.34 GB do ~1.15 GB.
Powielanie
# 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