Benchmark

RTF (hệ số thời gian thực) dưới 1.0 nghĩa là nhanh hơn thời gian thực.

Apple Silicon (MLX + CoreML)

Tất cả benchmark chạy trên M2 Max, 64 GB, macOS 14 với bản dựng release và metallib đã biên dịch.

ASR — Tỷ lệ lỗi từ

Đánh giá trên LibriSpeech test-clean (2620 câu thoại, ~5.4 giờ giọng đọc tiếng Anh).

Mô hìnhBitDung lượngWER%RTF
Qwen3-ASR 1.7B8-bit2.3 GB2.350.090
Qwen3-ASR 1.7B4-bit1.2 GB2.570.045
Parakeet TDT 0.6BINT8634 MB2.740.089
Qwen3-ASR 0.6B8-bit960 MB2.800.025
Qwen3-ASR 0.6B4-bit675 MB3.340.023

So sánh với các mô hình đã công bố

Mô hìnhTham sốDung lượngĐộ chính xácWER%Nguồn
Qwen3-ASR 1.7B1.7B2.3 GB8-bit2.35Benchmark này
Whisper Large v3 Turbo809M1.6 GBFP162.5OpenAI (2024)
Qwen3-ASR 1.7B1.7B1.2 GB4-bit2.57Benchmark này
Whisper Large v31.5B3.1 GBFP162.7OpenAI (2023)
Parakeet TDT 0.6B600M634 MBINT82.74Benchmark này
Qwen3-ASR 0.6B600M960 MB8-bit2.80Benchmark này
Whisper Medium769M1.5 GBFP163.0OpenAI (2022)
Qwen3-ASR 0.6B600M675 MB4-bit3.34Benchmark này
Whisper Small244M483 MBFP163.4OpenAI (2022)

Độ ổn định dạng dài (tải Neural Engine liên tục)

200 câu thoại LibriSpeech được xử lý tuần tự (~30 phút âm thanh, M2 Max). Kiểm tra xem WER hoặc độ trễ có suy giảm khi chuyển lời nói liên tục hay không.

Chỉ số25% đầu25% cuốiTổng thể
WER%1.301.232.43
RTF0.6720.4000.539

Không phát hiện suy giảm. WER ổn định xuyên suốt phiên làm việc. RTF thậm chí còn cải thiện khi CoreML làm nóng cache kế hoạch thực thi. Không bị throttling nhiệt sau 42 phút suy luận Neural Engine liên tục. Parakeet xử lý từng đoạn độc lập — không tích lũy trạng thái giữa các đoạn.

Kết quả đa ngôn ngữ (FLEURS)

Dùng CER cho các ngôn ngữ CJK (không có ranh giới từ). Parakeet hỗ trợ ~25 ngôn ngữ châu Âu (không có CJK).

Ngôn ngữChỉ sốQwen3 4-bitQwen3 8-bitParakeet INT8
Tiếng Tây Ban NhaWER6.445.065.18
Tiếng AnhWER6.575.649.30
Tiếng TrungCER8.417.71
Tiếng ĐứcWER9.456.8112.33
Tiếng PhápWER11.428.5013.02
Tiếng NhậtCER16.118.64
Tiếng NgaWER16.3510.5211.49
Tiếng HànWER19.956.89
Tiếng HindiWER25.9318.57
Tiếng Ả RậpWER33.4720.31

Mức chênh lệch nén

Mất mát độ chính xác khi lượng tử hoá xuống số bit thấp hơn.

Biến thểWER%Thay thếChèn thêmXoá bỏTổng số lỗiDung lượng
Qwen3 0.6B 8-bit2.801111922681471960 MB
Qwen3 0.6B 4-bit3.3413231233081754675 MB
Chênh lệch+0.54+212+31+40+283-30%
Parakeet TDT INT82.749901253081423634 MB
Điểm chính

Qwen3-ASR 1.7B 8-bit đạt WER 2.35% — vượt Whisper Large v3 Turbo (2.5%) và Whisper Large v3 (2.7%) đồng thời chạy ở tốc độ 11x thời gian thực trên Apple Silicon.

TTS — Khả năng dễ hiểu khứ hồi

Tổng hợp văn bản, sau đó chuyển âm thanh thu được trở lại văn bản bằng Qwen3-ASR 0.6B và tính WER so với văn bản gốc. Đánh giá trên 30 câu hội thoại tiếng Anh tích hợp sẵn.

EngineMô hìnhTham sốDung lượngWER%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

Phân rã độ trễ (Qwen3-TTS)

Giai đoạnThời gian% tổngMô tả
Embed1-3 ms<1%Embedding văn bản (TTFT)
Generate2-6 s~92%Token codec tự hồi quy
Decode244-457 ms~8%Bộ giải mã codec ra dạng sóng
Điểm chính

Tất cả engine TTS chạy nhanh hơn thời gian thực (RTF < 1.0). CosyVoice3 dẫn đầu về khả năng dễ hiểu (WER 3.25%). Kokoro là nhanh nhất (RTF 0.17) với dung lượng chỉ 170 MB.

VAD — Độ chính xác phát hiện

Đánh giá FLEURS (10 ngôn ngữ, 250 tệp)

