สถาปัตยกรรม

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 │ ◄──────────────────────┘
                 └─────────────┘  (โปรโตคอล, I/O เสียง)

แบ็กเอนด์การอนุมาน

แบ็กเอนด์ฮาร์ดแวร์โมเดล
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-bit หรือ 8-bit (ขนาดกลุ่ม 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

การปรับปรุงประสิทธิภาพ

การประมวลผลเสียง

I/O เสียงทั้งหมดใช้ PCM Float32 การสุ่มซ้ำภายในจัดการการแปลงรูปแบบ:

โมเดลอัตราที่คาดหวังรูปแบบ
Qwen3-ASR16 kHzMono Float32
Qwen3-TTSเอาต์พุต 24 kHzMono Float32
CosyVoice3เอาต์พุต 24 kHzMono Float32
Kokoro-82Mเอาต์พุต 24 kHzMono Float32
PersonaPlex24 kHz I/OMono Float32
Pyannote VAD16 kHzMono Float32
Silero VAD16 kHzMono Float32
WeSpeaker16 kHzMono Float32
DeepFilterNet348 kHzMono Float32

โครงสร้างซอร์สโค้ด

Sources/
  AudioCommon/            โปรโตคอลใช้ร่วมกัน, I/O เสียง, ตัวดาวน์โหลด HuggingFace,
                          SentencePieceModel (ตัวอ่าน protobuf)
  MLXCommon/              ยูทิลิตี MLX: การโหลดน้ำหนัก, ตัวช่วย QuantizedLinear,
                          ตัวช่วย attention หลายหัว SDPA, งบประมาณ metal
  Qwen3Common/            องค์ประกอบโมเดลที่ใช้ร่วมกัน (แคช KV, RoPE, การควอนไทเซชัน)
  Qwen3ASR/               Qwen3-ASR การถอดเสียงเป็นข้อความ
  ParakeetASR/            Parakeet TDT การถอดเสียงเป็นข้อความ (CoreML)
  ParakeetStreamingASR/   Parakeet EOU 120M การพิมพ์ตามคำบอก streaming (CoreML)
  OmnilingualASR/         Meta wav2vec2 + CTC, 1,672 ภาษา
                          (CoreML 300M + MLX 300M / 1B / 3B / 7B)
  Qwen3TTS/               Qwen3-TTS การสังเคราะห์เสียงพูด
  CosyVoiceTTS/           CosyVoice3 การสังเคราะห์เสียงพูด
  KokoroTTS/              Kokoro-82M การสังเคราะห์เสียงพูด (CoreML)
  Qwen3Chat/              Qwen3.5-0.8B LLM chat บนอุปกรณ์ (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)