scriptrs models
Model files for scriptrs, a Rust library for fast NVIDIA Parakeet TDT v2 and v3 speech-to-text on Core ML (macOS) and native CUDA (Linux), at the same word error rate as NVIDIA's reference implementation. With the default online feature, scriptrs downloads these files on first use from a pinned revision of this repository.
These are format conversions of NVIDIA's models, not new or retrained models. The native CUDA weights are NVIDIA's FP32 weights with their original names; scriptrs converts selected layers to FP16 on the GPU at load time.
Same accuracy, faster
scriptrs runs NVIDIA's weights unchanged and gets the same word error rate as NVIDIA's own NeMo implementation, at 3x its speed. All results are Parakeet v3 on an RTX 5090.
LibriSpeech test-clean, English (5.4 h), one utterance at a time:
| Speed (x real time) | vs NeMo | WER | |
|---|---|---|---|
| scriptrs CUDA | 1534x | 3.2x | 1.93 % |
| NVIDIA NeMo (PyTorch) | 477x | 1x | 1.93 % |
| parakeet-rs 0.4.3 (ONNX Runtime) | 253x | 0.53x | 1.93 % |
Multilingual
The multilingual check is nearly 6 times the size of LibriSpeech: 31.6 h over ten language sets in six languages, one utterance at a time with automatic language selection. In scriptrs's parity tests, its FP32 mode matches NeMo layer by layer and gives NeMo's exact text. The FP16 default scores the same as FP32:
| Set | Speed, FP16 default | WER, FP16 default | WER, FP32 |
|---|---|---|---|
| FLEURS de, es, fr, it, nl, pt (15.8 h) | 1839x | 4.57 % | 4.57 % |
| MLS es, fr, it, pt (15.8 h) | 1921x | 6.25 % | 6.26 % |
Batches and long recordings
| Workload | Speed (x real time) | WER |
|---|---|---|
| LibriSpeech test-clean, batches of 16 | 4767x | 1.93 %, unchanged |
| Earnings-21, 44 calls (39 h), long-form | 3633x | 8.24 % |
On Earnings-21, NeMo transcribing each whole call with local attention scores 9.58 %.
Against Whisper large-v3
On harder English audio, long-form with the defaults and English selected has a lower WER than Whisper large-v3 (run through WhisperX 3.8.6 in float16) on every set, and runs 10x to 14x as fast:
| Set | Recordings | Hours | scriptrs WER | Whisper WER | scriptrs speed | Whisper speed | vs Whisper |
|---|---|---|---|---|---|---|---|
| Earnings-21 earnings calls | 44 | 39.3 | 8.2 % | 9.7 % | 2458x | 186x | 13.2x |
| AMI meetings, headset mix | 34 | 18.7 | 21.5 % | 23.8 % | 2420x | 182x | 13.3x |
| AMI meetings, far-field microphone | 34 | 18.7 | 23.2 % | 28.3 % | 2414x | 199x | 12.1x |
| EdAcc accented conversations | 40 | 18.2 | 16.0 % | 19.2 % | 2433x | 201x | 12.1x |
| CHiME-6 dinner parties | 4 | 9.7 | 44.0 % | 44.7 % | 2438x | 176x | 13.8x |
| AppTek call-center calls, 14 accents | 56 | 9.4 | 11.2 % | 12.6 % | 2220x | 224x | 9.9x |
| Mean over sets | 212 | 114 | 20.7 % | 23.1 % | 2417x | 191x | 12.6x |
WER is pooled over each set's recordings, both sides through Whisper's English normalizer. Speed is x real time for transcription alone on one RTX 5090, with models loaded and audio in memory; WhisperX runs its VAD with batch size 16. The last row's speed is over all 114 hours.
More results are in the scriptrs README.
Usage
# macOS, Core ML
scriptrs = "0.3"
# Linux, NVIDIA GPU
scriptrs = { version = "0.3", features = ["cuda"] }
use scriptrs::{ModelBundle, ParakeetDeployment, TranscriptionPipeline};
// Core ML on macOS
let pipeline = TranscriptionPipeline::from_pretrained()?;
// native CUDA on Linux
let bundle = ModelBundle::from_pretrained_native(ParakeetDeployment::v3())?;
let pipeline = TranscriptionPipeline::from_bundle(bundle)?;
let result = pipeline.run(&audio)?; // mono 16 kHz f32 samples
For offline setups, download this repository and set SCRIPTRS_MODELS_DIR to its local path.
Contents
| Path | Runtime | Source |
|---|---|---|
parakeet-v2/encoder.mlmodelc, decoder.mlmodelc, joint-decision.mlmodelc |
Core ML | nvidia/parakeet-tdt-0.6b-v2 |
parakeet-v3/encoder.mlmodelc, decoder.mlmodelc, joint-decision.mlmodelc |
Core ML | nvidia/parakeet-tdt-0.6b-v3, via FluidInference/parakeet-tdt-0.6b-v3-coreml |
parakeet-v2/model.safetensors |
CUDA | nvidia/parakeet-tdt-0.6b-v2, exported from the NeMo checkpoint |
parakeet-v3/model.safetensors |
CUDA | nvidia/parakeet-tdt-0.6b-v3, exported from the NeMo checkpoint |
parakeet-v2/vocab.txt, parakeet-v3/parakeet_vocab.json |
both | NVIDIA tokenizers |
vad/silero-vad.mlmodelc |
Core ML | Silero VAD 5.1.2, via aufklarer/Silero-VAD-v5-CoreML |
vad/silero-vad-v6.mlmodelc |
Core ML | Silero VAD 6.2.3, via aufklarer/Silero-VAD-v6.2.1-CoreML, which has the same weights |
vad/silero-vad-v5.safetensors |
CUDA | Silero VAD 5.1.2, 16 kHz branch |
The native CUDA files also live in model-named repositories, which scriptrs 0.3.1 and later download from: avencera/parakeet-tdt-0.6b-v2-cuda, avencera/parakeet-tdt-0.6b-v3-cuda and avencera/silero-vad-v5-safetensors, and from scriptrs 0.5.0 also avencera/silero-vad-v6-safetensors. The copies here serve scriptrs 0.3.0.
The native weight files record their source and its SHA-256 in the safetensors metadata. PROVENANCE.json and PROVENANCE-native.json list sources, revisions and checksums.
License
The Parakeet files are derived from NVIDIA Parakeet TDT 0.6B v2 and v3, licensed under CC BY 4.0. Credit: NVIDIA. Changes: converted to Core ML and to a safetensors layout for scriptrs. The Silero VAD files are derived from Silero VAD, licensed under the MIT License. See LICENSE.
Model tree for avencera/scriptrs-models
Base model
nvidia/parakeet-tdt-0.6b-v2