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
Safetensors
Model size
0.6B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for dys-asr/parakeet-rnnt-0.6b-v2split-uniform

Finetuned
(8)
this model