This post was originally published on this site.
Superwhisper has released the S1 family of models: S1-Voice, S1-Language, and S1-mini. S1-Voice is a cloud speech-to-text model, and S1-Language is a cloud instruction-following model for cleanup and formatting. The one that is quite interesting outside the app is S1-mini, released with open weights on Hugging Face. S1-mini is a 0.6B text normalizer, not a transcriber and not a chat model. It sits after automatic speech recognition and rewrites raw transcripts as clean written text: fillers removed, self-corrections resolved to what the speaker landed on, punctuation and capitalization applied, and spoken numbers, dates, currency, and email addresses rendered in written form. It is fine-tuned from Qwen/Qwen3-0.6B, covers English only in release v1, and is steered entirely by a three-axis control line placed above the transcript. Superwhisper reports 94.8% token accuracy on a held-out set of 7,519 cases, measured greedy on the quantized build.
Is it deployable?
Yes, but only S1-mini. S1-mini is published on Hugging Face under Apache 2.0 plus a naming clause. S1-Voice and S1-Language are Superwhisper-hosted services, so they are consumable, not self-hostable.
- Company level: Any level. The Q4_K_M GGUF build is a 462 MB file that runs on a laptop CPU. Solo developers can ship it inside a desktop app. Enterprises can run it behind a VPC where audio transcripts cannot leave the network.
- Industries: Healthcare and clinical documentation, legal, financial services, customer support, developer tooling, accessibility and live captioning.
- Applications: Dictation apps, meeting-notes tools, live captioning, voice-driven editors, voice-to-CRM entry, and any pipeline that turns raw ASR output into text a human will read.
What S1-mini does
S1-mini is a text normalizer, not a transcriber and not a chat model. It sits after automatic speech recognition:
audio → ASR (Whisper, Parakeet, …) → S1-mini → clean text
It removes filler words, resolves false starts and self-corrections to the value the speaker landed on, applies punctuation and capitalization, and renders spoken numbers, dates, times, currency, and email addresses in written form. Say “support at superwhisper dot com” and you get [email protected].
The model is fine-tuned from Qwen/Qwen3-0.6B. It has 596M unique parameters (0.44B non-embedding), 28 layers, 16 query heads and 8 key/value heads with GQA, and BF16 weights. The Hub sidebar reports 0.8B because the tied embedding is stored twice; the card explains the discrepancy explicitly. Release v1 covers English only, and recommended input is roughly 1,000 tokens.
The control line is the entire interface
S1-mini takes a fixed system prompt, then a control line, then the raw transcript:
[Styling: <value>] [Structure: <value>] [Context: <value>]
<raw transcript>
Styling takes casual, semi-casual, semi-formal, or formal. Structure takes prose or lists. Context takes general or email. All three axes are independent, and every combination was trained. Send values outside those sets, or reword the system prompt, and output can degrade or garble. Note the small mismatch worth knowing: the Superwhisper app exposes a five-stop tone slider that adds a “balanced” preset, while the open weights document four trained Styling values.
The model is also constrained by design. It does not add content you did not say, correct facts, soften profanity, or rewrite dialect. Filler-only input returns an empty string, and integrations should treat that as a valid result.
Two settings that break most integrations
First, enable_thinking=False is required. The chat template is Qwen3’s, unchanged, and Qwen3 defaults to thinking on. S1-mini was trained with thinking off, so the assistant turn must open with an empty <think> block. Omit the flag and you usually get no usable output at all.
Second, decode greedily. generation_config.json ships do_sample: false. The GGUF builds still carry Qwen3’s inherited temp = 0.6, top_p = 0.95, and top_k = 20 metadata, so pass temperature 0 explicitly on every request. In llama.cpp, use --jinja with --chat-template-kwargs '{"enable_thinking":false}' rather than --reasoning-budget 0, which degrades output.
Reported evaluation
Superwhisper evaluated S1-mini on a held-out set of 7,519 cases across 104 transcripts. Token accuracy is 94.8%, measured greedy on the Q4_K_M build, with a text-edit error rate of 11.6%. On email-formatted text it identifies the greeting line 99.3% of the time and the sign-off 97.9%. It matches the correct output structure, list versus paragraph, 97.6% of the time, and produces exact email addresses in 92% of cases. Fewer than 1% of generations show looping or truncation, and the model correctly withholds output 98.6% of the time when nothing should be transcribed. These are vendor-reported numbers on an internal test set, not third-party results.
The two cloud models
S1-Voice is the hosted speech-to-text model. Superwhisper reports transcription up to 46x faster than speaking time, with most dictations under 30 seconds appearing 0.32 seconds after you stop. Across eight datasets including meeting audio and earnings calls, it averages 6.8% word error rate and drops to 2.2% on LibriSpeech. Superwhisper says that 6.8% average was the lowest of 15 models it tested, and that S1-Voice scored 83 out of 100 on its blended metric against WisprFlow’s 76.
S1-Language is the hosted instruction-following model for cleanup, formatting, and summarization, and it appears in the model picker alongside models from Anthropic, OpenAI, and Groq. The recommended defaults are Cohere Transcribe plus S1-mini offline, or S1-Voice plus S1-Language in the cloud.
Interactive explainer
The embed below lets you switch each control-line axis and watch the output change. Every input/output pair is taken verbatim from the model card.
Key Takeaways
- S1-mini is a 0.6B open-weights text normalizer for ASR output, not a transcriber or chat model.
- The Q4_K_M GGUF is 462 MB and runs on a laptop CPU, so on-device deployment is realistic.
- A fixed system prompt plus a three-axis control line is the only steering mechanism.
enable_thinking=Falseand temperature 0 are mandatory; most integration bugs trace to these.
Check out the Model Weights and Technical Details. Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.
Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us



