Instructions to use dys-asr/parakeet-rnnt-0.6b-v2split-uniform with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use dys-asr/parakeet-rnnt-0.6b-v2split-uniform with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="dys-asr/parakeet-rnnt-0.6b-v2split-uniform")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("dys-asr/parakeet-rnnt-0.6b-v2split-uniform", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Parakeet RNN-T 0.6B — uniform-sampling control on the v2 split
The recipe behind
dys-asr/parakeet-rnnt-0.6b-all-syn-chunk-cutout,
unchanged, retrained on a training/validation split that holds out more data.
It exists as the control for an etiology-weighted sampler, and it is published
because a control that is never submitted cannot be checked.
It trained on 4.6% less data than its sibling and should be expected to score slightly worse on the challenge test set for that reason alone.
Why the split moved
SAPC2's own dev split contains no Parkinson's speakers at all — 48 speakers across Cerebral Palsy, Down Syndrome, ALS and Stroke, and none with Parkinson's, which is the largest etiology in the training corpus. Any per-etiology measurement on it is blind to that group.
SAPC1's test1 is a 50-speaker official split that SAPC2 re-released inside its
own training data, and it does contain Parkinson's. Carving it back out and
adding it to SAPC2 dev gives a held-out set covering all five etiologies:
| etiology | speakers | utterances |
|---|---|---|
| Parkinson's Disease | 33 | 13,799 |
| ALS | 23 | 8,059 |
| Down Syndrome | 17 | 6,965 |
| Cerebral Palsy | 15 | 6,394 |
| Stroke | 10 | 3,371 |
| total | 98 | 38,588 |
Speaker, file-path and basename overlap with the training manifests are all zero, checked rather than assumed.
Results
On that held-out set, 38,141 utterances after filtering:
| CER | WER | |
|---|---|---|
| this model (epoch 9) | 4.84% | 7.83% |
| full split, final export | 4.94% | 7.91% |
This number is not comparable to the CERs this family reports elsewhere. Those come from the challenge's sequestered test set via Codabench; this is a local dev score on a set chosen to include Parkinson's, an etiology the model handles far better than average, and it reads roughly 1.2 points lower than the same recipe scores on the Parkinson's-free SAPC2 dev split for that reason.
What it says about where the errors are
Median per-speaker CER on the held-out set, which is what the sampler arm is built from:
| etiology | speakers | median | mean | worst speaker |
|---|---|---|---|---|
| Cerebral Palsy | 15 | 10.36% | 12.70% | 38.19% |
| Down Syndrome | 17 | 8.45% | 12.92% | 57.71% |
| Stroke | 10 | 7.22% | 11.33% | 36.41% |
| Parkinson's Disease | 33 | 2.63% | 4.48% | 13.92% |
| ALS | 23 | 1.37% | 2.05% | 8.31% |
The hardest etiology is 7.6x the easiest by median, and within each one the spread between speakers is larger still. Every group's mean sits well above its median, so a handful of severely impaired speakers carries much of the error.
Training data
| source | records |
|---|---|
| SAPC-1 train and dev | 250,014 |
| SAPC-2 train, less SAPC1 test1 | 132,494 |
| synthetic CosyVoice3 speech | 55,988 |
| chunks force-aligned out of over-length recordings | 8,278 |
| total before filtering | 446,774 |
441,928 survive the 0.5-45 s and 200-label-token filters. Nothing comes from outside the challenge corpora, so this is a constrained-track model.
Training procedure
Ten epochs on sixteen GH200s, uniform sampling, effective batch 32 at per-device 2, AdamW at 1e-4 with a tri-stage schedule (10% warmup, 40% hold), weight decay 0.01, layerdrop 0.05, gradient clip 1.0, bf16, seed 42, 138,110 optimizer steps. Augmentation is speed perturbation over 0.8-1.2, SpecAugment (5% of the time axis in spans of 10 frames, 40% of the mel axis in spans of 27 bins) and SpecCutout (two 20x20 rectangles). The published weights are epoch 9, the best of ten by dev CER; epoch 10 was 4.844%.
Usage
import soundfile as sf
import torch
from transformers import AutoProcessor, ParakeetForRNNT
model_id = "dys-asr/parakeet-rnnt-0.6b-v2split-uniform"
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained(model_id)
model = ParakeetForRNNT.from_pretrained(model_id).to(device).eval()
audio, rate = sf.read("utterance.wav", dtype="float32")
inputs = processor(audio, sampling_rate=rate, return_tensors="pt").to(device)
with torch.inference_mode():
generated = model.generate(**inputs)
print(processor.batch_decode(generated, skip_special_tokens=True)[0])
Requires transformers>=5.9. Audio must be 16 kHz mono.
Intended use and limitations
A competition entry for the Speech Accessibility Project Challenge, and research on atypical-speech recognition.
- Trained on less data than its sibling, deliberately. It is a control.
- Single run, single seed. No variance estimate.
- Requires
transformers>=5.9. Not loadable by the 4.x line. - Slow relative to CTC. Decoding is autoregressive.
- Lower-case, unpunctuated, numerals written as words.
- English only, 16 kHz mono.
- Not a clinical tool. Nothing here supports inference about any diagnosis.
License and attribution
The Speech Accessibility Project corpora are governed by their own data use agreement and are not redistributed here; reproducing this training set requires authorized access. Fun-CosyVoice3's terms apply to the synthesis component.
- Downloads last month
- 15
Model tree for dys-asr/parakeet-rnnt-0.6b-v2split-uniform
Base model
extraordinarylab/parakeet-unified-en-0.6b