Benchmarks

Un RTF (facteur temps réel) inférieur à 1,0 signifie plus rapide que le temps réel.

Apple Silicon (MLX + CoreML)

Tous les benchmarks sur M2 Max, 64 Go, macOS 14 avec des builds release et une metallib compilée.

ASR — Taux d'erreur sur les mots

Évalué sur LibriSpeech test-clean (2620 énoncés, ~5,4 heures de parole lue en anglais).

ModèleBitsTailleWER%RTF
Qwen3-ASR 1.7B8 bits2,3 Go2,350,090
Qwen3-ASR 1.7B4 bits1,2 Go2,570,045
Parakeet TDT 0.6BINT8634 Mo2,740,089
Qwen3-ASR 0.6B8 bits960 Mo2,800,025
Qwen3-ASR 0.6B4 bits675 Mo3,340,023

Comparaison avec les modèles publiés

ModèleParamètresTaillePrécisionWER%Source
Qwen3-ASR 1.7B1,7B2,3 Go8 bits2,35Ce benchmark
Whisper Large v3 Turbo809M1,6 GoFP162,5OpenAI (2024)
Qwen3-ASR 1.7B1,7B1,2 Go4 bits2,57Ce benchmark
Whisper Large v31,5B3,1 GoFP162,7OpenAI (2023)
Parakeet TDT 0.6B600M634 MoINT82,74Ce benchmark
Qwen3-ASR 0.6B600M960 Mo8 bits2,80Ce benchmark
Whisper Medium769M1,5 GoFP163,0OpenAI (2022)
Qwen3-ASR 0.6B600M675 Mo4 bits3,34Ce benchmark
Whisper Small244M483 MoFP163,4OpenAI (2022)

Stabilité en forme longue (charge Neural Engine soutenue)

