On‑device multilingual TTS model converted to Core ML for Apple platforms. This is a hand‑port of Supertone Supertonic‑3 v1.7.3 from ONNX → PyTorch → Core ML, suitable for FluidAudio's TTS pipeline on macOS/iOS. 31 languages, 44.1 kHz output, flow‑matching diffusion with classifier‑free guidance (8 denoising steps). https://github.com/FluidInference/mobius/tree/main/models/tts/supertonic-3/coreml And the FluidAudio integration is here: https://github.com/FluidInference/FluidAudio/tree/main/Sources/FluidAudio/TTS/Supertonic3 - Batch TTS for full text segments on macOS/iOS. - Local voice synthesis for note‑taking, accessibility, and creative tools. - Embedded TTS in production apps via the…
Open weights
openrail++
coreml
Based on the original kokoro model, see https://github.com/FluidInference/FluidAudio for inference We generated the same strings with to gerneate audio between 1s to ~300s in order to test the speed across a range of varying inputs on Pytorch CPU, MPS, and MLX pipeline, and compared it against the native Swift version with Core ML models. Each pipeline warmed up the models by running through it once with pesudo inputs, and then comparing the raw inference time with the model already loaded. You can see that for the Core ML model, we traded lower memory and very slightly faster inference for longer initial warm-up. Note that the Pytorch kokoro model in Pytorch has a memory leak issue…
Open weights
apache-2.0
Baidu's Unlimited-OCR (DeepSeek-OCR architecture: SAM-B + CLIP-L page encoder, 12-layer DeepseekV2 MoE decoder, 3B parameters / ~0.5B active) for Apple silicon, including its multi-page mode: up to 16 pages go in as one prompt and the whole document comes out of a single generation as markdown, -separated, with label [x1, y1, x2, y2] layout boxes (0–999 page coordinates). Offline. Two runtimes share the Core ML page encoder: - MLX decoder (mlx/, recommended): 8-bit, upstream's R-SWA cache, ~200–260 tokens/s on an M5 Pro. Baidu's 14-page paper in one pass: 13,420 tokens in ~70 s. - Core ML decoder (UnlimitedOcrDecoder.mlpackage): stateful 8-bit, ~50 tokens/s. Runtime: UnlimitedOcrFastManager…
Open weights
mit
mlx
Core ML conversion of Google's SigLIP 2 google/siglip2-base-patch16-256, with both towers: an image encoder and a text encoder, each returning an L2-normalized 768-d embedding. Labels are plain text chosen at run time, so it classifies images zero-shot. Google authored the Apache-2.0 source model; Fluid Inference converted it. The image encoder runs entirely on the Apple Neural Engine. fp16 weights, macOS 14 / iOS 17 or newer. config.json holds the preprocessing and scoring constants: trained without an attention mask, so the padding must match. an independent probability per label; softmax or argmax over cos picks one label. Embed the labels once and reuse them for every image. ImageNet-1k…
Open weights
apache-2.0
coremltools
The text and audio encoders of google/embeddinggemma-2 converted to Core ML: text runs entirely on the Apple Neural Engine, audio on the GPU. Weights are the original ones (stored fp16 in the model; the token table is the original bf16). The audio encoder is included (see Audio); the vision encoder is not. Output: the same 768-d, L2-normalized embedding as SentenceTransformer("google/embeddinggemma-2").encode(...) (mean pooling over tokens, then normalization). Matryoshka truncation to 512/256/128 works as in the original: keep the first N values and re-normalize. Audio (added): EmbeddingGemma2Audio.mlpackage turns 10 s of 16 kHz audio into 250 tokens in the text model's space; the text…
Open weights
apache-2.0
coreml