اختبارات الأداء

قيمة RTF (عامل الزمن الحقيقي) أقل من 1.0 تعني أسرع من الزمن الحقيقي.

Apple Silicon (MLX + CoreML)

كل الاختبارات تمت على Apple M5 Pro، 48 GB، macOS 25.5 بإصدارات release وملف metallib مُجمَّع.

ASR — معدل خطأ الكلمات

تم التقييم على LibriSpeech test-clean (2620 نطقًا، نحو 5.4 ساعات من الكلام المقروء بالإنجليزية).

EngineQuantWER%RTFxRTPeak RSS
Qwen3-ASR 1.7B MLX5-bit1.320.02736.4×1.92 GB
Qwen3-ASR 1.7B MLX8-bit1.520.03330.5×2.7 GB
Qwen3-ASR 0.6B MLX8-bit1.820.01566.0×1.3 GB
Qwen3-ASR 0.6B MLX5-bit1.740.01470.5×1.03 GB
WhisperKit Large-v3 TurboFP161.710.08411.9×0.4 GB
WhisperASR native CoreMLFP161.400.08914.0×384 MB
Qwen3-ASR 0.6B MLX4-bit2.200.01285.6×1.0 GB
Parakeet TDT v3INT82.370.009117.4×0.9 GB
Qwen3-ASR 0.6B CoreMLINT83.020.09810.2×1.4 GB
Omnilingual CTC 300M MLX4-bit4.260.005222.1×0.4 GB
Omnilingual CTC 300M CoreMLINT85.670.1287.8×0.5 GB
Nemotron StreamingINT82.820.05817.1×961 MB

أبرز الاختيارات: يصبح Qwen3-ASR MLX 1.7B 5-bit قائد الدقة الجديد عند 1.32% WER، متفوقاً على WhisperKit Large-v3 Turbo (1.71%) وعلى 1.7B 8-bit لدينا (1.52%)، مع استخدام أقل بنحو 600 MB من Peak RSS وسرعة أعلى 23%. Parakeet TDT v3 هو الأسرع للإنجليزية فقط (117× الزمن الحقيقي، 25 لغة أوروبية). Omnilingual CTC 300M MLX 4-bit يتصدر الإنتاجية متعددة اللغات: 222× الزمن الحقيقي، 384 MB peak، و1 672 لغة.

يعكس صف Qwen3-ASR 0.6B CoreML مشفر chunked block-attention المعاد بناؤه (aufklarer/Qwen3-ASR-CoreML). كان التصدير السابق يشغل self-attention عاماً بلا قناع فوق mel محشو بالأصفار ويصدر <|im_end|> مباشرة بعد أول نقطة نهاية جملة (24.88% WER على fixture نفسه قبل إعادة البناء).

الاستقرار في الصيغة الطويلة (حِمل مستمر على Neural Engine)

200 نطق من LibriSpeech تمت معالجتها بالتتابع (~30 دقيقة من الصوت، M5 Pro). الاختبار يتحقق مما إذا كان WER أو التأخير يتراجعان تحت التفريغ المستمر.

المقياسأول 25%آخر 25%الإجمالي
WER%1.301.232.43
RTF0.6720.4000.539

لم يُكتشف أي تراجع. يظل WER ثابتًا طوال الجلسة. بل يتحسن RTF مع تسخين CoreML لذاكرة خطة التنفيذ. لا يحدث أي خفض حراري بعد 42 دقيقة من الاستدلال المتواصل على Neural Engine. يعالج Parakeet كل جزء بشكل مستقل — دون تراكم للحالة بين الأجزاء.

النتائج متعددة اللغات (FLEURS)

يُستخدم CER للغات CJK (لا توجد حدود للكلمات). يدعم Parakeet نحو 25 لغة أوروبية (دون CJK).

