البنية

speech-swift منظَّم كحزمة Swift وحدوية ذات بروتوكولات مشتركة، ووحدات نماذج مستقلة، وواجهة CLI موحَّدة. يجري كل الاستدلال على الجهاز باستخدام MLX (GPU Metal) أو CoreML (Neural Engine).

مخطط اعتماديات الوحدات

                    ┌──────────┐
                    │ AudioCLI │  (نقطة الدخول)
                    └────┬─────┘
                         │
                  ┌──────┴──────┐
                  │ AudioCLILib │  (الأوامر)
                  └──────┬──────┘
                         │
       ┌─────────┬───────┼───────┬──────────┬──────────────┐
       │         │       │       │          │              │
  ┌────┴───┐ ┌──┴──┐ ┌──┴──┐ ┌─┴────┐ ┌───┴────┐ ┌──────┴───────┐
  │Qwen3ASR│ │Qwen3│ │Cosy │ │Perso-│ │Speech- │ │  Speech-     │
  │Parakeet│ │ TTS │ │Voice│ │naPlex│ │  VAD   │ │Enhancement   │
  └────┬───┘ └──┬──┘ └──┬──┘ └──┬───┘ └───┬───┘ └──────┬───────┘
       │        │       │       │         │             │
       └────────┴───────┼───────┴─────────┘             │
                        │                               │
                 ┌──────┴──────┐                        │
                 │ Qwen3Common │  (طبقات مشتركة)        │
                 └──────┬──────┘                        │
                        │                               │
                 ┌──────┴──────┐                        │
                 │ AudioCommon │ ◄──────────────────────┘
                 └─────────────┘  (بروتوكولات، إدخال/إخراج صوتي)

محرّكات الاستدلال الخلفية

المحرّك الخلفيالعتادالنماذج
MLX GPU Metal Qwen3-ASR, Qwen3-TTS, CosyVoice3, Qwen3.5-Chat, PersonaPlex, Omnilingual ASR (300M / 1B / 3B / 7B), Pyannote, Silero VAD, WeSpeaker
CoreML Neural Engine مُرمِّز Qwen3-ASR (هجين)، Parakeet TDT، Parakeet EOU streaming، Omnilingual ASR 300M، Kokoro-82M، Qwen3.5-Chat (اختياري)، فرز المتحدثين Sortformer، DeepFilterNet3، Silero VAD (اختياري)، WeSpeaker (اختياري)
Accelerate CPU (SIMD) معالجة الصوت الأولية (STFT، mel، FFT) ومعالجة الإشارات

صيغة أوزان النماذج

تستخدم نماذج MLX صيغة safetensors مع تكميم بـ 4 بت أو 8 بت (حجم المجموعة 64). تستخدم نماذج CoreML الصيغة المُجمَّعة .mlmodelc. تقوم سكربتات التحويل في scripts/ بالتحويل من نقاط حفظ PyTorch.

النموذجالمعاملاتالتكميمالحجم على القرص
Qwen3-ASR 0.6B (MLX)~600M4-bit / 8-bit680 MB / 1.0 GB
Qwen3-ASR 0.6B (CoreML)~186M (encoder)INT8~180 MB
Qwen3-ASR 1.7B (MLX)~1.7B4-bit / 8-bit2.1 GB / 3.2 GB
Parakeet-TDT 0.6B (CoreML)~600MINT8500 MB
Parakeet-EOU 120M (CoreML)~120MINT8~120 MB
Omnilingual-ASR-CTC 300M (CoreML)326MINT8312 MB
Omnilingual-ASR-CTC 300M (MLX)326M4-bit / 8-bit193 MB / 342 MB
Omnilingual-ASR-CTC 1B (MLX)1.01B4-bit / 8-bit549 MB / 1006 MB
Omnilingual-ASR-CTC 3B (MLX)~3B4-bit / 8-bit1.71 GB / 3.16 GB
Omnilingual-ASR-CTC 7B (MLX)~7B4-bit / 8-bit3.55 GB / 6.63 GB
Qwen3-ForcedAligner 0.6B (MLX)~600M4-bit / 8-bit979 MB / 1.4 GB
Qwen3-ForcedAligner 0.6B (CoreML)~600MINT4 / INT8630 MB / 1.0 GB
Qwen3-TTS 0.6B (MLX)~600M4-bit / 8-bit1.7 GB / 2.4 GB
Qwen3-TTS 1.7B (MLX)~1.7B4-bit / 8-bit3.2 GB / 4.8 GB
CosyVoice3 0.5B (MLX)~500MLLM بـ 4-bit~1.2 GB
Kokoro-82M (CoreML)82MINT8 (1 bucket)~89 MB
Qwen3.5-Chat 0.8B (MLX)~800MINT4418 MB
Qwen3.5-Chat 0.8B (CoreML)~800MINT8981 MB
PersonaPlex 7B (MLX)~7B4-bit / 8-bit4.9 GB / 9.1 GB
Pyannote VAD (MLX)~1.49Mfloat32~5.7 MB
Silero VAD v5~309Kfloat32~1.2 MB (MLX وCoreML)
WeSpeaker ResNet34~6.6Mfloat32~25 MB (MLX وCoreML)
Sortformer (CoreML)float16~50 MB
DeepFilterNet3 (CoreML)~2.1MFP16~4.2 MB

