(01)
Introduction
Speech leaves a few things unfinished. We pause, repeat ourselves, say “um,” and start again. Kanso finds the writing in those spoken words.
Built by BuilderHelm AI for ZenVoice, Koi 1.0 and Satori 1.0 clean up dictated text on your Mac. They remove unwanted fillers and false starts, restore punctuation and capitalization, and turn spoken numbers into useful written forms.
Choose a lighter model for everyday speed, or a larger one for more demanding sentences. Both work locally after download.
The everyday choice
Kanso Koi 1.0
Quick enough for the next thought. A compact model for messages, notes, emails, and the words you use every day.
Room for more precision
Kanso Satori 1.0
A larger model for the details. More room for difficult sentences, with a little more memory and time to think.
- word error rate for Koi 1.0, against 29.1% for its stock base
- 0.97%
- word error rate for Satori 1.0, the most accurate Kanso model
- 0.43%
- median time for Koi 1.0 to format a dictation, on your Mac
- 0.35 s
- examples in the public benchmark, Kanso Dictation Bench v1
- 1,500
Accuracy figures come from the 1,200 formatting examples in Kanso Dictation Bench v1, and timings from a Mac with Apple M5 and 24 GB of memory. How we measured has the details.
(02)
Performance
We measure Kanso on Kanso Dictation Bench v1, a public set of 1,500 examples: 1,200 dictations to format across seven kinds of speech, and 300 sentences that are already clean. Every model gets the same text, the same instructions, and the same scorer.
Fine-tuning does the work: Koi 1.0 cuts its own stock base model’s word error rate from 29.12% to 0.97%, and Satori 1.0 takes its base from 53.54% to 0.43%. Both beat the releases they replace on every formatting measure.
| Metric | Koi 1.0New · 1.7B | Satori 1.0New · 4B | Koi 0.9Previous · 1.7B | Satori 0.9Previous · 4B | Qwen3-1.7BKoi's stock base | Qwen3-4B InstructSatori's stock base | No formattingText as transcribed |
|---|---|---|---|---|---|---|---|
| Word error ratelower is better | 0.97% | 0.43% | 2.06% | 34.78% | 29.12% | 53.54% | 21.14% |
| Added contentwords never spoken · lower is better | 0.16% | 0.07% | 0.21% | 28.31% | 16.56% | 47.77% | 16.66% |
| Exact matchoutput identical to reference | 64.0% | 69.6% | 51.6% | 39.9% | 22.1% | 46.3% | 0.0% |
| Punctuation F1token-level | 81.3% | 85.5% | 73.3% | 71.6% | 47.6% | 73.5% | 0.2% |
| Capitalizationaccuracy | 99.0% | 99.2% | 98.4% | 95.9% | 90.3% | 98.1% | 82.5% |
| Sentence startsaccuracy | 98.5% | 99.2% | 95.3% | 79.9% | 60.0% | 87.7% | 0.0% |
Best result in each row in bold. Every model got the same 1,200 dictations and the same instructions. No formatting is the dictation left exactly as transcribed, the score to beat; both stock Qwen models do worse than that on word error rate. Measured October 27, 2026 on a Mac with Apple M5 and 24 GB of memory.
Smart formatting
1,200 formatting examples · 7 kinds of speech · six models, and the text left unformatted for reference. Lower is better.
- Kanso Satori 1.0New0.43%
- Kanso Koi 1.0New0.97%
- Kanso Koi 0.92.06%
- No formatting (reference)21.14%
- Qwen3-1.7B (stock)29.12%
- Kanso Satori 0.934.78%
- Qwen3-4B Instruct (stock)53.54%
Formatting WER by category
Word error rate on each kind of speech, same 1,200 examples. Lower is better. The pill is Koi 1.0 against its stock base, Qwen3-1.7B.
- Koi 1.0
- Koi 0.9 (previous)
- Qwen3-1.7B (stock base)
All dictations
1,200 examples
−28.2 pts0.97%
Koi 1.0
1.0%2.1%29.1%Filler words
200 examples
−3.08 pts0.30%
Koi 1.0
0.3%0.4%3.4%Heavy fillers & restarts
200 examples
−18.1 pts0.31%
Koi 1.0
0.3%0.5%18.4%Numbers, money & dates
250 examples
−57.0 pts3.36%
Koi 1.0
3.4%7.8%60.3%Questions
150 examples
−74.0 pts0.00%
Koi 1.0
0.0%0.1%74.0%Short fragments
100 examples
−4.22 pts0.93%
Koi 1.0
0.9%0.5%5.2%Run-on sentences
150 examples
−24.1 pts0.32%
Koi 1.0
0.3%0.6%24.4%Exclamations
150 examples
−1.14 pts0.41%
Koi 1.0
0.4%1.1%1.5%
An error rate above 100% means a model wrote more words than were said. That happens when a model answers a dictated question instead of writing it down: Satori 0.9 did this on some questions (204.8%) and Qwen3-4B more often (293.7%). Koi 1.0 and Satori 1.0 wrote every question down.
Where the gains are
| Category | Qwen3-1.7B (stock base) | Koi 0.9 (previous) | Kanso Koi 1.0 | vs stock base | vs Koi 0.9 |
|---|---|---|---|---|---|
| All dictations | 29.12% | 2.06% | 0.97% | −28.2 pts | −1.09 pts |
| Filler words | 3.38% | 0.43% | 0.30% | −3.08 pts | −0.13 pts |
| Heavy fillers & restarts | 18.41% | 0.49% | 0.31% | −18.1 pts | −0.18 pts |
| Numbers, money & dates | 60.32% | 7.85% | 3.36% | −57.0 pts | −4.49 pts |
| Questions | 74.02% | 0.11% | 0.00% | −74.0 pts | −0.11 pts |
| Short fragments | 5.15% | 0.50% | 0.93% | −4.22 pts | +0.43 pts |
| Run-on sentences | 24.40% | 0.63% | 0.32% | −24.1 pts | −0.31 pts |
| Exclamations | 1.55% | 1.13% | 0.41% | −1.14 pts | −0.72 pts |
Word error rate for each kind of speech; lower is better. The last two columns show the change in percentage points against the stock model the release was trained from, and against the version it replaces.
It leaves clean text alone
Some sentences are already ready to send. We test those separately, with the original text as the reference, so the best a model can do is change nothing.
| Model | Word error rate ↓ | Added content ↓ | Left exactly as written ↑ |
|---|---|---|---|
| Kanso Koi 1.0 | 0.11% | 0.03% | 98.3% |
| Kanso Satori 1.0 | 0.17% | 0.00% | 98.7% |
| Kanso Koi 0.9 | 0.18% | 0.03% | 97.7% |
| Kanso Satori 0.9 | 3.84% | 0.21% | 74.0% |
| Qwen3-1.7B (stock) | 1.56% | 0.00% | 93.3% |
| Qwen3-4B Instruct (stock) | 0.96% | 0.03% | 90.0% |
300 sentences that were already clean, scored separately from the formatting results. Lower is better in the first two columns; the last counts sentences left exactly as written.
How we measured
Kanso Dictation Bench v1 is public, so every number on this page can be checked: the examples, the scorer, the exact model versions and every answer each model gave.
- What’s tested
- 1,500 English examples: 1,200 dictations to format across seven kinds of speech, and 300 sentences that are already clean. They run from 2 to 48 words, typically 14. It’s text only, no audio, so it measures Kanso’s step rather than speech recognition.
- Where the examples come from
- 1,150 are adapted from two public Hugging Face datasets, smoltalk and everyday-conversations. The 350 number, date and short-fragment cases are written by us. Sources, licences and every change are published with the data.
- How each model runs
- Every model gets the same text and instructions through its own chat template, with deterministic decoding and thinking turned off. No request failed, and the 18 answers that hit the length limit still count in the scores.
- How it’s scored
- Each score is an average across examples. Word error rate counts words added, dropped or changed against the reference. Exact match needs the whole answer to be identical, so it’s stricter than “means the same”. The published results add 95% confidence intervals.
- Kept apart from training
- No exact or near matches with the 13 training and evaluation files we could check. The newest 86,524-example training file and the stock models’ own training data weren’t available to check. The examples are synthetic, so treat the scores as a fair comparison on one shared test.
- Speed
- 50 dictations from the set, each run twice with the model order reversed, on a Mac with Apple M5 and 24 GB of memory using MLX 0.32.4. Load times reuse the system’s file cache, as a Mac normally would.
(03)
See it in action
Here is Kanso at work on recorded examples from the benchmark. Watch it edit what was said into what you meant to write: fillers and false starts go, punctuation and capitals arrive, and spoken numbers become figures.
You said
“it's a huge opportunityyouknowthough i'll miss you”
Kanso Koi 1.0
It's a huge opportunity, though I'll miss you.
Example 1 of 5
Recorded outputs from Kanso Dictation Bench v1, chosen for clear edits; every prediction is public. Struck-through words are the ones Kanso removed or rewrote. The typing shows what changed, not how fast. Hover to pause.
(04)
Speed and size
A typical dictation is a sentence or two. Koi 1.0 formats it in about 0.35 seconds and peaks at 1.27 GB of model memory. Satori 1.0 takes 0.47 seconds and 2.61 GB for the extra accuracy.
Speed and size
Measured on a Mac with Apple M5 and 24 GB of memory. Lower is better.
- Qwen3-1.7B (stock)0.28 s
- Kanso Koi 1.0New0.35 s
- Kanso Koi 0.90.46 s
- Kanso Satori 1.0New0.47 s
- Kanso Satori 0.90.48 s
- Qwen3-4B Instruct (stock)0.52 s
| Model | Per dictation | p95 | First token | Load + first request | Output speed | Peak memory | Download |
|---|---|---|---|---|---|---|---|
| Kanso Koi 1.0 | 0.35 s | 0.65 s | 0.16 s | 0.72 s | 82 tok/s | 1.27 GB | 1.05 GB |
| Kanso Satori 1.0 | 0.47 s | 1.01 s | 0.18 s | 0.99 s | 53 tok/s | 2.61 GB | 2.27 GB |
| Kanso Koi 0.9 | 0.46 s | 0.93 s | 0.18 s | 0.83 s | 56 tok/s | 1.84 GB | 1.55 GB |
| Kanso Satori 0.9 | 0.48 s | 0.98 s | 0.18 s | 1.62 s | 52 tok/s | 2.60 GB | 2.27 GB |
| Qwen3-1.7B (stock) | 0.28 s | 0.49 s | 0.14 s | 0.58 s | 117 tok/s | 1.31 GB | 0.98 GB |
| Qwen3-4B Instruct (stock) | 0.52 s | 1.33 s | 0.18 s | 0.94 s | 52 tok/s | 2.60 GB | 2.28 GB |
Each model formatted the same 50 dictations twice, on a Mac with Apple M5 and 24 GB of memory. Per dictation and first token are typical (median) times; p95 means 95% of dictations finished within that time. Load + first request is how long it takes to load the model and format the first dictation. Peak memory is what the model itself uses, not the whole app.
(05)
How it's built
Kanso is built for one job: turning a spoken draft into writing that still sounds like its author. We start with open base models, teach that behavior, then choose the packaging that works best on a Mac.
Start with capable foundations.
Koi starts from Qwen3-1.7B. Satori starts from Qwen3-4B-Instruct-2507. Each model keeps its own tokenizer, chat template, and pinned download revision. The benchmark uses those templates with a common formatting instruction.
Teach the details of dictated writing.
The current releases use the same 86,524-pair training split, drawn from a ten-source corpus. The mix covers dictation cleanup, conversational disfluencies, questions, spoken money and dates, expressive punctuation, and examples that should stay unchanged. LoRA fine-tuning uses rank 32 and alpha 64; Satori trains across all 36 of its layers.
Package each model for its strengths.
Koi keeps its adapter live on a clean 4-bit base, with the adapter stored in bf16. Its complete download is about 1.05 GB. Satori merges its adapter into bf16 weights, then uses distilled weight quantization to tune a 4-bit bundle against the larger model’s token distributions. It downloads about 2.27 GB and needs no separate adapter.
Measure the model and the product separately.
The public comparison measures each model’s answer. ZenVoice adds its own deterministic formatting rules, content checks, and sentence-aligned handling of long dictations. Those product behaviors are separate from the model-only scores shown here.
Keep inference on your Mac.
ZenVoice verifies its pinned model files with SHA-256 before loading them. Once downloaded, formatting runs in process through MLX. Your dictation never needs a cloud formatting request.
| Specification | Kanso Koi 1.0 | Kanso Satori 1.0 |
|---|---|---|
| Base model | Qwen3-1.7B | Qwen3-4B-Instruct-2507 |
| Parameters | 1.7B | 4B |
| Format | 4-bit base + live LoRA | 4-bit DWQ |
| Download | 1.05 GB | 2.27 GB |
| LoRA rank / alpha | 32 / 64 | 32 / 64 |
| Dropout | 0.05 | 0.05 |
| Learning rate | Cosine, 10⁻⁴ → 10⁻⁶ | Cosine, 10⁻⁴ → 10⁻⁶ |
| Training layers | 28 | 36 |
| Iterations / batch | 3,500 / 2 | 3,500 / 2 |
| Maximum training sequence | 1,024 tokens | 1,024 tokens |
| Licence | Apache-2.0 | Apache-2.0 |
| Runtime | MLX · Apple Silicon | MLX · Apple Silicon |
What Kanso learned from
Koi 1.0 and Satori 1.0 train on the same 86,524 examples from ten sources. The public benchmark was built separately from this data.
Ten sources
Dictation
- Relabeled dictation and speech-recognition pairs
- DisfluencySpeech and English disfluency data
Transcribed speech
- Hansard parliamentary speeches
- STEMM podcast transcripts
- Company earnings calls
- FOMC meeting transcripts
Questions and dialogue
- QuAC conversational questions
- Project Gutenberg dialogue
Formatting and tone
- BudgieScribe formatting generators
- GoEmotions expressive messages
What the mix teaches
- 01Keep ordinary words exactly as said
- 02Remove real fillers, but keep a “like” that carries meaning
- 03Write money, dates and times the same way every time
- 04Keep the punctuation that carries tone, like an exclamation
- 05Leave text that’s already finished alone
(06)
Availability
Choose Kanso in ZenVoice under Models → Formatting models. Download the model once, then use it offline. Both models and their model cards are also on Hugging Face.
The everyday choice
Kanso Koi 1.0
1.05 GB · 4-bit base + live LoRA · Apple Silicon