Mimari

speech-swift, ortak protokoller, bağımsız model modülleri ve birleşik bir CLI ile modüler bir Swift paketi olarak düzenlenmiştir. Tüm çıkarım MLX (Metal GPU) veya CoreML (Neural Engine) kullanılarak cihaz üstünde çalışır.

Modül bağımlılık grafiği

                    ┌──────────┐
                    │ AudioCLI │  (giriş noktası)
                    └────┬─────┘
                         │
                  ┌──────┴──────┐
                  │ AudioCLILib │  (komutlar)
                  └──────┬──────┘
                         │
       ┌─────────┬───────┼───────┬──────────┬──────────────┐
       │         │       │       │          │              │
  ┌────┴───┐ ┌──┴──┐ ┌──┴──┐ ┌─┴────┐ ┌───┴────┐ ┌──────┴───────┐
  │Qwen3ASR│ │Qwen3│ │Cosy │ │Perso-│ │Speech- │ │  Speech-     │
  │Parakeet│ │ TTS │ │Voice│ │naPlex│ │  VAD   │ │Enhancement   │
  └────┬───┘ └──┬──┘ └──┬──┘ └──┬───┘ └───┬───┘ └──────┬───────┘
       │        │       │       │         │             │
       └────────┴───────┼───────┴─────────┘             │
                        │                               │
                 ┌──────┴──────┐                        │
                 │ Qwen3Common │  (paylaşılan katmanlar)│
                 └──────┬──────┘                        │
                        │                               │
                 ┌──────┴──────┐                        │
                 │ AudioCommon │ ◄──────────────────────┘
                 └─────────────┘  (protokoller, ses G/Ç)

Çıkarım backend'leri

BackendDonanımModeller
MLX Metal GPU Qwen3-ASR, Qwen3-TTS, CosyVoice3, Qwen3.5-Chat, PersonaPlex, Omnilingual ASR (300M / 1B / 3B / 7B), Pyannote, Silero VAD, WeSpeaker
CoreML Neural Engine Qwen3-ASR encoder (hibrit), Parakeet TDT, Parakeet EOU streaming, Omnilingual ASR 300M, Kokoro-82M, Qwen3.5-Chat (isteğe bağlı), Sortformer konuşmacı ayrıştırması, DeepFilterNet3, Silero VAD (isteğe bağlı), WeSpeaker (isteğe bağlı)
Accelerate CPU (SIMD) Ses ön işleme (STFT, mel, FFT), sinyal işleme

Model ağırlık formatı

MLX modelleri safetensors formatını 4-bit veya 8-bit nicemleme (grup boyutu 64) ile kullanır. CoreML modelleri derlenmiş .mlmodelc formatını kullanır. scripts/ dizinindeki dönüştürme komut dosyaları PyTorch checkpoint'lerinden dönüşüm yapar.

ModelParametreNicemlemeDiskteki boyut
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)~500M4-bit LLM~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 ve CoreML)
WeSpeaker ResNet34~6.6Mfloat32~25 MB (MLX ve CoreML)
Sortformer (CoreML)float16~50 MB
DeepFilterNet3 (CoreML)~2.1MFP16~4.2 MB

Performans optimizasyonları

Ses işleme

Tüm ses G/Ç'si Float32 PCM kullanır. Dahili yeniden örnekleme, format dönüşümünü ele alır:

ModelBeklenen oranFormat
Qwen3-ASR16 kHzMono Float32
Qwen3-TTS24 kHz çıkışMono Float32
CosyVoice324 kHz çıkışMono Float32
Kokoro-82M24 kHz çıkışMono Float32
PersonaPlex24 kHz G/ÇMono Float32
Pyannote VAD16 kHzMono Float32
Silero VAD16 kHzMono Float32
WeSpeaker16 kHzMono Float32
DeepFilterNet348 kHzMono Float32

Kaynak yapısı

Sources/
  AudioCommon/            Ortak protokoller, ses G/Ç, HuggingFace indirici,
                          SentencePieceModel (protobuf okuyucu)
  MLXCommon/              MLX yardımcıları: ağırlık yükleme, QuantizedLinear yardımcıları,
                          SDPA çok başlı dikkat yardımcısı, metal bütçesi
  Qwen3Common/            Paylaşılan model bileşenleri (KV önbelleği, RoPE, nicemleme)
  Qwen3ASR/               Qwen3-ASR konuşmadan metne
  ParakeetASR/            Parakeet TDT konuşmadan metne (CoreML)
  ParakeetStreamingASR/   Parakeet EOU 120M streaming dikte (CoreML)
  OmnilingualASR/         Meta wav2vec2 + CTC, 1.672 dil
                          (CoreML 300M + MLX 300M / 1B / 3B / 7B)
  Qwen3TTS/               Qwen3-TTS metinden konuşmaya
  CosyVoiceTTS/           CosyVoice3 metinden konuşmaya
  KokoroTTS/              Kokoro-82M metinden konuşmaya (CoreML)
  Qwen3Chat/              Qwen3.5-0.8B cihaz üstü LLM sohbet (MLX + CoreML)
  PersonaPlex/            PersonaPlex konuşmadan konuşmaya
  SpeechVAD/              VAD (Silero + Pyannote), konuşmacı ayrıştırma, konuşmacı gömmeleri
  SpeechEnhancement/      DeepFilterNet3 gürültü bastırma (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 komut uygulamaları
  AudioCLI/               CLI giriş noktası

scripts/              Model dönüşümü (PyTorch → MLX/CoreML), kıyaslama
Tests/                Birim ve entegrasyon testleri
Examples/             Demo uygulamalar (PersonaPlexDemo, SpeechDemo)