How to dictate a camelCase variable name
Say “camel case” followed by the words of the name, and VoiceGem joins them into one identifier with the first word lowercase: “camel case get user by id” returns getUserById. The command consumes every plain word that follows it and stops at the first symbol or the next casing command.
An eight-word declaration with a four-word name takes about 9.2 seconds to type and about 2.9 seconds to say. (sources: Dhakal, Feit, Kristensson & Oulasvirta, “Observations on Typing from 136 Million Keystrokes”, CHI 2018, 168,000 participants, 136 million keystrokes; Yuan, Liberman & Cieri, “Towards an Integrated Understanding of Speaking Rate in Conversation”, Interspeech 2006, 2,438 American English telephone conversations (Switchboard corpus). The speech figure is conversational rate, not a measured dictation rate — no such measurement exists.)
const maxRetryAttempts = 3This tool runs entirely in your browser. Nothing you type is sent anywhere, stored, or logged.
Step by step
- 1
Say “camel case”
Speak the command before the name, not after it. VoiceGem checks for a casing command at every token position before it checks the symbol table.
- 2
Say the words of the name, spaced naturally
Speak each word as a separate word. The command joins the whole run into one identifier, lowercasing the first and capitalising the rest.
- 3
Say a symbol to end the run
Speak any symbol phrase to stop the name. An open paren, an equals or a comma all terminate the run, and so does another casing command.
- 4
The manual path
Type the name with shift on every internal capital. For a two-word name that is quick; the cost climbs with each additional word and each shift.
The camel case run stops at a symbol or at the next casing command
Knowing where a name ends is the whole skill. VoiceGem's casing command greedily consumes the plain words after it and stops at the first token that is a symbol phrase, a whitespace command or another casing command — so “camel case get user open paren user id close paren” gives getUser(user id), and the second pair of words is not joined because nothing told it to.
The rule is worth learning once because it is the same for all five styles. A second name in the same sentence needs its own casing command, which is why “camel case source list equals camel case target list” returns sourceList = targetList rather than one long identifier.
Where the manual way breaks
A two-word camelCase name is quick to type and a shift key is not a hardship. Nobody needs dictation to write id or url.
Long names are where the shift count adds up. A five-word identifier means four internal capitals, and the failure mode of typing it is a name that differs from the one you meant by a single letter case — which in JavaScript is a runtime undefined rather than a compile error. Dictating it in VoiceGem produces the same identifier from the same words on every run.
Doing this somewhere else? the browser-based casing converter, how the constant case command works, the kebab case command, or how the pascal case command works.
Common questions
Say “camel case” before each of them. The command stops consuming words at the next casing command, so two names need two commands.
Any symbol phrase, any whitespace command, or another casing command. Plain words are consumed until one of those arrives.
No. Four of VoiceGem's five casing styles have exactly one phrase each; only the constant style carries alternatives.
Convert a name between all five styles and see which one you want.
Open the tool