اللغةالمقياسQwen3 4-bitQwen3 8-bitParakeet INT8
الإسبانيةWER6.445.065.18
الإنجليزيةWER6.575.649.30
الصينيةCER8.417.71
الألمانيةWER9.456.8112.33
الفرنسيةWER11.428.5013.02
اليابانيةCER16.118.64
الروسيةWER16.3510.5211.49
الكوريةWER19.956.89
الهنديةWER25.9318.57
العربيةWER33.4720.31

فرق الضغط

فقدان الدقة عند التكميم إلى عرض بت أقل.

الإصدارWER%الاستبدالاتالإدخالاتالحذوفاتإجمالي الأخطاءالحجم
Qwen3 0.6B 8-bit2.801111922681471960 MB
Qwen3 0.6B 4-bit3.3413231233081754675 MB
الفرق+0.54+212+31+40+283-30%
Parakeet TDT INT82.749901253081423634 MB
الخلاصة الأساسية

يصل Qwen3-ASR 1.7B MLX إلى 1.32% WER عند 5-bit (1.52% عند 8-bit)، متفوقاً على WhisperKit Large-v3 Turbo (1.71%) مع تشغيل بسرعة 30-36× الزمن الحقيقي على Apple Silicon.

TTS — وضوح ذهابًا وإيابًا

تركيب النص، ثم إعادة تفريغ الصوت باستخدام Qwen3-ASR 0.6B وحساب WER مقارنة بالنص الأصلي. تم التقييم على 30 جملة محادثة مدمجة باللغة الإنجليزية.

المحرّكالنموذجالمعاملاتالحجمWER%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

تفصيل التأخير (Qwen3-TTS)

المرحلةالوقت% من الإجماليالوصف
Embed1-3 ms<1%تضمين النص (TTFT)
Generate2-6 s~92%رموز codec ذاتية الانحدار
Decode244-457 ms~8%فك ترميز codec إلى موجة صوتية
الخلاصة الأساسية

كل محركات TTS تعمل أسرع من الزمن الحقيقي (RTF < 1.0). يتصدّر CosyVoice3 من حيث الوضوح (3.25% WER). أما Kokoro فهو الأسرع (RTF 0.17) بحجم 170 MB فقط.

VAD — دقة الكشف

التقييم على FLEURS (10 لغات، 250 ملفًا)

التقييم بالمقارنة مع المرجع البايثوني FireRedVAD عند نفس العتبة.

المحرّكالمعاملات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

التقييم على VoxConverse (متعدد المتحدثين)

5 ملفات محادثة متعددة المتحدثين، تم تقييمها بدقة إطار 10 ms.

المحرّكالمعاملات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

مقارنة مع الأرقام المنشورة

النموذجF1%FAR%MR%المعاملاتDataset
Pyannote (لدينا)98.2250.090.191.5MVoxConverse
FireRedVAD (paper)97.572.693.62588KFLEURS-VAD-102
Silero (لدينا)95.9821.025.88309KVoxConverse
Silero-VAD (paper)95.959.413.95309KFLEURS-VAD-102
FireRedVAD (لدينا)94.2169.335.05588KVoxConverse
الخلاصة الأساسية

يحقق FireRedVAD نسبة 99.12% F1 على FLEURS مع أدنى معدل إنذار كاذب (2.52%) ويعمل بسرعة 135× الزمن الحقيقي. يوفّر Silero v5 أفضل خيار للبث المباشر بـ 32 ms لكل جزء.

تضمينات المتحدث

تأخير الاستخراج

مقطع صوتي مدته 20 ثانية، 10 تكرارات بعد التسخين.

النموذجDimBackendالتأخير
CAM++ (3D-Speaker)192CoreML (ANE)12 ms
WeSpeaker ResNet34-LM256MLX (GPU)64 ms
WeSpeaker ResNet34-LM256CoreML (ANE)143 ms

جودة التضمينات (VoxConverse)

تشابه جيب التمام بين التضمينات على مستوى المقاطع من 5 تسجيلات متعددة المتحدثين. كلما زاد الفصل، تحسّن التمييز بين المتحدثين.

