Speech-to-text for Apple silicon (Core ML)
Collection
Audio to text models Whisper, Parakeet, Nemotron and Cohere Transcribe as compiled Core ML models for the Neural Engine. • 14 items • Updated
nvidia/nemotron-3.5-asr-streaming-0.6b for Apple silicon: a transcribe model package of compiled Core ML models, mostly on the Neural Engine. The transcribe-model-darwin Rust crate loads it (AnyModel::load).
| Package | nemotron-3.5-asr-0.6b: format 3, architecture nemotron-rnnt |
| Source weights | https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b/resolve/main/nemotron-3.5-asr-streaming-0.6b.nemo |
| License | LicenseRef-OpenMDW-1.1 (LICENSE, NOTICE) |
| Languages | 28: ar, bg, cs, da, de, en, es, et, fi, fr, hi, hr, hu, it, ja, ko, nb, nl, pl, pt, ro, ru, sk, sv, tr, uk, vi, zh |
| Size | 449 MiB in 14 files |
| Requires | macOS 15.0 on Apple silicon |
| Built with | transcribe-models 0.0.1 at commit ff6f17639ee4d20f3724f9dfa6d99c34755dc77b, coremltools 9.0 |
| Model | Compute units | Functions | Weights |
|---|---|---|---|
frontend |
CPU | window_14_chunk_14 |
not compressed |
encoder |
CPU and Neural Engine | window_14_chunk_14 |
6-bit k-means palettes per tensor |
Download manifest.json and every file it lists from https://huggingface.co/yorganci/nemotron-3.5-asr-streaming-0.6b-6bit-coreml/resolve/<revision>/<path>, checking each file's size and SHA-256 against the manifest, then load the directory:
use transcribe_core::{Audio, TranscribeOptions, Transcriber};
use transcribe_model_darwin::{AnyModel, LoadOptions};
let mut model = AnyModel::load("nemotron-3.5-asr-0.6b", LoadOptions::default())?;
let transcript = model.transcribe(Audio::new(&samples, 16_000), &TranscribeOptions::default())?;
The first load on a machine compiles the models for the Neural Engine (seconds to a couple of minutes); later loads are fast.
Error rates of this build with transcribe-eval (Apple M4; characters for Japanese, words otherwise):
| Set | Error rate | Substitutions | Deletions | Insertions | Reference units |
|---|---|---|---|---|---|
| LibriSpeech test-clean, 20 utterances | 2.40 % | 9 | 0 | 3 | 500 |
| LibriSpeech test-clean, 62 s clip, long-form with timestamps | 1.41 % | 2 | 0 | 0 | 142 |
| FLEURS de, 10 utterances | 12.32 % | 19 | 5 | 2 | 211 |
| FLEURS fr, 10 utterances | 17.06 % | 16 | 5 | 22 | 252 |
| FLEURS es, 10 utterances | 9.38 % | 12 | 4 | 8 | 256 |
| FLEURS ja, 10 utterances | 11.47 % | 38 | 7 | 8 | 462 |
nemotron-3.5-asr-0.6b
NVIDIA Nemotron 3.5 ASR Streaming 0.6B (https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b) by NVIDIA, licensed under the OpenMDW License Agreement, version 1.1.
Source: https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b/resolve/main/nemotron-3.5-asr-streaming-0.6b.nemo
License: LicenseRef-OpenMDW-1.1 (LICENSE)
Changes: this package is a modified form of the source weights. transcribe-models
(https://github.com/atahanyorganci/transcribe) ported the model to PyTorch and converted
it to Core ML with coremltools 9.0, in float16 (the front end's constants in float32),
with these weight compressions:
- frontend: not compressed
- encoder: 6-bit k-means palettes per tensor
- decoder (decoder.safetensors, read by the runtime): the prediction network and the joint in int8 per row
Base model
nvidia/nemotron-3.5-asr-streaming-0.6b