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

Status Open
Maintainer reply None cached
Activity 4 comments · opened Mar 6, 2026

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 ↗

4 Comments

bistacos · 5 months ago

Yes please! +1

zancandigital · 2 months ago

Yes please!

mbailey · 2 months ago

VoiceMode (voicemode.dev) supports custom pronunciation rules (TTS + STT).

  • Free and open source
  • Screen-optional conversations with Claude Code (and imitators)
  • 1.2k ⭐, 250k PyPi downloads
caio-passos · 2 months ago

This would be awesome, I spend so much time trying to get voice mode understand custom terms, specially terms not from my primary language (pt -> en)