Polish your writing with AI refinement
Your goal: dictate a rough, rambling message and have InkSpoke hand you clean, well-punctuated text that fits the app you're writing in — then learn the two controls (a hotkey and tone presets) that let you steer it, and how to re-run refinement on something you dictated earlier.
What you'll learn
- How to confirm AI refinement is on and dictate a message that gets cleaned up automatically.
- How to flip refinement on or off mid-flow with a single hotkey.
- How tone presets change the wording based on the app you're dictating into.
- How to reprocess a past dictation from History with a different model — no re-recording.
Prerequisites
- InkSpoke desktop installed and set up. If you haven't yet, start with Install and set up InkSpoke.
- You've sent at least one dictation. If not, walk through Your first dictation first.
- Refinement runs through your active text-processing model (built-in InkSpoke Platform, your own BYOK key, or an on-device model on desktop). Any active model works; you can review or change it in Audio and models.
Time estimate: about 10 minutes.
How refinement fits into a dictation
Refinement is an optional step that sits between transcription and injection. Your audio is transcribed first (on-device by default), then — if refinement is on — the raw text passes through a language model that removes filler, fixes punctuation and grammar, and adapts the wording before it lands at your cursor.
When refinement is on, InkSpoke cleans up the transcript and applies your tone and workspace rules. When it's off, the raw transcription is injected verbatim and no workspace prompt data is used at all. That's the difference you'll feel in the steps below.
Step 1 — Confirm AI refinement is on
AI refinement ships on by default (the AiRefinementEnabled master switch), but it's worth checking before you test it.
- Open Settings → Home (the General page).
- Find the AI Refinement toggle and make sure it's enabled.
That single toggle is the master gate for the entire refinement step — if it's off, nothing below the transcription stage runs.
Step 2 — Dictate a rough message and watch it clean up
Now dictate something deliberately messy so the difference is obvious.
-
Put your cursor in any text box — an email draft, a chat message, a notes app.
-
Press the activation hotkey (Alt + Space, or ⌥ + Space on macOS). The listening overlay appears.
-
Speak naturally, with the filler you'd normally edit out. For example:
"um so hey i wanted to like follow up on the thing from yesterday, uh the deadline, can we maybe push it to friday i think that works better for everyone you know"
-
Press the activation hotkey again (or click Send) to finish.
InkSpoke transcribes your words, runs them through refinement, and injects a cleaned-up version at your cursor — something along the lines of:
"Hey, I wanted to follow up on yesterday's deadline. Can we push it to Friday? I think that works better for everyone."
The exact wording depends on your active model, your tone preset, and any workspace that matched — but the filler, false starts, and missing punctuation are gone.
While you're speaking, the listening overlay tells you the current state. If refinement is switched off, it shows "AI refinement off" so you're never surprised by raw output.
Step 3 — Toggle refinement with a hotkey
Sometimes you want the raw transcript instead — a verbatim quote, a code snippet, or a search string you don't want "improved." You can flip refinement without opening Settings.
- Press the refinement toggle hotkey: Alt + Shift + R (⌥ + Shift + R on macOS).
The next time you open the overlay, you'll see the state reflected there:
┌────────────────────────────────────────────────┐
│ ● Listening… AI refinement off │
├────────────────────────────────────────────────┤
│ ▁▃▅▇▅▃▁▂▄▆▄▂ "your words appear here" │
│ │
│ [ Workspace ▾ ] [ EN ▾ ] [ Send ] │
└────────────────────────────────────────────────┘
Press the same hotkey again to turn refinement back on. Both the activation hotkey and the refinement toggle hotkey are configurable in General and hotkeys.
Step 4 — Tune tone per app with tone presets
When refinement is on, InkSpoke matches its tone to the app you're writing in. It does this with tone presets — each preset is a set of app-name patterns plus a tone style. At refinement time, InkSpoke looks at the foreground app's name and applies the first preset whose pattern matches.
The available tone styles are:
| Tone style | Feel it produces |
|---|---|
| Professional | Polished and businesslike — good for email and documents. |
| Casual | Relaxed and conversational — good for chat. |
| Technical | Precise and terse — good for engineering contexts. |
| Neutral | Clean-up only, without pushing the register up or down. |
| Custom | Your own instruction prompt, applied verbatim. |
To make an app get the tone you want, add or adjust a preset so its app-name pattern matches that app and its tone style is what you're after. Because the first matching preset wins, order matters — put more specific patterns ahead of broad ones.
On top of tone presets, InkSpoke detects when you're dictating into a code editor or a terminal and switches its output mode to match (code-aware in IDEs, terminal-safe in terminals). You don't configure that per app — it's on by default. See App-aware tone and code for the full picture, and Dictate into code and terminals for a focused walkthrough.
Test it by dictating the same sentence into a chat app and into an email draft — with matching presets in place, the chat version should read looser than the email version.
Step 5 — Reprocess a past dictation with a different model
You don't have to re-record to try a different result. From History, you can re-run refinement on any past dictation using a different text model — or a different workspace.
- Open Settings → History.
- Click a past dictation to open its detail drawer. The drawer shows the ASR and LLM models that were used.
- Pick a different LLM model to re-refine with. Optionally, choose a different workspace from the reprocess-workspace dropdown — it lists the original workspace, "None — no workspace", and every other workspace.
- Run the reprocess. InkSpoke re-refines the record's saved raw transcription with the model you chose and shows the new result.
┌─────────────────────────────────────────────────────────┐
│ Dictation · 10:42 │
│ ASR: Whisper Small LLM: (your text model) │
├─────────────────────────────────────────────────────────┤
│ Raw: "um so hey i wanted to like follow up…" │
│ Refined: "Hey, I wanted to follow up on…" │
├─────────────────────────────────────────────────────────┤
│ Reprocess with: [ LLM model ▾ ] [ Workspace ▾ ] │
│ [ Re-refine ] │
│ Re-transcribe: [ ASR model ▾ ] [ Re-transcribe ] │
└─────────────────────────────────────────────────────────┘
The drawer also lets you re-transcribe the original audio with a different speech model. Re-transcribing changes the raw text; re-refining changes only the polish applied on top. Use whichever matches what you want to improve.
Expected result
By the end of this tutorial you should be able to:
- Dictate a messy sentence and receive clean, punctuated text automatically.
- See "AI refinement off" on the overlay after pressing the toggle hotkey — and clean output again after pressing it once more.
- Get noticeably different wording in a casual app versus a formal one, once your tone presets match those apps.
- Open a past dictation in History and produce a new refined version with a different model, without recording again.
Troubleshooting
The injected text looks identical to what I said (filler and all). Refinement is probably off. Open the overlay and check for "AI refinement off", press Alt + Shift + R (⌥ + Shift + R) to toggle it back on, or verify the AI Refinement toggle under Settings → Home.
The tone doesn't change between apps. Tone is matched against the foreground app's name, and only the first matching preset applies. If nothing changes, no preset pattern matched that app — add or edit a preset whose app-name pattern matches it, and place specific patterns above broad ones.
Refinement is slow or fails on some dictations. Refinement uses your active text-processing model. Cloud and BYOK models depend on your network and provider; on-device models depend on your machine. Check or switch the active model in Audio and models. If refinement can't complete, InkSpoke falls back to the raw transcription rather than losing your text.
Reprocessing produced the same result as before. Make sure you actually selected a different model (and, if you meant to, a different workspace). Reprocessing bypasses the response cache, so a genuinely different model will produce a fresh result.
Next steps
- How refinement works — the full model of the refinement step, streaming output, and routing.
- App-aware tone and code — how tone presets and code/terminal detection combine.
- Command Mode — select text in any app and speak an instruction to transform it.
- History and diagnostics — everything the History page and reprocess drawer can do.
- Build a workspace for your domain — teach InkSpoke your vocabulary and tone so refinement gets even sharper.