Parakeet TDT 0.6B v3 路 Core ML

Model version 1.0.1 路 FP16

NVIDIA鈥檚 multilingual Parakeet v3, converted from the original checkpoint for offline speech recognition in BuilderHelmAudio. There is no additional training. Encoder, predictor and joint use unquantized FP16 weights/computation; the frontend and floating-point interfaces remain FP32.

The portable model packages target Apple Silicon Macs, M1 and later, on macOS 15+, and iOS 18+. Current physical validation uses an M5 Mac and iPhone 13. Performance on other chips and 8 GB configurations is unmeasured. Packages compile locally; no M5-only compiled model is distributed.

Contents

Component Function
Preprocessor.mlpackage FP32 bounded features plus whole-window normalize_w15/normalize_w30; original functions retained
Encoder.mlpackage, EncoderTail.mlpackage Two sequential FP16 Conformer stages; each shares weights across w15 and w30
Predictor.mlpackage Original two-layer, 640-unit TDT LSTM predictor
Joint.mlpackage All 8,193 token logits and five duration logits
vocab.json, config.json Original 8,192 pieces and checksum-pinned runtime contract

The bundle is approximately 1.27 GB before download compression. Allow additional storage for Core ML鈥檚 compiled cache. The two window functions share constants; adding the long function increased the bundle鈥檚 size by approximately 3.3%, rather than duplicating the encoder.

Swift

Use BuilderHelmAudio 0.2.0 or later:

import BuilderHelmAudio

let recognizer = try await SpeechRecognizer.load(.parakeetTdtV3)
let transcript = try await recognizer.transcribe(file: audioURL)
print(transcript.text)

The SDK downloads a pinned commit, verifies file SHA-256 values, compiles portable packages and reuses its cache. Reuse the recognizer; requests are serialized and cancellation is cooperative. Active synchronous Core ML calls may finish before cancellation returns. Audio and transcripts stay on the device.

For a folder you manage, pass .parakeetTdtV3 to SpeechRecognizer(directory:model:). The input is resampled to 16 kHz mono. Short requests use the 15-second function; longer requests use the 30-second function. The runtime retains both encoder stages for one window size at a time. First use of a function can incur preparation cost.

The encoder is partitioned into two sequential programs below 1 GB each. The weights and model math are preserved; corresponding short/long stages share constants, keeping the download approximately 1.27 GB.

The FP32 frontend extracts at most 401 raw log-mel frames per DFT prediction, then normalizes the assembled complete 15/30-second window. Pre-emphasis is evaluated in FP32 in the runtime. All weight bytes and the original frontend functions are preserved. This bounded path makes repeated full decoding stable on the hosted macOS 15 CPU runner; frozen features match the validated full-window reference within 0.0000005. The older model 1.0.0 remains immutable for reproduction.

Offline long recordings

There is no fixed SDK recording-length limit. Audio is read in bounded blocks of up to 480,001 samples. Windows retain right context, prefer quiet-pause cuts, and join where overlapping token sequences agree. Emission-frame ownership supplies a fallback. Entirely blank speech-bearing windows can receive bounded subdivision retries. Active, varying audio inside a partially blank window can receive up to four short-window retries. Insertions require matching token anchors near the same audio time and preserve all primary tokens. Predictor state resets per window; the failed state-carry experiment is not shipped.

This is an offline API. It does not provide live partial results, CTC, keyword spotting, aligned word/segment timestamps, subtitles or speaker labels. ctcTranscript is nil and tokens is empty for V3. Internal emission frames are not word alignments.

Accuracy

English uses Whisper EnglishTextNormalizer; other languages use BasicTextNormalizer with NFC and diacritics retained. Errors and empty speech remain in scoring.

Evaluation Files Native NVIDIA CPU FP32 WER SDK FP16 WER
Reserved multilingual speech 200 14.52% 14.46%
Separate final multilingual confirmation 75 13.44% 13.21%
Pooled unique reserved short recordings 275 14.24% 14.14%
Natural continuous earnings-call excerpts 29 10.74% 10.78%
Separate natural-call confirmation excerpts 18 11.92% 11.86%

The 275 recordings were held out from this engineering process; pretraining overlap and speaker disjointness are unknown. The natural English excerpts recover exact adjacent source chunks with no inserted silence or changed source time. They come from a corpus previously used in 110M research; the separate confirmation uses different source intervals from the same calls and is not speaker-independent.

Long20 comprises 20 known LibriSpeech composites. The old V3 overlap policy scored 14.03% WER; the current production SDK on M5 scores 1.83% with bounded partial-blank recovery. This is a regression-set result, not a new held-out accuracy claim. Synthetic multilingual long composites are additionally tested and reuse their short recordings; they are not independent natural conversations. See metrics for counts.

Quantization decision

INT8 block-32, INT8 block-16 and INT4 encoder candidates were evaluated before choosing FP16. The 50-clip selection protocol required pooled drift of at most 0.3 percentage points and every language drift of at most 2 points, with no additional failures/empty speech. The small per-language sample makes the language percentages coarse; thresholds were not relaxed after results were seen.

Candidate Selection WER Worst language drift Result
FP16 12.02% baseline Selected
INT8, block 32 11.91% +3.57 pp, Maltese Rejected
INT8, block 16 12.02% +2.70 pp, Croatian Rejected
INT4 14.68% +14.29 pp, Swedish Rejected

Those weight-only trials used the 15-second export. Integer-weight variants are not included. This release must not be described as INT8/INT4 or as integer-activation inference.

Device and performance scope

The default requests CPU plus Neural Engine for the encoder and CPU for the frontend, predictor and joint. CoreML determines operation placement. V3 GPU mode is supported on Mac; iOS V3 GPU requests fail during loading because long-window diagnostics did not complete reliably. CPU and Neural Engine remain available on iOS. First preparation, system load, memory pressure and power management can affect latency.

The production-SDK iPhone 13 run completed 172 paced requests over 20.0 minutes: 177 ms median, 215 ms p95 and 327 ms maximum, with 0 requests over one second. Repeated transcripts stayed stable and the app remained active. Thermal state stayed at or below fair. All 63 following long-file requests completed. File/PCM reuse, short reuse after long audio and long silence checks passed. Phone WER was 11.98% on the 18 natural confirmation excerpts, 1.83% on Long20 and 13.44% on 25 multilingual long composites. This is paced dictation followed by a bounded long batch; it does not measure all-day thermals or inference energy.

Process footprint omits some accelerator allocations and is not total model memory. Charging-device battery changes cannot measure inference energy. No universal battery, latency or hardware-performance guarantee is made.

Source and reproduction

  • Original NVIDIA model
  • Checkpoint SHA-256: 3cbdc85877e668ca7b82d0d56770eb1fac76691f55d6b97545e8d61ca588d10d
  • BuilderHelmAudio exporter: pinned dependencies, full 15-second export, 30-second frontend/encoder export, constant-deduplicating merger, and bounded frontend staging.

Model weights remain NVIDIA CC BY 4.0. Preserve attribution and the modification notice in NOTICE.md. Runtime/exporter source uses its repository license. No audio, private evaluation transcript, device-specific cache or source training checkpoint is included.

Downloads last month
111
Inference Providers NEW
This model isn't deployed by any Inference Provider. 馃檵 Ask for provider support

Model tree for BuilderHelm/Parakeet-TDT-0.6B-V3-CoreML

Quantized
(135)
this model