Personal context and dictionaries
Workspaces are per-app knowledge. This page covers the layer underneath them: the things that should be true no matter what you're dictating into — who you are, the terms you always want spelled right, and the words you want auto-corrected every single time. InkSpoke calls this the global layer, and it works alongside two dictionaries that rewrite words deterministically.
Think of it as a stack. Your global layer is the baseline; each workspace can accept it, add to it, or opt out.
How the pieces fit into one dictation
A single dictation touches all of these at different moments:
- Custom vocabulary is handed to the speech model as a hint (so it hears "InkSpoke", not "ink spoke") and to the AI as a list of known terms.
- Dictionary substitutions rewrite the raw transcription before refinement — a deterministic find-and-replace, not an AI guess.
- Personal Context is injected into the AI refinement prompt so the model knows who it's writing for.
The global layer: Personal Context + custom vocabulary
The global layer has two contributions, both stored in your synced settings and available to every workspace:
- Personal Context — free text about you. Your name, role, the projects you work on, how you like to be addressed, spellings the AI keeps getting wrong. It's injected into AI refinement so the output sounds like it was written by (and for) you.
- Custom vocabulary — a global list of terms — product names, acronyms, jargon — fed to the speech model and the AI so they're recognized and spelled consistently.
A master switch turns the whole global layer on or off, and a cloud-privacy gate governs whether your vocabulary is ever sent to a cloud speech provider.
| Setting | What it does |
|---|---|
Global layer master (GlobalLayerMaster) | The master gate for contributing Personal Context and global vocabulary to your dictations. |
Personal Context (PersonalContext) | Free text about you, injected into AI refinement. |
Custom vocabulary (CustomVocabulary) | The global term list handed to the speech model and the AI. |
Send vocabulary to the cloud (CustomVocabularyCloud) | Cloud-privacy gate — see the warning below. |
Your custom terms are only sent to a cloud speech provider when the CustomVocabularyCloud
gate is on. Leave it off and your terms never leave your machine, even if you're using a cloud
speech model. On-device speech models are never affected — everything stays local either way. See
On-device vs. cloud.
Per-workspace: inherit, on, or off
Each workspace decides how much of the global layer it wants. The controls live in a Global Layer accordion section inside the workspace detail panel:
┌─ Workspace: Legal — Contracts ────────────────────────┐
│ ▸ Speech │
│ ▸ AI │
│ ▾ Global Layer │
│ Personal Context [ Inherit ▾ ] │
│ Custom Vocabulary [ Inherit ▾ ] │
└────────────────────────────────────────────────────────┘
Personal Context has three states per workspace:
| Choice | Effect in this workspace |
|---|---|
| Inherit (default) | Follow your global master switch. |
| On | Always include your Personal Context here. |
| Off | Never include Personal Context here. |
Custom vocabulary composes the workspace's own terms with the global list:
| Choice | Vocabulary used |
|---|---|
| Inherit (default) | The global vocabulary (inherit-global-only). |
| On | This workspace's own terms plus the global vocabulary — gated by the master switch and the cloud-privacy gate. |
| Off | This workspace's own terms only; the global list is ignored. |
The merged term list is de-duplicated and capped at 50 terms, so add the words that matter most.
If a word matters everywhere (your company name), put it in the global vocabulary. If it only
matters in one context (a client's product codenames), put it in that workspace's vocabulary and
leave the global layer on Inherit or On. Learn to build and tune a workspace in
Create and tune a workspace.
The personal dictionary
The dictionary is different from vocabulary: instead of hinting the speech model, it does a whole-word, case-insensitive substitution on the finished transcription. If you say "gpt", it becomes "GPT". If you always mean "InkSpoke" when you say "ink spoke", fix it once and it's fixed forever — no AI involved, so it's exact and instant.
Each entry is a Trigger → Replacement pair you can enable or disable individually:
| Field | What it does |
|---|---|
| Trigger | The spoken word to match (whole word, case-insensitive). |
| Replacement | The text to substitute in. |
| Enabled | Toggles a single entry on or off without deleting it. |
Longer triggers are applied first, so a multi-word trigger won't get chewed up by a shorter one that
overlaps it. The personal dictionary is on by default (PersonalDictionaryEnabled) and stored as a
local JSON file at %AppData%/InkSpoke/personal-dictionary.json on Windows (the equivalent per-user
application-data folder on macOS and Linux).
The Personal dictionary and Team dictionary on/off toggles live on the General settings page, alongside the AI Refinement switch. Dictionary entries themselves are added and edited in Settings. See General & hotkeys.
The team dictionary (optional, encrypted)
Teams often share the same corrections — the same product names, the same house-style spellings. The team dictionary lets one person build that list and share it as a portable, encrypted file.
- Encryption: the file is AES-GCM encrypted with a key derived from a passphrase (PBKDF2, 600,000 iterations). Nobody can read it without the passphrase.
- Keychain: your passphrase is stored in the OS keychain so the dictionary auto-loads on launch — you enter it once, not every session.
- Import / export / clear: import a shared
.encfile with its passphrase, export your own to share, or clear it to remove. It's off by default (TeamDictionaryEnabled).
Personal overrides team
When a team dictionary is active, its entries act as a baseline underneath your personal dictionary. If both define the same trigger, your personal entry wins.
| Layer | Role | Wins on conflict? |
|---|---|---|
| Personal dictionary | Your own substitutions | Yes — personal always overrides team. |
| Team dictionary | Shared, encrypted baseline | No — used only where your personal dictionary is silent. |
This means you can adopt your team's shared list and still keep your own tweaks without them being clobbered.
Platform notes
The behavior is identical across platforms; only the storage locations differ.
| Item | Windows | macOS | Linux |
|---|---|---|---|
| Dictionary files | %AppData%/InkSpoke/ | app-data folder | app-data folder |
| Team passphrase (keychain) | Credential Manager | Keychain | Secret Service |
Next steps
- What are workspaces? — the layer that sits on top of your personal context.
- Create and tune a workspace — set per-workspace vocabulary and the Global Layer switches.
- General & hotkeys — where the dictionary toggles live.
- On-device vs. cloud & privacy — what the cloud-vocabulary gate protects.