Aller au contenu
ModelPrésentéExterne
Télécharger

VoxCPM2 CoreAI

OpenBMB VoxCPM2 (2B) converted to Apple Core AI, running fully on-device on iPhone (A19 Pro / iPhone 17 Pro) and Mac — no network. The 2B, 48 kHz successor to VoxCPM-0.5B-CoreAI.

TypeOtherModèle de baseopenbmb/VoxCPM2VersionRevision 3fbe60eBClasse

Source du modèle

Type
Other
Taille du fichier
2,00 KB–1,23 GB
Modèle de base
openbmb/VoxCPM2
Version
vRevision 3fbe60e
Mis à jour
7 oct. 2026
Téléchargements
42
Source
Hugging Face

Description de la source

VoxCPM2 2B — Core AI (on-device, 48 kHz)

OpenBMB VoxCPM2 (2B) converted to Apple Core AI, running fully on-device on iPhone (A19 Pro / iPhone 17 Pro) and Mac — no network. The 2B, 48 kHz successor to VoxCPM-0.5B-CoreAI.

A tokenizer-free diffusion TTS: a MiniCPM4 28-layer text-semantic LM + an 8-layer residual acoustic LM drive a 12-layer LocDiT flow-matching diffusion head, decoded by a 48 kHz AudioVAE. Five Core AI bundles + a few host-side projections.

Use it

⚡ One line — run the kit's task op on this model (import CoreAIOps; no session, no model plumbing, downloads on first use):

let audio = try await CoreAI.speak(text, options: .model("voxcpm2-2b"))

Twenty ops, one shape — Cookbook.

▶️ Run it (source) — the Speak runner (GUI + CLI, one app for every text-to-speech model in the catalog):

git clone https://github.com/john-rocky/coreai-kit
open coreai-kit/Examples/Speak/Speak.xcodeproj
# → Run, then pick "VoxCPM2 2B" in the model picker

# agents / headless (macOS):
cd coreai-kit/Examples/Speak
swift run speak-cli --model voxcpm2-2b --text "Hello from Core AI." --output hello.wav

💻 Build with it — complete; the glue is kit API, copy-paste runs:

import CoreAIKit

let speaker = try await KitSpeaker(catalog: "voxcpm2-2b")
let audio = try await speaker.synthesize(text)
// audio.samples: 48 kHz mono PCM in [-1, 1] — play it or write a WAV

The take-home is Examples/Speak/Sources/QuickStart.swift — this exact code as one typed function, no UI; the CLI is an argument shell over it, and the GUI drives the same KitSpeaker(catalog:) and plays the samples. Live playback? synthesizeStreaming(_:onChunk:) hands you ~0.5 s chunks as they decode, so audio starts before the whole clip exists. The WAV container is your app's territory (the runner ships a 20-line writer).

Integration checklist

  • SPM: https://github.com/john-rocky/coreai-kit → product CoreAIKit
  • Info.plist: none needed
  • Entitlements: none needed
  • First run downloads the model — 4.7 GB (Mac) / 5.7 GB (iPhone) — then it loads from the local cache (Application Support; progress via the downloadProgress callback)
  • Measure in Release — Debug is ~3× slower on per-token host work

What's inside

dircontents
macos/JIT .aimodel bundles (Mac): int8 base/res decode + prefill, fp16 feat_decoder / feat_encoder / vocoder
ios/AOT .aimodelc bundles (iOS h18p, GPU): same five + the two int8 prefill bundles
voxcpm2_host_glue/embed table + projections / FSQ-512 / stop-head / fusion (.bin + manifest)
tokenizer/the VoxCPM2 tokenizer (Llama fast)

The backbone LMs are weight-only int8 (the size driver); the diffusion + VAE stay fp16 (the continuous-feedback path is quant-sensitive — same split mlx-community uses).

On-device numbers (iPhone 17 Pro, int8 + prefill + streaming)

  • RTF 1.19, first-audio 0.65 s, 48 kHz, ~4.9 GB resident (increased-memory entitlement).
  • Streaming starts after the first ~0.65 s; the 2B is ~4× the 0.5B, so RTF sits just above realtime.

