Downloads · 30 days
0
smdesai/canary-1b-v2-coreml
canary-1b-v2-coreml is a automatic speech recognition model from smdesai. Use it when you need speech turned into text. It is set up for coreml. The card lists the license as cc-by-4.0.
On-device CoreML port of NVIDIA canary-1b-v2 for Apple silicon (iOS / macOS): FP32 preprocessor, FP16 Apple Neural Engine-resident FastConformer encoder, and a stateful KV-cache Transformer decoder driven by a host-si…
Downloads · 30 days
0
Access
Public
Updated Oct 12, 2026
Repo size
3.1 GB
Likes
1
Public
Click a slice to open those files.
.bin3.1 GB · 100%
From the Hugging Face model README
On-device CoreML port of NVIDIA canary-1b-v2 for Apple silicon (iOS / macOS): FP32 preprocessor, FP16 Apple Neural Engine-resident FastConformer encoder, and a stateful KV-cache Transformer decoder driven by a host-side greedy loop. This is the reference (uncompressed) build; the memory-optimized variants below are derived from it and match its accuracy.
Base model: nvidia/canary-1b-v2 (NVIDIA NeMo EncDecMultiTaskModel, 1B parameters, 25 European languages, ASR + speech translation). License: the base model is released under CC-BY-4.0; this conversion carries the same license. Please attribute NVIDIA for the model.
| Encoder | FP16 weights, Neural Engine-resident, 1.58 GB |
| Decoder / cross-KV | FP16, 271 MB + 34 MB |
| Download | 1.89 GB |
| iOS RAM while transcribing | 1.9 GB (measured, 6-minute file) |
All 1B v2 builds share the same preprocessor, tokenizer, package layout, and decode contract; only the weight format of the encoder and/or decoder differs. Download sizes are as hosted on the Hub; iOS RAM was measured in an app while transcribing a 6-minute file.
| Repo | Build | Encoder weights | Decoder weights | Download | iOS RAM |
|---|---|---|---|---|---|
canary-1b-v2-coreml (this repo) | FP16 (reference) | FP16 | FP16 | 1.89 GB | 1.9 GB (measured) |
canary-1b-v2-int8-coreml | INT8 encoder | INT8 per-channel | FP16 | 1.10 GB | 1.2 GB (measured) |
canary-1b-v2-pal6-coreml | 6-bit encoder | 6-bit palette, g=16 | FP16 | 0.92 GB | 1.0 GB (measured) |
canary-1b-v2-int8full-coreml | INT8 full | INT8 per-channel | INT8 per-channel | 0.95 GB | 1.0 GB (measured) |
canary-1b-v2-pal6-int8-coreml | 6-bit + INT8 | 6-bit palette, g=16 | INT8 per-channel | 0.77 GB | 910 MB (measured) |
canary-180m-flash-coreml | 180M Flash | FP16 (17L, d=512) | FP16 (4L) | 0.37 GB | 470 MB (measured) |
| File | Contents |
|---|---|
canary_preprocessor.mlmodelc | FP32 mel front end (128 mel bins, 16 kHz mono, 15 s window) |
canary_encoder.mlmodelc | FastConformer encoder, 32 layers, d=1024, subsampling 8 |
canary_cross_kv.mlmodelc | Cross-attention K/V projection, 8 layers (run once per window) |
canary_decoder_kv.mlmodelc | Stateful single-step Transformer decoder, 8 layers, 16384-way LM head |
canary_spe.model | SentencePiece tokenizer (16384 pieces) |
metadata.json | Shapes, decode geometry, seed tokens, and the weight recipe of this build |
The timestamp/ folder is only needed for word-level start and end times. Transcription and translation do not use it, so skip it if you only need text.
It contains NVIDIA's auxiliary CTC model from canary-1b-v2.nemo, a 24-layer Conformer, which NeMo uses for transcribe(..., timestamps=True). Run it on the same 15 s audio window, then force-align the Canary transcript against its scores with a Viterbi pass. Word boundaries have 80 ms resolution.
This repo ships the FP16 timestamp model (1.1 GB), which is not included in the download size above. Word timings match NVIDIA's PyTorch model: on a 15-second English clip, all 55 words match NeMo's own timestamps=True output exactly. On an iPhone 17 Pro (iOS 27.2), 99.9% of the encoder's estimated cost is planned on the Neural Engine, and a warm 15 s window takes about 34 ms for all three models.
| File | Contents |
|---|---|
timestamp/timestamp_preprocessor.mlmodelc | Mel front end: audio_signal [1, 240000] float32 (16 kHz mono, zero-padded) and audio_length [1] int32 (unpadded samples) → mel, mel_length |
timestamp/timestamp_encoder.mlmodelc | Conformer encoder, FP16 weights, 1.1 GB → encoded [1, 1024, 188], encoded_length |
timestamp/timestamp_ctc.mlmodelc | CTC head → log_probs [1, 188, 16385]; column 16384 is blank; frames are 80 ms apart |
timestamp/tokenizer/ | SentencePiece tokenizer and vocabularies for the alignment targets (tokenizer.model is identical to canary_spe.model) |
timestamp/metadata.json | Shapes, blank id, frame duration, and weight recipe |
timestamp/example-word-timestamps.json | Reference word times for a 15 s English test clip |
Load the timestamp models with MLComputeUnits.cpuAndNeuralEngine. Only frames up to encoded_length are valid.
Download without timestamps, or only the timestamp model:
hf download smdesai/canary-1b-v2-coreml --exclude "timestamp/*"
hf download smdesai/canary-1b-v2-coreml --include "timestamp/*"
Model: NVIDIA NeMo team, canary-1b-v2, CC-BY-4.0.