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

FLEURS 25-language mean WER against package size

English Open ASR Leaderboard mean WER against package size, Neural Engine builds next to larger models

Package (download) size of each build

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
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for EverPaper/everparakeet-tdt-0.6b-v3-compact

Quantized
(125)
this model

Collection including EverPaper/everparakeet-tdt-0.6b-v3-compact