벤치마크
RTF (실시간 계수)가 1.0보다 작으면 실시간보다 빠르다는 의미입니다.
Apple Silicon (MLX + CoreML)
모든 벤치마크는 릴리즈 빌드와 컴파일된 metallib을 사용해 Apple M5 Pro, 48 GB, macOS 25.5에서 측정되었습니다.
ASR — 단어 오류율
LibriSpeech test-clean (2620 발화, 약 5.4시간의 영어 낭독 음성)에서 평가되었습니다.
| Engine | Quant | WER% | RTF | xRT | Peak RSS |
|---|---|---|---|---|---|
| Qwen3-ASR 1.7B MLX | 8-bit | 1.52 | 0.033 | 30.5× | 2.7 GB |
| WhisperKit Large-v3 Turbo | FP16 | 1.71 | 0.084 | 11.9× | 0.4 GB |
| Qwen3-ASR 0.6B MLX | 8-bit | 1.82 | 0.015 | 66.0× | 1.3 GB |
| 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 |
| Omnilingual CTC 300M MLX | 4-bit | 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 MB |
Headline picks: Qwen3-ASR MLX 1.7B 8-bit beats WhisperKit Large-v3 Turbo on WER (1.52% vs 1.71%) and runs 2.6× faster at 6× the memory. Parakeet TDT v3 is the fastest for English-only (117× real-time, 25 European languages). Omnilingual CTC 300M MLX 4-bit is the multilingual throughput leader: 222× real-time, 384 MB peak, 1 672 languages.
The Qwen3-ASR 0.6B CoreML row reflects the rebuilt chunked block-attention encoder (aufklarer/Qwen3-ASR-CoreML) — the previous export ran unmasked global self-attention over zero-padded mel and emitted <|im_end|> right after the first sentence-final period (24.88% WER on the same fixture before the rebuild).
장시간 안정성 (Neural Engine 지속 부하)
200개의 LibriSpeech 발화를 순차 처리 (약 30분 오디오, M5 Pro). 지속적인 전사 환경에서 WER이나 지연이 저하되는지 테스트합니다.
| 지표 | 처음 25% | 마지막 25% | 전체 |
|---|---|---|---|
| WER% | 1.30 | 1.23 | 2.43 |
| RTF | 0.672 | 0.400 | 0.539 |
저하가 감지되지 않습니다. WER은 세션 전체에 걸쳐 안정적입니다. CoreML이 실행 계획 캐시를 워밍업하면서 RTF는 오히려 향상됩니다. 42분간 연속 Neural Engine 추론 후에도 thermal throttling이 발생하지 않았습니다. Parakeet은 각 청크를 독립적으로 처리하므로 청크 간 상태 누적이 없습니다.
다언어 결과 (FLEURS)
CJK 언어에 대해서는 단어 경계가 없으므로 CER을 사용합니다. Parakeet은 약 25개의 유럽어를 지원합니다 (CJK 미지원).
| 언어 | 지표 | Qwen3 4비트 | Qwen3 8비트 | Parakeet INT8 |
|---|---|---|---|---|
| 스페인어 | WER | 6.44 | 5.06 | 5.18 |
| 영어 | WER | 6.57 | 5.64 | 9.30 |
| 중국어 | CER | 8.41 | 7.71 | — |
| 독일어 | WER | 9.45 | 6.81 | 12.33 |
| 프랑스어 | WER | 11.42 | 8.50 | 13.02 |
| 일본어 | CER | 16.11 | 8.64 | — |
| 러시아어 | WER | 16.35 | 10.52 | 11.49 |
| 한국어 | WER | 19.95 | 6.89 | — |
| 힌디어 | WER | 25.93 | 18.57 | — |
| 아랍어 | WER | 33.47 | 20.31 | — |
압축 델타
낮은 비트폭으로 양자화할 때의 정확도 손실입니다.
| 변형 | WER% | 치환 | 삽입 | 삭제 | 총 오류 | 크기 |
|---|---|---|---|---|---|---|
| Qwen3 0.6B 8비트 | 2.80 | 1111 | 92 | 268 | 1471 | 960 MB |
| Qwen3 0.6B 4비트 | 3.34 | 1323 | 123 | 308 | 1754 | 675 MB |
| 델타 | +0.54 | +212 | +31 | +40 | +283 | -30% |
| Parakeet TDT INT8 | 2.74 | 990 | 125 | 308 | 1423 | 634 MB |
Qwen3-ASR 1.7B 8비트는 2.35% WER을 달성합니다 — Whisper Large v3 Turbo (2.5%)와 Whisper Large v3 (2.7%)를 능가하면서 Apple Silicon에서 실시간의 11배로 실행됩니다.
TTS — 왕복 명료도
텍스트를 합성한 후 Qwen3-ASR 0.6B로 다시 오디오를 전사하고 원본 텍스트와의 WER을 계산합니다. 30개의 내장 영어 대화 문장에서 평가되었습니다.
| 엔진 | 모델 | 파라미터 | 크기 | WER% | RTF |
|---|---|---|---|---|---|
| CosyVoice3 | 0.5B 4비트 | 500M | 약 1.9 GB | 3.25 | 0.59 |
| Qwen3-TTS | 1.7B 4비트 | 1.7B | 약 2.3 GB | 3.47 | 0.79 |
| Qwen3-TTS | 1.7B 8비트 | 1.7B | 약 3.5 GB | 3.66 | 0.85 |
| Kokoro-82M | CoreML | 82M | 약 170 MB | 3.90 | 0.17 |
| Qwen3-TTS | 0.6B 8비트 | 600M | 약 960 MB | 9.74 | 0.76 |
| Qwen3-TTS | 0.6B 4비트 | 600M | 약 675 MB | 15.58 | 0.76 |
지연 분석 (Qwen3-TTS)
| 단계 | 시간 | 전체 비중 | 설명 |
|---|---|---|---|
| 임베드 | 1-3 ms | <1% | 텍스트 임베딩 (TTFT) |
| 생성 | 2-6 s | 약 92% | 자기회귀 코덱 토큰 |
| 디코딩 | 244-457 ms | 약 8% | 코덱 디코더에서 파형으로 |
모든 TTS 엔진이 실시간보다 빠르게 실행됩니다 (RTF < 1.0). CosyVoice3가 명료도(3.25% WER)에서 선두입니다. Kokoro는 단 170 MB로 가장 빠릅니다 (RTF 0.17).
VAD — 감지 정확도
FLEURS 평가 (10개 언어, 250개 파일)
동일한 임계값에서 Python FireRedVAD 레퍼런스 그라운드 트루스 대비 평가했습니다.
| 엔진 | 파라미터 | 백엔드 | 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 평가 (다화자)
5개의 다화자 대화 파일을 10 ms 프레임 해상도로 평가했습니다.
| 엔진 | 파라미터 | 백엔드 | 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 |
공개된 수치와의 비교
| 모델 | F1% | FAR% | MR% | 파라미터 | 데이터셋 |
|---|---|---|---|---|---|
| Pyannote (자체) | 98.22 | 50.09 | 0.19 | 1.5M | VoxConverse |
| FireRedVAD (논문) | 97.57 | 2.69 | 3.62 | 588K | FLEURS-VAD-102 |
| Silero (자체) | 95.98 | 21.02 | 5.88 | 309K | VoxConverse |
| Silero-VAD (논문) | 95.95 | 9.41 | 3.95 | 309K | FLEURS-VAD-102 |
| FireRedVAD (자체) | 94.21 | 69.33 | 5.05 | 588K | VoxConverse |
FireRedVAD는 가장 낮은 거짓 알람률(2.52%)로 FLEURS에서 99.12% F1을 달성하며 실시간의 135배로 실행됩니다. Silero v5는 청크당 32 ms의 최고의 스트리밍 옵션을 제공합니다.
화자 임베딩
추출 지연
20초 오디오 클립, 워밍업 후 10회 반복.
| 모델 | 차원 | 백엔드 | 지연 |
|---|---|---|---|
| CAM++ (3D-Speaker) | 192 | CoreML (ANE) | 12 ms |
| WeSpeaker ResNet34-LM | 256 | MLX (GPU) | 64 ms |
| WeSpeaker ResNet34-LM | 256 | CoreML (ANE) | 143 ms |
임베딩 품질 (VoxConverse)
5개의 다화자 녹음에서 세그먼트 수준 임베딩 간 코사인 유사도. 분리도가 높을수록 화자 구별이 더 우수합니다.
| 모델 | 백엔드 | 화자 내 | 화자 간 | 분리도 |
|---|---|---|---|---|
| WeSpeaker | MLX | 0.726 | 0.142 | 0.584 |
| WeSpeaker | CoreML | 0.726 | 0.143 | 0.582 |
| CAM++ | CoreML | 0.723 | 0.395 | 0.328 |
세 엔진 모두 Python pyannote 레퍼런스 (분리도 0.577, 코사인 유사도 >0.96)와 일치합니다. WeSpeaker는 MLX와 CoreML 모두에서 0.584의 분리도를 달성합니다. CAM++는 양호한 분리도(0.328)를 유지하면서 5배 더 빠르게 (12 ms 대 65 ms) 실행됩니다.
소스 분리 — SDR
MUSDB18-HQ (50개의 풀 길이 테스트 트랙, 스테레오 44.1kHz)에서의 신호 대 왜곡비(SDR). 높을수록 좋습니다. 두 모델 크기: HQ (스템당 8.9M 파라미터)와 L (스템당 28.3M 파라미터).
| 대상 | UMX-HQ (MLX) | UMX-L (MLX) | UMX-HQ (논문) |
|---|---|---|---|
| 보컬 | 6.23 dB | 약 10.5 dB | 6.32 dB |
| 드럼 | 6.44 dB | 약 7.0 dB | 5.73 dB |
| 베이스 | 4.56 dB | 약 5.5 dB | 5.23 dB |
| 기타 | 3.41 dB | 약 4.5 dB | 4.02 dB |
| 모델 | 스템당 파라미터 | 크기 | RTF | 속도 |
|---|---|---|---|---|
| Open-Unmix HQ | 8.9M | 136 MB | 0.23 | 실시간의 4.3배 |
| Open-Unmix L | 28.3M | 432 MB | 0.21 | 실시간의 4.8배 |
UMX-HQ는 경량 8.9M 모델로 보컬과 드럼에서 공개된 SDR과 일치합니다. UMX-L은 모델 크기의 3배로 +2–4 dB 향상을 제공합니다. 둘 모두 multichannel Wiener EM 후처리 필터링을 포함하며 Apple Silicon에서 실시간보다 빠르게 실행됩니다.
재현
# ASR 벤치마크 (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 다언어 (FLEURS, 자동 다운로드)
python scripts/benchmark_asr.py --dataset fleurs --language en_us --batch
# TTS 왕복
python scripts/benchmark_tts.py --compare
# VAD 비교
python scripts/benchmark_vad.py --compare
# 화자 임베딩 비교
python scripts/benchmark_speaker.py --compare
# 소스 분리 (MUSDB18-HQ, Zenodo에서 다운로드)
python scripts/benchmark_separation.py --data-dir benchmarks/data/musdb18-hq