تحسينات الأداء

معالجة الصوت

يستخدم كل إدخال/إخراج صوتي PCM بصيغة Float32. يتولّى إعادة العيّنات الداخلي تحويل الصيغ:

النموذجالمعدّل المتوقَّعالصيغة
Qwen3-ASR16 kHzMono Float32
Qwen3-TTS24 kHz للخرجMono Float32
CosyVoice324 kHz للخرجMono Float32
Kokoro-82M24 kHz للخرجMono Float32
PersonaPlex24 kHz إدخال/إخراجMono Float32
Pyannote VAD16 kHzMono Float32
Silero VAD16 kHzMono Float32
WeSpeaker16 kHzMono Float32
DeepFilterNet348 kHzMono Float32

هيكل الكود المصدري

Sources/
  AudioCommon/            بروتوكولات مشتركة، إدخال/إخراج صوتي،
                          مُنزِّل HuggingFace، SentencePieceModel (قارئ protobuf)
  MLXCommon/              أدوات MLX: تحميل الأوزان، مساعدات QuantizedLinear،
                          مساعد انتباه متعدّد الرؤوس SDPA، ميزانية metal
  Qwen3Common/            مكوّنات نماذج مشتركة (ذاكرة KV، RoPE، التكميم)
  Qwen3ASR/               Qwen3-ASR من الصوت إلى النص
  ParakeetASR/            Parakeet TDT من الصوت إلى النص (CoreML)
  ParakeetStreamingASR/   إملاء متدفّق Parakeet EOU 120M (CoreML)
  OmnilingualASR/         Meta wav2vec2 + CTC، 1,672 لغة
                          (CoreML 300M + MLX 300M / 1B / 3B / 7B)
  Qwen3TTS/               Qwen3-TTS من النص إلى الكلام
  CosyVoiceTTS/           CosyVoice3 من النص إلى الكلام
  KokoroTTS/              Kokoro-82M من النص إلى الكلام (CoreML)
  Qwen3Chat/              دردشة LLM على الجهاز Qwen3.5-0.8B (MLX + CoreML)
  PersonaPlex/            PersonaPlex من الكلام إلى الكلام
  SpeechVAD/              VAD (Silero + Pyannote)، فرز المتحدثين، تضمينات المتحدث
  SpeechEnhancement/      كبت الضوضاء DeepFilterNet3 (CoreML)
  SourceSeparation/       Open-Unmix HQ / UMX-L music source separation (MLX, 4 stems)
  MAGNeTMusicGen/         MAGNeT text-to-music generation (MLX, 30 s @ 32 kHz, INT4/INT8)
  VoxCPM2TTS/             VoxCPM2 text-to-speech (MLX, 48 kHz, voice cloning + voice design)
  VibeVoiceTTS/           VibeVoice long-form / multi-speaker TTS (MLX, EN/ZH)
  MagpieTTS/              NVIDIA Magpie-TTS Multilingual 357M (MLX INT4/INT8,
                          9 languages, 5 baked speakers, streaming)
  MagpieTTSCoreML/        Magpie CoreML backend (4 .mlmodelc + Swift-side
                          FSQ inverse; 8 languages, batch-only; hybrid
                          with MagpieTTS for LocalTransformer + audio
                          embeddings)
  MADLADTranslation/      MADLAD-400 many-to-many translation (MLX, 400+ languages)
  AudioCLILib/            تنفيذات أوامر CLI
  AudioCLI/               نقطة دخول CLI

scripts/              تحويل النماذج (PyTorch → MLX/CoreML)، اختبارات الأداء
Tests/                اختبارات الوحدة والتكامل
Examples/             تطبيقات تجريبية (PersonaPlexDemo, SpeechDemo)