S1-mini: A 600M Parameter Model for Cleaning ASR Transcripts Locally
Raw ASR output is accurate but messy. It captures everything you say including filler words, self-corrections, false starts, and spoken numbers and email addresses that need formatting. Cleaning this manually is tedious; routing it through a cloud LLM costs money and raises privacy concerns. S1-mini is a 0.6-billion-parameter model from Superwhisper built for exactly this one task: taking raw ASR output and rewriting it as clean written text, entirely on-device.
The model is fine-tuned from Qwen3-0.6B, released in August 2026, and available in GGUF format at superwhisper/s1-mini-GGUF on Hugging Face. The Q4KM quantized build is 462 MB. It runs comfortably on a laptop CPU. On a held-out evaluation set of 7,519 English cases across 104 transcripts, it reaches 94.8% token accuracy with a text-edit error rate of 11.6%.
Important: S1-mini ships under a custom license, not MIT or Apache. Check the license on the Hugging Face model card before building a product on top of it.
What it does and doesn't do
S1-mini is not a speech model and does not process audio. It takes an existing text transcript and normalizes it:
- Removes filler words (um, uh, like, you know)
- Resolves self-corrections to the value the speaker landed on
- Applies punctuation and capitalization
- Formats spoken numbers, dates, times, currencies, and email addresses as written text
It will not add content you didn't say, correct facts, soften profanity, or rewrite your dialect. Superwhisper describes it as "ruthlessly obedient." If the input is filler-only or noise-only, it correctly returns an empty string. Fewer than 1% of generations show degenerate behavior such as looping or truncation.
It is not a chat model and won't follow general instructions. It does one job, steered by a control line at the top of the input.
Installation with Ollama
GGUF builds work with Ollama, LM Studio, and any runner built on llama.cpp. Download the Q4KM build:
Create a Modelfile on the desktop:
The model card warns explicitly: if you change the system prompt wording, or send values outside the trained control sets, the model can hallucinate or produce garbled output. Use the system prompt exactly as shown.
Create the Ollama model (run from the directory containing both files):
Run it:
The control line format
Every input starts with a control line that steers the output. The three axes are:
- Styling:
casual,semi-formal, orformal - Structure:
proseorlists - Context:
general,email, or others
All three axes were included in training. Send all three, in the format shown. Omitting one or using untrained values can cause unexpected behavior.
Examples
Support ticket dictation
Raw input:
Clean output:
Filler removed, self-correction resolved to "iOS Safari," punctuation added, email address formatted.
Action items as a list
Using [Structure: lists] with ordinal words in the transcript:
Raw input:
Clean output:
The model identifies the ordinal words and formats the output as a numbered list.
Building a complete local pipeline
With mlx-whisper or any other CLI ASR tool, you can pipe output directly to S1-mini:
$(cat audio.txt) substitutes the file contents inline. The control line comes first, followed by the raw transcript. The final clean text prints to stdout. No network requests, no API keys.
Why a specialized model instead of a general LLM
General-purpose LLMs can clean transcripts, but their broad capabilities are sometimes a liability for this task. They may rewrite sentences rather than just normalizing them, change phrasing, or add content that wasn't said.
S1-mini's narrow training means it's predictable: it normalizes and stops. It doesn't interpret intent or add context. For transcript cleanup specifically, that constraint is a feature. The size difference also matters at scale: 0.6B parameters versus 70B or more means much lower memory requirements, near-instant latency, and zero inference cost once downloaded.
Current limitations
S1-mini v1 covers English only. The model processes transcripts segment by segment, so self-correction resolution doesn't work across segment boundaries, which matters if you're feeding it short utterances from a live ASR pipeline rather than full transcripts. As with any release-v1 model, edge cases exist. Check the model card and benchmark it on your actual transcription output before relying on it in production.