Benchmarks

Un RTF (factor en tiempo real) inferior a 1.0 significa más rápido que el tiempo real.

Apple Silicon (MLX + CoreML)

Todos los benchmarks se han ejecutado en M2 Max, 64 GB, macOS 14 con compilaciones de release y metallib compilada.

ASR — Tasa de error de palabra

Evaluado en LibriSpeech test-clean (2620 enunciados, ~5.4 horas de voz leída en inglés).

ModeloBitsTamañoWER%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

Comparación con modelos publicados

ModeloParámetrosTamañoPrecisiónWER%Fuente
Qwen3-ASR 1.7B1.7B2.3 GB8-bit2.35Este benchmark
Whisper Large v3 Turbo809M1.6 GBFP162.5OpenAI (2024)
Qwen3-ASR 1.7B1.7B1.2 GB4-bit2.57Este benchmark
Whisper Large v31.5B3.1 GBFP162.7OpenAI (2023)
Parakeet TDT 0.6B600M634 MBINT82.74Este benchmark
Qwen3-ASR 0.6B600M960 MB8-bit2.80Este benchmark
Whisper Medium769M1.5 GBFP163.0OpenAI (2022)
Qwen3-ASR 0.6B600M675 MB4-bit3.34Este benchmark
Whisper Small244M483 MBFP163.4OpenAI (2022)

Estabilidad en formato largo (carga sostenida del Neural Engine)

200 enunciados de LibriSpeech procesados secuencialmente (~30 min de audio, M2 Max). Comprueba si el WER o la latencia se degradan bajo transcripción sostenida.

MétricaPrimer 25%Último 25%Total
WER%1.301.232.43
RTF0.6720.4000.539

No se detecta degradación. El WER es estable a lo largo de la sesión. El RTF incluso mejora a medida que CoreML calienta su caché de plan de ejecución. Sin throttling térmico tras 42 minutos de inferencia continua en el Neural Engine. Parakeet procesa cada fragmento de forma independiente, sin acumular estado entre fragmentos.

Resultados multilingües (FLEURS)

Se usa CER para idiomas CJK (sin fronteras de palabra). Parakeet soporta ~25 idiomas europeos (sin CJK).

IdiomaMétricaQwen3 4-bitQwen3 8-bitParakeet INT8
EspañolWER6.445.065.18
InglésWER6.575.649.30
ChinoCER8.417.71
AlemánWER9.456.8112.33
FrancésWER11.428.5013.02
JaponésCER16.118.64
RusoWER16.3510.5211.49
CoreanoWER19.956.89
HindiWER25.9318.57
ÁrabeWER33.4720.31

Delta de compresión

Pérdida de precisión al cuantizar a anchos de bits menores.

VarianteWER%SustitucionesInsercionesEliminacionesErrores totalesTamaño
Qwen3 0.6B 8-bit2.801111922681471960 MB
Qwen3 0.6B 4-bit3.3413231233081754675 MB
Delta+0.54+212+31+40+283-30%
Parakeet TDT INT82.749901253081423634 MB
Conclusión clave

Qwen3-ASR 1.7B 8-bit alcanza un 2.35% WER — superando a Whisper Large v3 Turbo (2.5%) y a Whisper Large v3 (2.7%) mientras se ejecuta a 11× el tiempo real en Apple Silicon.

TTS — Inteligibilidad ida y vuelta

Sintetiza texto, luego transcribe el audio resultante con Qwen3-ASR 0.6B y calcula el WER respecto al texto original. Evaluado sobre 30 frases conversacionales en inglés integradas.

MotorModeloParámetrosTamañoWER%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

Desglose de latencia (Qwen3-TTS)

EtapaTiempo% del totalDescripción
Embed1-3 ms<1%Embedding del texto (TTFT)
Generate2-6 s~92%Tokens de códec autoregresivos
Decode244-457 ms~8%Decodificador de códec a forma de onda
Conclusión clave

Todos los motores TTS se ejecutan más rápido que el tiempo real (RTF < 1.0). CosyVoice3 lidera en inteligibilidad (3.25% WER). Kokoro es el más rápido (RTF 0.17) con tan solo 170 MB.

VAD — Precisión de detección

Evaluación en FLEURS (10 idiomas, 250 archivos)

Evaluado contra la referencia de Python FireRedVAD con el mismo umbral.

MotorParámetrosBackendF1%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

Evaluación en VoxConverse (multi-hablante)

5 archivos de conversación multi-hablante evaluados con resolución de 10 ms por frame.

MotorParámetrosBackendF1%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

Comparación con cifras publicadas

ModeloF1%FAR%MR%ParámetrosDataset
Pyannote (nuestro)98.2250.090.191.5MVoxConverse
FireRedVAD (paper)97.572.693.62588KFLEURS-VAD-102
Silero (nuestro)95.9821.025.88309KVoxConverse
Silero-VAD (paper)95.959.413.95309KFLEURS-VAD-102
FireRedVAD (nuestro)94.2169.335.05588KVoxConverse
Conclusión clave

FireRedVAD alcanza un 99.12% F1 en FLEURS con la menor tasa de falsas alarmas (2.52%) y se ejecuta a 135× el tiempo real. Silero v5 ofrece la mejor opción de streaming con 32 ms por fragmento.

Embeddings de hablante

Latencia de extracción

Clip de audio de 20 segundos, 10 iteraciones tras el calentamiento.

ModeloDimBackendLatencia
CAM++ (3D-Speaker)192CoreML (ANE)12 ms
WeSpeaker ResNet34-LM256MLX (GPU)64 ms
WeSpeaker ResNet34-LM256CoreML (ANE)143 ms

Calidad de los embeddings (VoxConverse)

Similitud del coseno entre embeddings a nivel de segmento de 5 grabaciones multi-hablante. Mayor separación = mejor discriminación de hablantes.

ModeloBackendIntra-hablanteInter-hablanteSeparación
WeSpeakerMLX0.7260.1420.584
WeSpeakerCoreML0.7260.1430.582
CAM++CoreML0.7230.3950.328
Conclusión clave

Los tres motores igualan la referencia Python pyannote (0.577 de separación, similitud del coseno >0.96). WeSpeaker alcanza una separación de 0.584 tanto en MLX como en CoreML. CAM++ se ejecuta 5× más rápido (12 ms frente a 65 ms) con una buena separación (0.328).

Separación de fuentes — SDR

Relación señal-distorsión (SDR) en MUSDB18-HQ (50 pistas de test de duración completa, estéreo a 44.1 kHz). Más alto es mejor. Dos tamaños de modelo: HQ (8.9M parámetros por stem) y L (28.3M parámetros por stem).

ObjetivoUMX-HQ (MLX)UMX-L (MLX)UMX-HQ (publicado)
Voces6.23 dB~10.5 dB6.32 dB
Batería6.44 dB~7.0 dB5.73 dB
Bajo4.56 dB~5.5 dB5.23 dB
Otros3.41 dB~4.5 dB4.02 dB
ModeloParám/stemTamañoRTFVelocidad
Open-Unmix HQ8.9M136 MB0.234.3× tiempo real
Open-Unmix L28.3M432 MB0.214.8× tiempo real
Conclusión clave

UMX-HQ iguala al SDR publicado en voces y batería con un modelo ligero de 8.9M. UMX-L aporta entre +2 y +4 dB de mejora al triple del tamaño de modelo. Ambos incluyen post-filtrado EM Wiener multicanal y se ejecutan más rápido que el tiempo real en Apple Silicon.

Reproducción

# 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