Skip to main content

App favorites and custom vocabulary

Voice control runs on a small, fully offline speech grammar (Vosk). That keeps it fast and private, but it also means the recognizer only reliably hears words it has been told about ahead of time. These two settings are how you tell it: app favorites teach it the apps you talk to, and custom vocabulary teaches it the names and jargon you use. Both live in Settings → Hands-Free → the Voice Commands tab.

Get these right and commands like "annika action open slack" fire the first time, every time.

These live in the Voice Commands tab

Running commands that target apps (open / close / switch to) requires Pro, since voice commands are a Pro feature. Favorites and vocabulary are configured right next to them on the same tab.

App favorites — how "open <app>" gets resolved

An app favorite is an app you've added to a short, curated list so InkSpoke can match it when you speak. Each favorite has a display name, an optional set of aliases, and an icon. When you say a command like "annika action open slack" — or any command using the {app} placeholder — InkSpoke takes the spoken app name and tries to resolve it against your favorites.

Why a curated list instead of every installed app? Two reasons: the offline recognizer can only listen for a bounded set of words (see the grammar budget below), and fuzzy matching against three or four apps you actually use is far more accurate than guessing across hundreds.

The matching ladder

InkSpoke doesn't require you to pronounce the app's exact registered name. It walks a ladder of increasingly forgiving matches, and only falls back to similarity scoring if the direct checks miss:

The similarity fallback is what makes a slightly misheard word still work. Its score decides what happens next:

Similarity scoreWhat InkSpoke does
≥ 0.85High confidence — runs the command automatically.
0.60 – 0.85Uncertain — shows a suggestion balloon so you can confirm the app it thinks you meant.
< 0.60Too far off — no match, and the command is skipped.
Aliases are your reliability lever

If a command occasionally misfires, the fix is almost always an alias, not a sensitivity tweak. Add the way you actually say the app: vs code, code, and ide for Visual Studio Code; chat and messages for Slack. Each alias is a direct match, so it lands on the exact side of the ladder instead of relying on the fuzzy score.

Adding and managing favorites

┌─ Voice Commands ▸ Voice Favorites ────────────────────┐
│ Apps for "open / close / switch to <app>" │
│ │
│ Slack slack, chat [ Edit ] [ ✕ ] │
│ VS Code vs code, code, ide [ Edit ] [ ✕ ] │
│ Chrome browser [ Edit ] [ ✕ ] │
│ │
│ [ + Add app ] [ Manage… ] │
└───────────────────────────────────────────────────────┘
  1. Open Settings → Hands-FreeVoice Commands and find the Voice Favorites section.
  2. Choose + Add app. Pick from your installed apps in the app picker, or enter one manually.
  3. Add any aliases — the alternate names you're likely to speak.
  4. Save. The app is now resolvable in every app-targeting command.

There's a shortcut, too: when you save a command that targets an app and that app isn't a favorite yet, InkSpoke asks "Add to favorites?" — so your favorites list tends to fill itself in as you build commands.

Custom vocabulary — teach the recognizer your words

The offline recognizer won't reliably hear a word it has never been given — a colleague's name, a product codename, a tool like kubectl or nginx. Custom vocabulary is where you add those domain words so they become part of the grammar the engine listens for.

┌─ Voice Commands ▸ Custom Vocabulary ──────────────────┐
│ Teach the offline recognizer your words │
│ │
│ [ kubernetes ✕ ] [ grafana ✕ ] [ nginx ✕ ] │
│ [ prisma ✕ ] [ anika ✕ ] │
│ │
│ Add words: [ pnpm, kafka, otel ] [ Add ] │
│ │
│ Words: 342 / 1000 ▐█████░░░░░░░░░░░░░▌ │
└────────────────────────────────────────────────────────┘
  1. In the Custom Vocabulary section, type a word into the add box and confirm — it becomes a removable chip.
  2. To add several at once, type them comma-separated (pnpm, kafka, otel) and add them in one batch.
  3. Remove a word by clearing its chip.

Entries are de-duplicated case-insensitively, so Kafka and kafka count once.

Two different "vocabularies"

This custom vocabulary feeds the voice-control grammar — what the hands-free engine can hear. It is separate from the workspace / personal vocabulary that hints your dictation speech model. Adding a term in one place doesn't add it to the other. For the dictation side, see Personal context and dictionaries.

The grammar budget

Everything the offline engine listens for shares one grammar — and a bigger grammar is a slower, less accurate grammar. So InkSpoke caps the total number of distinct words it will load, and shows you a live meter of how much of that budget you're using.

The budget is shared across four contributors:

  • the words in your command mappings (spoken phrases),
  • your app favorites (names and aliases),
  • your custom vocabulary, and
  • the built-in conversion words InkSpoke needs (numbers, "press", key names, and so on).
Value
Default budget (MaxWords)1,000 distinct words
Counted asDistinct words across mappings, favorites, custom vocabulary, and built-ins
Where shownThe Words: X / Y counter under Custom Vocabulary

The meter changes color as you approach the cap so you get a warning well before you hit it:

MeterUsageMeaning
🟢 GreenBelow 70%Plenty of room.
🟡 Yellow70% – 90%Getting full — prune if you can.
🔴 Red90% and aboveNear the cap — remove words before adding more.
Keep the budget lean for accuracy

The budget isn't just a hard limit — it's a quality signal. A tight, relevant grammar recognizes your real words far more reliably than a bloated one. If the meter is yellow or red, remove favorites you never target by voice and vocabulary words you no longer use, rather than trying to cram everything in.

Platform notes

The matching logic, the vocabulary, and the grammar budget behave identically on Windows, macOS, and Linux. The only difference is how the app picker discovers your installed apps when you add a favorite:

WindowsmacOSLinux
Installed-app discoverySystem registrySpotlight / AppleScript.desktop entries / wmctrl

If an app doesn't show up in the picker on your platform, you can always add it manually and set the app identifier yourself.

Next steps