omote-ai/ctc-aligner

~2.4 MB conv-CTC forced-alignment student. Input mfcc [1,T,39] (16 kHz Rust-parity MFCC: 13 cepstra + ฮ” + ฮ”ฮ”) โ†’ output logits [1,T,40] (39 ARPABET phones + blank). Consumed by the Omote runtime's phoneme-timing tier; staggered Viterbi decoding happens in the runtime.

Files: ctc_aligner.onnx uses ONNX external data โ€” ctc_aligner.onnx.data is required alongside it, plus ctc_aligner.meta.json (phone table).

Distilled from facebook/wav2vec2-lv-60-espeak-cv-ft (Apache-2.0, offline teacher โ€” never ships) via frame-level cross-entropy on a mixed synthetic (Supertonic + Kokoro) + natural (LibriSpeech train-clean-100, CC-BY 4.0) corpus.

Evaluation (held-out, vs teacher alignments)

Metric Value
Median phone-onset abs error (ms) 7
Mean / p90 onset error (ms) 17 / 16
Onsets within 20 ms 94 %
Onsets within 50 ms 99 %
Onsets within 100 ms 99 %
Degenerate-span rate (>600 ms), raw 1.8 % (177/9,650)
โ€” of which teacher-pause artifacts 173
โ€” real student errors 4 (0.04 %)

Evaluation-set provenance (read before comparing numbers): the original held-out set from the training run was lost (data-custody RCA, 2026-07-22, in the Omote repo). These figures come from a regenerated held-out set, synthesized 2026-07-22: 150 committed evaluation sentences (scripts/train-ctc-aligner/eval_texts_v2.txt in the source repo) rendered through both TTS engines โ†’ 300 utterances / 9,650 phone onsets, none of which the student ever saw. They are therefore a genuine unseen-data measurement, but they are not numerically comparable to development-time figures. The real-degenerate rate (0.04 %) independently reproduces the rate recorded during original development.

Full provenance: provenance.json in this repo.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support