Formatting
How Sotto turns speech into properly formatted prose: punctuation, paragraph breaks from pauses, spoken commands, and artifact removal.
Raw speech recognition gives you a wall of words. Sotto’s job is to make it read like something you wrote.
What you get for free
Whisper itself produces punctuation and capitalisation. You do not need to say “comma” or “full stop” — speak naturally and the sentence structure comes out.
Paragraph breaks from pauses
Pause for longer than a threshold — 2 seconds by default — and Sotto starts a new paragraph.
This is the feature that makes long dictation usable. Think about your next point, and the break you took while thinking becomes the paragraph break the reader needs.
Adjust the threshold in Settings → Formatting. Shorten it if you speak with lots of small pauses and want tighter paragraphing; lengthen it if you are getting breaks you did not intend.
Voice commands
Two spoken commands, on by default:
| Say | Get |
|---|---|
| “new line” | A line break |
| “new paragraph” | A paragraph break |
Artifact removal
Transcription models emit markers for things that are not speech. Sotto strips them:
[BLANK_AUDIO]and similar bracketed markers- Parenthetical noise annotations like “(laughs)”
- Music symbols
Normalisation
Across the whole dictation, Sotto tidies up:
- Spacing around punctuation
- Capitalisation at the start of each sentence, including where one utterance runs into the next
- Joins between utterances, so a pause mid-sentence does not become a sentence break
That last one matters more than it sounds. Speech gets committed in chunks as you pause, and without normalisation each chunk would arrive looking like its own sentence.
Consistency across a long dictation
Each committed utterance is passed forward as context for the next. Names, jargon and technical terms stay spelled the same way through a long session, instead of drifting between plausible alternatives.
What is not done
Sotto formats; it does not rewrite. It will not restructure your argument, fix your grammar, or change your register — what you said is what you get, punctuated.
An optional local rewriting pass is on the roadmap and would be exactly that: optional, local, and off by default.