EverParakeet Compact
Compact is the smaller, more aggressively compressed tier of Everpaper's EverParakeet family, a port of NVIDIA's parakeet-tdt-0.6b-v3 to the Apple Neural Engine. The encoder uses mixed 2-bit and 4-bit palettes that were learned during fine-tuning (151 of 240 palettised layers at 4-bit, 89 at 2-bit), shipped as a Core AI asset (macOS 27) and a Core ML package (macOS 15 and later). All credit for the model, its tokenizer and its multilingual training goes to NVIDIA.
The EverParakeet family
| Repository | What it is | Runs on |
|---|---|---|
| everparakeet-tdt-0.6b-v3-coreai | Standard: 4-bit encoder, Core AI and Core ML | Neural Engine |
| everparakeet-tdt-0.6b-v3-compact | Compact: smaller, mixed 2/4-bit encoder, most accurate on FLEURS-25 | Neural Engine |
| everparakeet-tdt-0.6b-v3-mini | Mini (experimental): smallest, mixed 2/4-bit encoder | Neural Engine |
| everparakeet-tdt-0.6b-v3-mlx | Fine-tuned weights for parakeet-mlx (bf16) | GPU through MLX |
| everparakeet-tdt-0.6b-v3 | Full precision: .nemo and Hugging Face transformers | any |
The generation (currently 1.1) is in the git tags, not in the repository names.
Trade-offs, stated plainly
- Compact has the lowest mean WER on FLEURS-25 of the EverParakeet family (12.85, against 13.39 for Standard and 13.75 for v1.0). The FLEURS training split was part of the fine-tuning data, so part of this gain is in-domain.
- It is slightly worse than Standard and v1.0 on long-form audio (24.63 against 22.26 for v1.0, +2.4 points), on Italian parliament speech (VoxPopuli Italian 14.08 against 13.12) and on our synthetic code-switch set (24.45 against 23.39).
- On English it is a little behind Standard (5.85 against 5.72 on the Open ASR Leaderboard nine-set mean).
- If you mainly transcribe English or long recordings, use Standard.
Accuracy
How to read these numbers. Every EverParakeet figure below was measured by us on one Mac with the same test harness and the same text normaliser. Lower WER (word error rate) is better. The fine-tuning data included the FLEURS training split, so part of the FLEURS gain is in-domain and will not carry over fully to other audio. The NVIDIA column is the number NVIDIA publishes with its own text normalisation, so it is not comparable one to one with ours. This card makes no claim to beat the original model.
| FLEURS test, 25-language mean WER | % |
|---|---|
| EverParakeet v1.0 | 13.75 |
| EverParakeet Standard v1.1 | 13.39 |
| EverParakeet Compact | 12.85 |
| EverParakeet Mini (experimental) | 14.10 |
| FluidAudio Parakeet v3 Core ML | 13.59 |
| EverParakeet v1.1 MLX (bf16) | 12.78 (MLX original control 13.23) |
| NVIDIA published | 11.97 (NVIDIA's own normalisation, not comparable one to one) |
| English Open ASR Leaderboard, mean of 9 public sets | WER % |
|---|---|
| EverParakeet v1.0 (fixed decoder) | 5.80 |
| EverParakeet Standard v1.1 | 5.72 |
| EverParakeet Compact | 5.85 |
| EverParakeet Mini (experimental) | 6.23 |
| FluidAudio Parakeet v3 Core ML | 5.83 |
| EverParakeet v1.1 MLX (bf16) | 5.56 (MLX original control 5.60) |
| NVIDIA original (published leaderboard figure) | 5.58 |
Other test sets
| Set (WER %) | v1.0 | Standard v1.1 | Compact |
|---|---|---|---|
| FLEURS Italian | 5.66 | 5.60 | 5.66 |
| FLEURS English | 6.72 | 6.55 | 6.90 |
| VoxPopuli Italian (parliament speech) | 13.12 | 13.63 | 14.08 |
| VoxPopuli English | 5.79 | 5.77 | 5.68 |
| AMI (single distant microphone) | 19.08 | 18.70 | 18.31 |
| MLS Italian | 12.13 | 12.49 | 11.95 |
| Long-form audio | 22.26 | 22.85 | 24.63 |
| Code-switch (synthetic, internal set) | 23.39 | 24.39 | 24.45 |
FLEURS per language (WER %)
| Language | v1.0 | Standard v1.1 | Compact | Mini | NVIDIA published (not comparable) |
|---|---|---|---|---|---|
| Bulgarian (bg) | 14.21 | 13.77 | 12.72 | 13.77 | 12.64 |
| Croatian (hr) | 13.32 | 12.93 | 12.41 | 13.60 | 12.46 |
| Czech (cs) | 12.12 | 11.66 | 11.14 | 12.23 | 11.01 |
| Danish (da) | 20.08 | 19.51 | 18.98 | 20.91 | 18.41 |
| Dutch (nl) | 8.04 | 8.13 | 7.86 | 9.11 | 7.48 |
| English (en) | 5.55 | 5.45 | 5.49 | 5.94 | 4.85 |
| Estonian (et) | 19.15 | 18.16 | 17.32 | 18.66 | 17.73 |
| Finnish (fi) | 14.52 | 14.09 | 13.25 | 14.50 | 13.21 |
| French (fr) | 5.42 | 5.59 | 5.60 | 6.10 | 5.15 |
| German (de) | 5.39 | 5.46 | 5.38 | 6.09 | 5.04 |
| Greek (el) | 36.64 | 35.13 | 34.94 | 36.87 | 20.70 |
| Hungarian (hu) | 18.25 | 17.39 | 16.41 | 18.28 | 15.72 |
| Italian (it) | 2.99 | 2.94 | 3.08 | 3.24 | 3.00 |
| Latvian (lv) | 25.42 | 25.30 | 23.41 | 26.50 | 22.84 |
| Lithuanian (lt) | 23.00 | 22.08 | 20.21 | 22.48 | 20.35 |
| Maltese (mt) | 22.48 | 22.16 | 20.74 | 22.75 | 20.46 |
| Polish (pl) | 8.25 | 8.03 | 7.76 | 9.21 | 7.31 |
| Portuguese (pt) | 4.98 | 4.74 | 4.77 | 5.12 | 4.76 |
| Romanian (ro) | 14.08 | 13.74 | 13.00 | 14.76 | 12.44 |
| Slovak (sk) | 9.88 | 9.46 | 9.14 | 10.25 | 8.82 |
| Slovenian (sl) | 25.98 | 25.92 | 25.54 | 26.90 | 24.03 |
| Spanish (es) | 3.57 | 3.51 | 3.47 | 3.77 | 3.45 |
| Swedish (sv) | 16.73 | 16.33 | 15.89 | 16.85 | 15.08 |
| Russian (ru) | 5.82 | 5.73 | 5.69 | 6.52 | 5.51 |
| Ukrainian (uk) | 7.84 | 7.53 | 7.13 | 8.00 | 6.79 |
| Mean (25) | 13.75 | 13.39 | 12.85 | 14.10 | 11.97 |
English Open ASR Leaderboard sets (WER %)
| set | v1.0 | Standard v1.1 | Compact | Mini | FluidAudio v3 Core ML | v1.1 MLX | MLX original (control) |
|---|---|---|---|---|---|---|---|
| AMI-Cleaned | 9.33 | 9.16 | 8.97 | 9.38 | 9.87 | 8.92 | 9.14 |
| Earnings22-Cleaned-AA-chunked | 6.69 | 6.74 | 7.11 | 8.02 | 6.80 | 6.64 | 6.07 |
| Gigaspeech-Cleaned | 8.05 | 7.87 | 7.97 | 8.06 | 8.01 | 7.86 | 8.00 |
| LS Clean | 1.59 | 1.56 | 1.57 | 1.75 | 1.63 | 1.49 | 1.48 |
| LS Other | 3.36 | 3.40 | 3.53 | 3.89 | 3.40 | 3.15 | 3.13 |
| SPGISpeech | 3.70 | 3.70 | 3.77 | 3.89 | 3.68 | 3.70 | 3.67 |
| URGENT24 | 12.23 | 12.12 | 12.45 | 13.55 | 11.90 | 11.44 | 11.80 |
| Voice Arena Monsoon | 4.14 | 4.15 | 4.33 | 4.52 | 4.12 | 4.18 | 4.12 |
| Voxpopuli-AA-Cleaned | 3.13 | 2.82 | 2.91 | 2.98 | 3.05 | 2.63 | 2.95 |
| mean (9) | 5.80 | 5.72 | 5.85 | 6.23 | 5.83 | 5.56 | 5.60 |
Size and Neural Engine footprint
| Core AI | Core ML | |
|---|---|---|
| Encoder asset on disk | 294 MB | 301 MB |
| Neural Engine memory footprint | 737 MB | 628 MB |
Median time, 30 s window (main384) |
54.9 ms | 71.4 ms |
| GPU use | none | none |
Measured on one Mac. In both formats the palette values were decoded and checked bit-exact against the trained palettes. Mixed-bit palettes are an exact copy of what was trained, not re-fitted afterwards.
On iPhone
EverParakeet Compact runs on an iPhone 17 Pro (iOS 27.2) with the Swift package in the Standard repository (v1.1.1), with either the Core AI or the Core ML encoder. The decoder runs on the CPU in both. The Swift package in this repository was not tested on the phone.
| Core AI | Core ML | |
|---|---|---|
| First launch, until ready (encoder prepared) | 174 s | 126 s |
| Second launch, until ready | 0.12 s | 4.5 s |
| Speed, 140 clips (29 min of audio) | 134x real time | 123x real time |
| Speed, 53 s recording (long-form) | 134x | 114x |
| Peak memory (phys_footprint) | 804 MB | 1,906 MB |
| Peak memory, first launch | 1,028 MB | 1,475 MB |
Same transcripts as the Mac. The same 140 clips (50 FLEURS English, 50 FLEURS Italian, 40 VoxPopuli Italian, picked at random among clips of 2 to 29.5 s) were transcribed on a Mac running macOS 27 with the same package and the same backend. The transcripts are identical on 140 of 140 clips with Core AI and on 140 of 140 with Core ML. WER on this subset is 9.44 % with Core AI and 9.38 % with Core ML, on the phone and on the Mac. Core AI and Core ML give different transcripts on 15 of these clips, on both devices.
Method: a test app built from the Swift package ran on a phone that was plugged in. Each figure comes from a single run. First launch is a fresh install, timed from launch until the model was ready (encoder prepared, one short decode done); the second launch is the next launch of the same install. Speed is audio duration divided by compute time over the 140 clips decoded one after another; wall-clock speed over the same loop was within 3 % of it. The 53 s recording is decoded with the long-form mode, two runs averaged. Peak memory is the process's phys_footprint high-water mark over the second launch, which loads the model and transcribes the 140 clips; the first-launch peak covers preparing the encoder and a few demo clips, not the 140 clips. The six runs (three packages, two backends) were made back to back in the order Standard, Compact, Mini, so the phone got warmer from one package to the next and the speeds are not directly comparable across the three packages. The phone's thermal state was serious during the speed and memory runs (fair at the start of the first Core AI launch). A serious thermal state can slow the phone down, so these speeds may be lower than on a cool phone.
Quick start
Get the folder first (it holds the model, both runtimes and the tests):
pip install -U huggingface_hub
hf download EverPaper/everparakeet-tdt-0.6b-v3-compact --local-dir EverParakeet
cd EverParakeet
Apple silicon is required. The Core AI backend needs macOS 27; the Core ML backend needs macOS 15 or later. The first Core AI load on a machine prepares the encoder for the Neural Engine, which takes a few minutes, once per machine.
Swift (Core AI and Core ML)
Requires Xcode 27 (Swift 6.4) or later. No dependencies besides system frameworks.
cd swift
swift build -c release
.build/release/everparakeet smoke # picks Core AI on macOS 27, Core ML otherwise
.build/release/everparakeet smoke --backend coreml # force Core ML
.build/release/everparakeet transcribe ../tests/audio/english.wav --backend coreai
--backend auto|coreai|coreml selects the encoder backend. auto uses Core AI on macOS 27 and later and Core ML
below that. The decoder runs on the CPU in both. smoke runs the clips in tests/reference_transcripts.json and
prints PASS or FAIL. As a library, add swift/ as a local Swift package and call
EverParakeet.load(root:backend:) from EverParakeetKit.
Python (Core AI only, macOS 27)
Requires the Core AI Python package on macOS 27. The runner loads the Compact asset unchanged; it was checked with the bundled smoke test.
python3 -m venv .venv
.venv/bin/pip install -r python/requirements.txt
.venv/bin/python tests/smoke_test.py
cd python && ../.venv/bin/python -m everparakeet transcribe ../tests/audio/english.wav
The Python runner reads models/encoder.aimodel (Core AI). The Core ML package is used by the Swift runtime.
What changed from the original
- Fine-tuning with the palettes trained in the loop (quantisation-aware), on multilingual speech that included the FLEURS training split.
- Encoder compressed to mixed 2-bit and 4-bit palettes (groups of 8 channels), plus 4-bit k-means palettes for the input projection and the joint encoder projection, re-written for the Neural Engine.
- Encoder re-written in a layout the Neural Engine can run in full, shipped as one asset with fixed windows of
about 5, 10, 15 and 30 seconds that share the same weights (
main64,main128,main192,main384). The Core ML package carries all four windows. - Long audio is cut at the quietest 200 ms within the last 4 seconds before each 30 second boundary; each piece is decoded on its own.
- Decoder. The prediction and joint networks (fp16) run on the CPU with greedy TDT decoding.
License and credit
The model weights, tokenizer and other adapted model material are derived from NVIDIA's
Parakeet TDT 0.6B v3 and are released under
CC-BY-4.0, as the original. All credit for the architecture, the tokenizer and the multilingual
training goes to NVIDIA. This is not an official NVIDIA distribution and NVIDIA does not endorse it. See NOTICE
for the list of modifications. Three Swift files adapted from Apple's Core AI speech sample code remain under
Apple's BSD 3-clause licence (swift/THIRD_PARTY_NOTICES).
- Downloads last month
- 17
Model tree for EverPaper/everparakeet-tdt-0.6b-v3-compact
Base model
nvidia/parakeet-tdt-0.6b-v3

