[FEATURE] Voice mode: custom vocabulary and spoken-to-text replacements

Open 💬 4 comments Opened Mar 6, 2026 by shostako

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:

  1. Custom Dictionary — Improve recognition of domain-specific terms
  2. 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.phrases for 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)

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