Downloads · 30 days
0
cstr/tiron-GGML
tiron-GGML is a automatic speech recognition model from cstr. Use it when you need speech turned into text. It is set up for whisper.cpp. The card lists the license as apache-2.0.
GGML conversions of Trelis/tiron (Apache-2.0) — a Whisper large-v3 model fine-tuned to transcribe multi-speaker meetings and emit inline <|speakerN| speaker markers, so a single forward pass produces both the words an…
Downloads · 30 days
0
Access
Public
Updated Jul 23, 2026
Repo size
4 GB
Likes
0
Public
Click a slice to open those files.
.bin4 GB · 100%
From the Hugging Face model README
GGML conversions of Trelis/tiron
(Apache-2.0) — a Whisper large-v3 model fine-tuned to transcribe multi-speaker
meetings and emit inline <|speakerN|> speaker markers, so a single forward
pass produces both the words and who said them.
These files run on CrispASR, whose
whisper backend implements tiron's speaker-vocabulary detection, constrained
decode, windowing, and cross-window speaker linking. They will not work with
stock whisper.cpp — the speaker-token grammar and diarization are
CrispASR-specific.
| file | quant | size | notes |
|---|---|---|---|
tiron-f16.bin | F16 | 3.1 GB | full precision; reference-exact token stream |
tiron-q4_k.bin | Q4_K | 889 MB | recommended default; ~3.5× smaller, negligible WER change |
Legacy GGML .bin (whisper format), quantized with CrispASR's
crispasr-legacy-quantize. tiron-q4_k.bin is the registry default
(crispasr --backend tiron -m auto auto-downloads it).
A drop-in WhisperForConditionalGeneration — Whisper large-v3 (128-mel, 32
encoder + 32 decoder layers, 1280-d) with an extended 51904-token vocabulary:
<|speaker1|>…<|speaker8|> (ids 51866–51873) plus <|nospeech|>. Speaker
indices are window-local (the first talker in each 30 s window is always
<|speaker1|>), so "speaker1" in one window is not necessarily the same person as
"speaker1" in another — see Diarization below.
Auto-download the default (q4_k) and transcribe with inline speaker markers:
crispasr --backend tiron -m auto -f meeting.wav
Or point at a local file:
crispasr --backend tiron -m tiron-q4_k.bin -f meeting.wav
Add meeting-level speaker labels (SPEAKER_00, SPEAKER_01, …) by turning on
diarization, which clusters voiceprints across windows:
crispasr --backend tiron -m tiron-q4_k.bin -f meeting.wav --diarize
<|speaker1|>/<|nospeech|>; a
speaker tag forces an opening timestamp; text runs to a closing timestamp; a
closing timestamp then allows EOS, another opening timestamp (same speaker
continues), or the next speaker slot. no_repeat_ngram_size=15. Per-speaker
timelines are non-monotonic, so whisper's "timestamps must increase" seek rule
is disabled for the speaker vocabulary.engine.py.--diarize). CrispASR promotes the window-local indices to
stable meeting-level SPEAKER_NN identities by clustering per-(window, local-speaker) voiceprints (TitaNet / ECAPA embeddings + agglomerative cosine),
with a within-window must-link "spine". This is speaker diarization —
grouping speakers within a recording — not identification against any external
roster or database.The CrispASR C++ decode was validated byte-exact against the Python reference
(tools/reference_backends/tiron.py) on the F16 model — identical token streams
per window — and the q4_k output matches at 1.000 decoded-word overlap.
Trelis/tiron — Apache-2.0.TrelisResearch/tiron — Apache-2.0.--diarize is enabled; without it, treat <|speakerN|> as window-scoped.