Use it

Runs through coreai-kit VoxCPM2TTS, wired into the coreai-model-zoo coreai-audio app ("Voice 2B" tab). Conversion + gates + export scripts: coreai-model-zoo/conversion/voxcpm/ (*_v2.py).

let tts = try await VoxCPM2TTS(paths: .standard(artifactsRoot: root, lm: .int8))
let wav = try await tts.synthesize("On device speech synthesis, running entirely on your iPhone.") // 48 kHz Float PCM

Verification

Reimplemented in exportable Core AI overlays and gated end-to-end against the official model: backbone / feat_decoder / feat_encoder cos 1.0, full chain magspec 0.996; every exported bundle engine-gated cos ≥ 0.9999.

License

Apache-2.0 (commercial OK), inherited from openbmb/VoxCPM2. Not affiliated with OpenBMB or Apple. Community port.


More models in this format: Core AI Model Zoo — 75 models, each with the recipe that produced it.

Want a different model on-device? Open a request — free, open weights only; the export and its measured numbers get published publicly.

Sources

1 source
Hugging FacePrincipalVersion 3fbe60e92447527522605e07047370545fd6c274
huggingface.co/mlboydaisuke/VoxCPM2-CoreAI/tree/3fbe60e92447527522605e07047370545fd6c274

Vérifié 23 août

Artefacts du modèle

21 artefacts

ios/voxcpm2_base_int8_decode_cl512.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/resources.bin

bin · 1,23 GB · SHA-256 5609781967e7…3a9d · Hugging Face

Télécharger

ios/voxcpm2_base_int8_prefill_t32.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/resources.bin

bin · 1,23 GB · SHA-256 0ddcf9b1d518…f68c · Hugging Face

Télécharger

ios/voxcpm2_feat_decoder_fp16.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/resources.bin

bin · 405 MB · SHA-256 0c54656f5e1a…d6ab · Hugging Face

Télécharger

ios/voxcpm2_feat_encoder_fp16.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/resources.bin

bin · 400 MB · SHA-256 841ec64fe0af…99c7 · Hugging Face

Télécharger

ios/voxcpm2_res_int8_decode_cl512.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/resources.bin

bin · 360 MB · SHA-256 dcefa883975e…2abc · Hugging Face

Télécharger

ios/voxcpm2_res_int8_prefill_t32.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/resources.bin

bin · 360 MB · SHA-256 eb2aeb7416c6…53a5 · Hugging Face

Télécharger

ios/voxcpm2_vocoder_fp16_t8.h18p.aimodelc/main-h18p-delegates/MPSGraph/mpsExecutable.mpsgraphpackage/resources.bin

bin · 87,3 MB · SHA-256 14d5deed0bd5…20f3 · Hugging Face

Télécharger

voxcpm2_host_glue/embed_tokens.bin

bin · 287 MB · SHA-256 e4321641ac7a…549c · Hugging Face

Télécharger

voxcpm2_host_glue/fsq_in_b.bin

bin · 2,00 KB · SHA-256 2941a0241a06…f33c · Hugging Face

Télécharger

voxcpm2_host_glue/fsq_in_w.bin

bin · 4,00 MB · SHA-256 bdca3c2a1bee…1a11 · Hugging Face

Télécharger

voxcpm2_host_glue/fsq_out_b.bin

bin · 8,00 KB · SHA-256 d9038ceae836…e1c0 · Hugging Face

Télécharger

voxcpm2_host_glue/fsq_out_w.bin

bin · 4,00 MB · SHA-256 01782ab563b1…ac09 · Hugging Face

Télécharger

voxcpm2_host_glue/fusion_b.bin

bin · 8,00 KB · SHA-256 1d5354fbd85e…c257 · Hugging Face

Télécharger

voxcpm2_host_glue/fusion_w.bin

bin · 32,0 MB · SHA-256 e692759ba614…3166 · Hugging Face

Télécharger

voxcpm2_host_glue/lm_to_dit_b.bin

bin · 4,00 KB · SHA-256 864a519a0bf4…f861 · Hugging Face