200 énoncés LibriSpeech traités séquentiellement (~30 min d'audio, M2 Max). Vérifie si le WER ou la latence se dégradent sous transcription soutenue.

MétriquePremier 25%Dernier 25%Global
WER%1,301,232,43
RTF0,6720,4000,539

Aucune dégradation détectée. Le WER reste stable tout au long de la session. Le RTF s'améliore en fait à mesure que CoreML préchauffe son cache de plan d'exécution. Aucune limitation thermique après 42 minutes d'inférence Neural Engine continue. Parakeet traite chaque chunk indépendamment — pas d'accumulation d'état entre chunks.

Résultats multilingues (FLEURS)

CER utilisé pour les langues CJK (pas de séparation de mots). Parakeet prend en charge environ 25 langues européennes (pas de CJK).

LangueMétriqueQwen3 4 bitsQwen3 8 bitsParakeet INT8
EspagnolWER6,445,065,18
AnglaisWER6,575,649,30
ChinoisCER8,417,71
AllemandWER9,456,8112,33
FrançaisWER11,428,5013,02
JaponaisCER16,118,64
RusseWER16,3510,5211,49
CoréenWER19,956,89
HindiWER25,9318,57
ArabeWER33,4720,31

Delta de compression

Perte de précision due à la quantification vers des largeurs en bits inférieures.

VarianteWER%SubstitutionsInsertionsSuppressionsErreurs totalesTaille
Qwen3 0.6B 8 bits2,801111922681471960 Mo
Qwen3 0.6B 4 bits3,3413231233081754675 Mo
Delta+0,54+212+31+40+283-30%
Parakeet TDT INT82,749901253081423634 Mo
À retenir

Qwen3-ASR 1.7B 8 bits atteint 2,35 % de WER — dépassant Whisper Large v3 Turbo (2,5 %) et Whisper Large v3 (2,7 %) tout en s'exécutant à 11× le temps réel sur Apple Silicon.

TTS — Intelligibilité aller-retour

Synthétiser du texte, puis retranscrire l'audio avec Qwen3-ASR 0.6B et calculer le WER par rapport au texte original. Évalué sur 30 phrases conversationnelles anglaises intégrées.

MoteurModèleParamètresTailleWER%RTF
CosyVoice30.5B 4 bits500M~1,9 Go3,250,59
Qwen3-TTS1.7B 4 bits1,7B~2,3 Go3,470,79
Qwen3-TTS1.7B 8 bits1,7B~3,5 Go3,660,85
Kokoro-82MCoreML82M~170 Mo3,900,17
Qwen3-TTS0.6B 8 bits600M~960 Mo9,740,76
Qwen3-TTS0.6B 4 bits600M~675 Mo15,580,76

Décomposition de la latence (Qwen3-TTS)

ÉtapeTemps% du totalDescription
Embed1-3 ms<1%Embedding du texte (TTFT)
Generate2-6 s~92%Tokens de codec autorégressifs
Decode244-457 ms~8%Décodeur de codec vers forme d'onde
À retenir

Tous les moteurs TTS s'exécutent plus vite que le temps réel (RTF < 1,0). CosyVoice3 est en tête pour l'intelligibilité (3,25 % de WER). Kokoro est le plus rapide (RTF 0,17) à seulement 170 Mo.

VAD — Précision de détection

Évaluation FLEURS (10 langues, 250 fichiers)

Évalué par rapport à la vérité terrain de référence Python FireRedVAD au même seuil.

MoteurParamètresBackendF1%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

Évaluation VoxConverse (multi-locuteurs)

5 fichiers de conversation multi-locuteurs évalués à une résolution de trame de 10 ms.

MoteurParamètresBackendF1%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

Comparaison avec les chiffres publiés

ModèleF1%FAR%MR%ParamètresJeu de données
Pyannote (nous)98,2250,090,191,5MVoxConverse
FireRedVAD (article)97,572,693,62588KFLEURS-VAD-102
Silero (nous)95,9821,025,88309KVoxConverse
Silero-VAD (article)95,959,413,95309KFLEURS-VAD-102
FireRedVAD (nous)94,2169,335,05588KVoxConverse
À retenir

FireRedVAD atteint 99,12 % de F1 sur FLEURS avec le taux de fausses alertes le plus bas (2,52 %) et s'exécute à 135× le temps réel. Silero v5 offre la meilleure option de streaming avec 32 ms par chunk.

Empreintes de locuteur

Latence d'extraction

Clip audio de 20 secondes, 10 itérations après préchauffage.

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

Qualité des embeddings (VoxConverse)

Similarité cosinus entre embeddings au niveau des segments issus de 5 enregistrements multi-locuteurs. Plus la séparation est élevée, meilleure est la discrimination des locuteurs.

ModèleBackendIntra-locuteurInter-locuteurSéparation
WeSpeakerMLX0,7260,1420,584
WeSpeakerCoreML0,7260,1430,582
CAM++CoreML0,7230,3950,328
À retenir

Les trois moteurs égalent la référence Python pyannote (séparation de 0,577, similarité cosinus > 0,96). WeSpeaker atteint une séparation de 0,584 à la fois sur MLX et CoreML. CAM++ s'exécute 5× plus vite (12 ms contre 65 ms) avec une bonne séparation (0,328).

Séparation de sources — SDR

Rapport signal sur distorsion (SDR) sur MUSDB18-HQ (50 pistes de test complètes, stéréo 44,1 kHz). Plus c'est élevé, mieux c'est. Deux tailles de modèle : HQ (8,9M paramètres/stem) et L (28,3M paramètres/stem).

CibleUMX-HQ (MLX)UMX-L (MLX)UMX-HQ (publié)
Voix6,23 dB~10,5 dB6,32 dB
Batterie6,44 dB~7,0 dB5,73 dB
Basse4,56 dB~5,5 dB5,23 dB
Autre3,41 dB~4,5 dB4,02 dB
ModèleParamètres/stemTailleRTFVitesse
Open-Unmix HQ8,9M136 Mo0,234,3× temps réel
Open-Unmix L28,3M432 Mo0,214,8× temps réel
À retenir

UMX-HQ égale le SDR publié sur les voix et la batterie avec un modèle léger de 8,9M. UMX-L apporte une amélioration de +2–4 dB pour 3× la taille du modèle. Les deux incluent un post-filtrage Wiener EM multicanal et s'exécutent plus vite que le temps réel sur Apple Silicon.

Reproduction

# Benchmarks 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 multilingue (FLEURS, téléchargement automatique)
python scripts/benchmark_asr.py --dataset fleurs --language en_us --batch

# Aller-retour TTS
python scripts/benchmark_tts.py --compare

# Comparaison VAD
python scripts/benchmark_vad.py --compare

# Comparaison d'empreintes de locuteur
python scripts/benchmark_speaker.py --compare

# Séparation de sources (MUSDB18-HQ, téléchargeable depuis Zenodo)
python scripts/benchmark_separation.py --data-dir benchmarks/data/musdb18-hq