gravel-ctc-440m
A 440M CTC English ASR model: the conformer speech encoder of
ibm-granite/granite-speech-4.1-2b-nar, extracted, LoRA-finetuned with a
BPE-256 CTC head, and merged into a standalone greedy-CTC recognizer.
Gravel is granite broken into smaller pieces. This model is the 440M encoder chipped out of IBM's 2B+
ibm-granite/granite-speech-4.1-2b-narplus a small CTC head. It is not an IBM release, it is a derivative of the granite model.
What it is
- Encoder: the
granite_speechconformer encoder fromibm-granite/granite-speech-4.1-2b-narinstantiated fromtransformers.models.granite_speechclasses, weights extracted, then LoRA-adapted (r=16 on attention + macaron-FFN linears) and merged. - Head: a new BPE-256 head (257 with blank) behind a 50โ25 Hz average-pool-initialized depthwise downsample.
- Frontend: log-mel (n_fft 512, win 400, hop 160, 80 mels) โ Whisper-style per-utterance norm โ 2-frame stack (160-dim @ 50 Hz), computed inside the model โ feed raw 16 kHz PCM.
How it was made
- Extract the encoder weights + config from
ibm-granite/granite-speech-4.1-2b-nar. - Attach the 50โ25 Hz downsample + new BPE-256 CTC head (the vocab is a 256-piece BPE)
- Train with CTC + an emission penalty (a from-scratch BPE-256 head blank-collapses without it) on a large English mix, backbone frozen, {LoRA, downsample, head} trainable.
- Merge LoRA โ this standalone checkpoint.
It is used as the knowledge-distillation teacher for FUTO's streaming ASR models.
Usage
import torch, torchaudio
from transformers import AutoModel
model = AutoModel.from_pretrained("futo-org/gravel-ctc-440m", trust_remote_code=True).eval()
wav, sr = torchaudio.load("speech.wav") # any mono/stereo file
wav = torchaudio.functional.resample(wav.mean(0), sr, 16000)
print(model.transcribe(wav)) # greedy CTC text
Or via pipeline:
from transformers import pipeline
asr = pipeline("automatic-speech-recognition", model="futo-org/gravel-ctc-440m",
trust_remote_code=True)
print(asr("speech.wav")["text"])
Lineage & license
Derived from ibm-granite/granite-speech-4.1-2b-nar (Apache-2.0, IBM).
Modifications: encoder extraction, 50โ25 Hz downsample, BPE-256 CTC head, LoRA finetune (merged).
- Downloads last month
- 60
Model tree for futo-org/gravel-ctc-440m
Base model
ibm-granite/granite-4.0-1b-base Finetuned
ibm-granite/granite-speech-4.1-2b-nar