Télécharger

voxcpm2_host_glue/lm_to_dit_w.bin

bin · 8,00 MB · SHA-256 4fe82c220796…d2f3 · Hugging Face

Télécharger

voxcpm2_host_glue/res_to_dit_b.bin

bin · 4,00 KB · SHA-256 97dffc1bc2a0…d67f · Hugging Face

Télécharger

voxcpm2_host_glue/res_to_dit_w.bin

bin · 8,00 MB · SHA-256 47e11d162ffc…cdd6 · Hugging Face

Télécharger

voxcpm2_host_glue/stop_head_w.bin

bin · 16,0 KB · SHA-256 2efc98b6d2a4…3201 · Hugging Face

Télécharger

voxcpm2_host_glue/stop_proj_b.bin

bin · 8,00 KB · SHA-256 a175bdc6b145…541d · Hugging Face

Télécharger

voxcpm2_host_glue/stop_proj_w.bin

bin · 16,0 MB · SHA-256 e11cd25ddea9…f541 · Hugging Face

Télécharger

Extraits de sources

2 extraits

--- license: apache-2.0 language: - en - zh pipeline_tag: text-to-speech tags: - text-to-speech - tts - core-ai - on-device - ios - voxcpm base_model: openbmb/VoxCPM2 --- # VoxCPM2 2B — Core AI (on-device, 48 kHz) [OpenBMB **VoxCPM2** (2B)](https://huggingface.co/openbmb/VoxCPM2) converted to **Apple Core AI**, running fully **on-device** on iPhone (A19 Pro / iPhone 17 Pro) and Mac — no network. The 2B, 48 kHz successor to [VoxCPM-0.5B-CoreAI](https://huggingface.co/mlboydaisuke/VoxCPM-0.5B-CoreAI). A tokenizer-free diffusion TTS: a **MiniCPM4 28-layer** text-semantic LM + an **8-layer residual** acoustic LM drive a **12-layer LocDiT** flow-matching diffusion head, decoded by a **48 kHz AudioVAE**. Five Core AI bundles + a few host-side projections. <!-- gen-cards:use-it begin id=voxcpm2-2b (managed by scripts/gen-cards — edit cards.json / QuickStart.swift, not this block) --> ## Use it ⚡ **One line** — run the kit's task op on this model (`import CoreAIOps`; no session, no model plumbing, downloads on first use): ```swift let audio = try await CoreAI.speak(text, options: .model("voxcpm2-2b")) ``` Twenty ops, one shape — [Cookbook](https://github.com/john-rocky/coreai-kit/blob/main/docs/COOKBOOK.md). ▶️ **Run it (source)** — the [Speak runner](https://github.com/john-rocky/coreai-kit/tree/main/Examples/Speak) (GUI + CLI, one app for every text-to-speech model in the catalog): ```bash git clone https://github.com/john-rocky/coreai-kit open coreai-kit/Examples/Speak/Speak.xcodeproj # → Run, then pick "VoxCPM2 2B" in the model picker # agents / headless (macOS): cd coreai-kit/Examples/Speak swift run speak-cli --model voxcpm2-2b --text "Hello from Core AI." --output hello.wav ``` 💻 **Build with it** — complete; the glue is kit API, copy-paste runs: ```swift import CoreAIKit let speaker = try await KitSpeaker(catalog: "voxcpm2-2b") let audio = try await speaker.synthesize(text) // audio.samples: 48 kHz mono PCM in [-1, 1] — play it or write a WAV ``` The take-home is [`Examples/Speak/Sources/QuickStart.swift`](https://github.com/john-rocky/coreai-kit/blob/main/Examples/Speak/Sources/QuickStart.swift) — this exact code as one typed function, no UI; the CLI is an argument shell over it, and the GUI drives the same `KitSpeaker(catalog:)` and plays the samples. Live playback? `synthesizeStreaming(_:onChunk:)` hands you ~0.5 s chunks as they decode,...

Source context: 42 downloads · 4 likes · Pipeline text-to-speech · Library voxcpm · Repo mlboydaisuke/VoxCPM2-CoreAI