النموذجBackendداخل المتحدثبين المتحدثينالفصل
WeSpeakerMLX0.7260.1420.584
WeSpeakerCoreML0.7260.1430.582
CAM++CoreML0.7230.3950.328
الخلاصة الأساسية

المحركات الثلاثة جميعها تطابق مرجع pyannote البايثوني (فصل 0.577، تشابه جيب التمام >0.96). يحقق WeSpeaker فصلًا قدره 0.584 على كلٍّ من MLX وCoreML. أما CAM++ فيعمل أسرع 5× (12 ms مقابل 65 ms) مع فصل جيد (0.328).

فصل المصادر — SDR

نسبة الإشارة إلى التشويه (SDR) على MUSDB18-HQ (50 مسارًا اختباريًا بطول كامل، استريو 44.1 kHz). الأعلى أفضل. حجمان للنموذج: HQ (8.9M معاملات لكل stem) وL (28.3M معاملات لكل stem).

الهدفUMX-HQ (MLX)UMX-L (MLX)UMX-HQ (المنشور)
الأصوات6.23 dB~10.5 dB6.32 dB
الطبول6.44 dB~7.0 dB5.73 dB
الجيتار البيس4.56 dB~5.5 dB5.23 dB
أخرى3.41 dB~4.5 dB4.02 dB
النموذجمعاملات/stemالحجمRTFالسرعة
Open-Unmix HQ8.9M136 MB0.234.3× الزمن الحقيقي
Open-Unmix L28.3M432 MB0.214.8× الزمن الحقيقي
الخلاصة الأساسية

يطابق UMX-HQ قيم SDR المنشورة في الأصوات والطبول بنموذج خفيف حجمه 8.9M. ويوفّر UMX-L تحسينًا قدره +2 إلى +4 dB بحجم نموذج يساوي 3 أضعاف. كلاهما يتضمّن ما بعد تصفية EM Wiener متعدد القنوات ويعمل أسرع من الزمن الحقيقي على Apple Silicon.

Android — على الجهاز (Galaxy S23)

تم القياس على Samsung Galaxy S23 (SM-S918B)، arm64، وحدة المعالجة المركزية فقط، وINT8 حيثما أُشير. RTF هو الزمن ÷ الصوت (الأدنى أسرع من الزمن الحقيقي؛ <1.0 هو الزمن الحقيقي)؛ وPeak RSS هو الذاكرة المقيمة للنموذج قيد التشغيل. تستخدم STT مقطعًا مدته 20 ثانية؛ وتُبلغ TTS عن RTF أو زمن أول صوت (TTFA).

ModelTaskRuntimeSpeedPeak RSS
Parakeet-EOU 120MStreaming STT + EOUONNX INT80.21 RTF232 MB
Omnilingual CTC 300MMultilingual STTLiteRT0.15 RTF831 MB
Nemotron Streaming 0.6BStreaming STTLiteRT0.67 RTF1.30 GB
Parakeet-TDT 0.6BSTT (batch)ONNX INT80.082 RTF1.15 GB
Supertonic-3 99MTTS (preset voice)LiteRT0.34 RTF · ~1.1 s TTFA832 MB
Kokoro-82MTTS (preset voice)ONNX FP320.53 RTF640 MB

الخلاصة: إن Parakeet-EOU-120M هو أخف نموذج STT هنا بنحو 232 ميغابايت – متعدد اللغات (25 لغة أوروبية)، متدفق، ومع كشف نهاية الكلام مدمج، أصغر بنحو 5–6× من Parakeet ذي 0.6B. إن تعطيل ساحة ذاكرة وحدة المعالجة المركزية في ONNX (الافتراضي الآن) خفّض Parakeet-TDT من نحو 1.34 غيغابايت إلى نحو 1.15 غيغابايت.

إعادة الإنتاج

# 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