Đánh giá dựa trên ground truth tham chiếu Python FireRedVAD với cùng ngưỡng.

EngineTham sốBackendF1%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

Đánh giá VoxConverse (nhiều người nói)

5 tệp hội thoại nhiều người nói được đánh giá với độ phân giải frame 10 ms.

EngineTham sốBackendF1%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

So sánh với số liệu đã công bố

Mô hìnhF1%FAR%MR%Tham sốDataset
Pyannote (của chúng tôi)98.2250.090.191.5MVoxConverse
FireRedVAD (paper)97.572.693.62588KFLEURS-VAD-102
Silero (của chúng tôi)95.9821.025.88309KVoxConverse
Silero-VAD (paper)95.959.413.95309KFLEURS-VAD-102
FireRedVAD (của chúng tôi)94.2169.335.05588KVoxConverse
Điểm chính

FireRedVAD đạt F1 99.12% trên FLEURS với tỷ lệ báo động giả thấp nhất (2.52%) và chạy ở tốc độ 135x thời gian thực. Silero v5 cung cấp lựa chọn streaming tốt nhất với 32 ms mỗi đoạn.

Wake-Word / Nhận diện từ khoá

KWS Zipformer (fine-tune gigaspeech)

Streaming Zipformer2 transducer (3.49M tham số, Apache-2.0) với palettization INT8 trên CoreML. Đánh giá với 12 từ khoá trên LibriSpeech test-clean (158 câu thoại dương tính, 60 câu âm tính). Ngưỡng đã tinh chỉnh: acThreshold = 0.15, contextScore = 0.5, numTrailingBlanks = 1.

Chỉ sốGiá trịGhi chú
RTF (CPU + Neural Engine)0.0426× thời gian thực trên dòng M
Recall (12 từ khoá)88%LibriSpeech test-clean, 158 câu thoại dương tính
Báo động giả / câu thoại0.2760 câu thoại âm tính
CoreML INT8 so với PyTorch FP3299%Mức độ đồng thuận khi phát ra
Dung lượng mô hình đã biên dịch~4 MBencoder 3.3 MB + decoder 525 KB + joiner 160 KB
Bộ nhớ runtime~6 MBTrọng số + cache trạng thái encoder

Các giá trị mặc định đã tinh chỉnh đã cải thiện recall từ 62% lên 88% (và giảm FP/câu thoại từ 0.43 xuống 0.27) so với mặc định icefall upstream (acThreshold = 0.25, contextScore = 2.0). Xem hướng dẫn wake-word để biết định dạng tệp từ khoá và tinh chỉnh ngưỡng theo từng cụm từ.

Vector hoá người nói

Độ trễ trích xuất

Clip âm thanh 20 giây, 10 lần lặp sau khi làm nóng.

Mô hìnhDimBackendĐộ trễ
CAM++ (3D-Speaker)192CoreML (ANE)12 ms
WeSpeaker ResNet34-LM256MLX (GPU)64 ms
WeSpeaker ResNet34-LM256CoreML (ANE)143 ms

Chất lượng embedding (VoxConverse)

Độ tương đồng cosine giữa các embedding cấp đoạn từ 5 bản ghi nhiều người nói. Độ tách biệt càng cao = phân biệt người nói càng tốt.

Mô hìnhBackendCùng người nóiKhác người nóiĐộ tách biệt
WeSpeakerMLX0.7260.1420.584
WeSpeakerCoreML0.7260.1430.582
CAM++CoreML0.7230.3950.328
Điểm chính

Cả ba engine đều ngang ngửa tham chiếu Python pyannote (độ tách biệt 0.577, độ tương đồng cosine >0.96). WeSpeaker đạt độ tách biệt 0.584 trên cả MLX và CoreML. CAM++ chạy nhanh hơn 5x (12 ms so với 65 ms) với độ tách biệt tốt (0.328).

Tách nguồn âm — SDR

Tỷ số tín hiệu trên méo (SDR) trên MUSDB18-HQ (50 bản nhạc test đầy đủ, stereo 44.1kHz). Càng cao càng tốt. Hai kích thước mô hình: HQ (8.9M tham số/stem) và L (28.3M tham số/stem).

Đối tượngUMX-HQ (MLX)UMX-L (MLX)UMX-HQ (đã công bố)
Giọng hát6.23 dB~10.5 dB6.32 dB
Trống6.44 dB~7.0 dB5.73 dB
Bass4.56 dB~5.5 dB5.23 dB
Khác3.41 dB~4.5 dB4.02 dB
Mô hìnhTham số/stemDung lượngRTFTốc độ
Open-Unmix HQ8.9M136 MB0.234.3x thời gian thực
Open-Unmix L28.3M432 MB0.214.8x thời gian thực
Điểm chính

UMX-HQ ngang bằng SDR đã công bố trên giọng hát và trống với mô hình nhẹ 8.9M. UMX-L mang lại cải thiện +2–4 dB với mô hình lớn gấp 3 lần. Cả hai đều bao gồm hậu lọc Wiener EM đa kênh và chạy nhanh hơn thời gian thực trên Apple Silicon.

Tái lập

# 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