Skip to main content

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.

What refinement does — and doesn't

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.

  1. Open Settings → Home (the General page).
  2. 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.

  1. Put your cursor in any text box — an email draft, a chat message, a notes app.

  2. Press the activation hotkey (Alt + Space, or + Space on macOS). The listening overlay appears.

  3. 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"

  4. 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.

Watch the overlay

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 styleFeel it produces
ProfessionalPolished and businesslike — good for email and documents.
CasualRelaxed and conversational — good for chat.
TechnicalPrecise and terse — good for engineering contexts.
NeutralClean-up only, without pushing the register up or down.
CustomYour 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.

Code and terminals are handled automatically

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.

  1. Open Settings → History.
  2. Click a past dictation to open its detail drawer. The drawer shows the ASR and LLM models that were used.
  3. 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.
  4. 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 ] │
└─────────────────────────────────────────────────────────┘
Two independent knobs

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