Skip to main content
möbius is a model conversion framework for running AI on edge devices. It converts models from PyTorch/ONNX to CoreML, ONNX Runtime, and OpenVINO — targeting Apple Neural Engine, NPUs, and embedded accelerators. Every model that ships in FluidAudio was converted through möbius.

Why möbius

Running AI on NVIDIA GPUs is straightforward. The edge is a different story — fragmented devices, different accelerators, format incompatibilities. möbius handles the conversion, validation, and quantization so you get production-ready models with a few commands. Each conversion includes:
  • Parity validation — numerical comparison between PyTorch and converted outputs
  • Latency benchmarks — Torch CPU vs CoreML (ANE/GPU) on real inputs
  • Quantization sweeps — size, speed, and quality trade-offs for int8, palettization, etc.

Repository Structure

Models are organized by class, name, and target runtime. Each target directory is self-contained with its own pyproject.toml and dependencies managed by uv.
models/
├── emb/
│   └── cam++/coreml                  # Speaker embedding
├── segment-text/
│   └── coreml                        # Text segmentation
├── speaker-diarization/
│   ├── pyannote-community-1/coreml   # Pyannote diarization
│   └── sortformer-streaming/         # Sortformer diarization
├── stt/
│   ├── canary-1b-v2/coreml           # Canary ASR
│   ├── nemotron-speech-streaming-0.6b/coreml
│   ├── parakeet-realtime-eou-120m/coreml
│   ├── parakeet-tdt-ctc-110m/coreml
│   ├── parakeet-tdt-v2-0.6b/coreml
│   ├── parakeet-tdt-v3-0.6b/coreml   # Current FluidAudio default
│   └── qwen3-asr-0.6b/coreml
├── tts/
│   ├── kokoro/coreml                 # Kokoro TTS
│   └── pocket_tts/coreml             # PocketTTS
└── vad/
    └── silero-vad/coreml             # Silero VAD

Converted Models

These models have been converted and published to Hugging Face:
ClassModelSourceCoreML
STTParakeet TDT v3 0.6BNVIDIAFluidInference
STTParakeet TDT v2 0.6BNVIDIAFluidInference
STTParakeet EOU 120MNVIDIAFluidInference
VADSilero VAD v6SileroFluidInference
DiarizationPyannote 3.1PyannoteFluidInference
TTSKokoro 82MHexgradFluidInference
TTSPocketTTS 155MKyutaiFluidInference
EmbeddingCAM++3D-SpeakerFluidInference

Quick Start

# Clone
git clone https://github.com/FluidInference/mobius.git
cd mobius

# Pick a model
cd models/stt/parakeet-tdt-v3-0.6b/coreml

# Set up environment
uv sync

# Convert
uv run python convert-parakeet.py convert \
  --nemo-path /path/to/parakeet-tdt-0.6b-v3.nemo \
  --output-dir parakeet_coreml

# Validate parity
uv run python compare-components.py compare \
  --output-dir parakeet_coreml \
  --runs 10 --warmup 3
Each model directory has its own README with specific conversion steps.

Conversion Guidelines

  • Trace with .CpuOnly — ensures deterministic tracing without ANE/GPU side effects
  • Target iOS 17+ / macOS 14+ — minimum deployment target for all CoreML exports
  • Use uv — each model has isolated dependencies via its own pyproject.toml
  • Validate numerically — always compare converted outputs against PyTorch reference

License

Apache 2.0. See individual model directories for upstream model licenses.