[FEATURE] Voice mode: custom vocabulary and spoken-to-text replacements
Summary
Voice mode currently offers no way to customize speech recognition. Tools like Aqua Voice provide customization layers that would make Claude Code's voice mode significantly more practical for professional use:
- Custom Dictionary — Improve recognition of domain-specific terms
- Replacements — Map spoken phrases to expanded text (abbreviations, URLs, boilerplate)
1. Custom Dictionary
Problem
The STT engine frequently misrecognizes domain-specific terms: library names, API endpoints, CLI flags, internal project terminology, etc. There is currently no way to hint the engine about expected vocabulary.
Proposed solution
A per-project or per-user term list (e.g., .claude/voice-dictionary.json or in settings.json). Users add the written form only; the STT engine infers pronunciation automatically.
{
"terms": [
"Supabase", "pgvector", "WezTerm", "WSLg",
"Grammy", "Bun", "Vite", "pnpm",
"IATF16949", "FMEA", "APQP"
]
}
How Aqua Voice does it
- Users type the term and click "+ Add" — no pronunciation field needed
- The AI automatically maps spoken audio to the registered term
- Capitalization is context-aware (e.g., "factorio" at sentence start → "Factorio")
Prior art (STT engines)
- Google Cloud Speech-to-Text:
speechContexts.phrasesfor phrase boosting - Deepgram: Custom vocabulary / keyword boosting
2. Replacements (Spoken → Written Expansion)
Problem
Users often need to dictate abbreviations, URLs, email addresses, code snippets, or boilerplate text. Spelling these out verbally is slow and error-prone.
Proposed solution
A mapping of spoken trigger phrases to expanded text:
{
"replacements": [
{ "spoken": "my email", "written": "user@example.com" },
{ "spoken": "project url", "written": "https://github.com/org/repo" },
{ "spoken": "standard header", "written": "// Copyright 2026 — All rights reserved." }
]
}
How Aqua Voice does it
- Two fields: shortcut (what you say) and expansion (what gets inserted)
- Works best with "easy to transcribe" trigger phrases
- If transcription varies, users can add multiple spoken forms pointing to the same expansion
Environment
- WSL2 on Windows 11 (Ubuntu 22.04), Claude Code v2.1.70
- Primary language: Japanese (IME always active)
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