How to dictate an asterisk for multiplication, pointers and wildcards
Say “star”, “asterisk” or “times” to produce an asterisk spaced on both sides, so “width times height” assembles as width * height. Spacing suits multiplication and works against pointer syntax: a Go or C pointer dictated this way arrives as * pointer and needs the space removed.
A six-word arithmetic expression is about 6.9 seconds of typing against about 2.2 seconds of speech. (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.)
area = width * height * scaleThis tool runs entirely in your browser. Nothing you type is sent anywhere, stored, or logged.
Step by step
- 1
Say “times” for multiplication
Speak the operands with the phrase between them. The asterisk attaches on neither side, giving width * height with the spacing arithmetic wants.
- 2
Say “star” for a wildcard
Use the shorter alias in a SQL select or a glob. All three phrasings reach the same character; the alias is about what feels natural to say, not about behaviour.
- 3
Expect a space in pointer syntax
Say “star” before the type and remove the space afterwards. VoiceGem cannot space one character correctly for both multiplication and pointer declaration, and it is set for multiplication.
- 4
Typing it instead
Press Shift-8. Anyone writing C or Go pointer code reaches this chord constantly and should keep doing so.
One asterisk, three jobs, and VoiceGem spaces it for the most common one
Multiplication, pointer declaration and wildcard matching all use the same character with three different spacing conventions. VoiceGem's table holds one entry with one pair of flags, set for multiplication, which is the usage that most often appears between two identifiers.
Choosing a default rather than detecting the case is the trade the Deterministic Pass makes everywhere. Detection would mean inferring your language and your intent, which is precisely the guess that makes a model-based formatter non-deterministic — and the cost of the alternative is one formatter pass on the lines where the default is wrong.
Where doing it by hand breaks down
Shift-8 is a chord most developers already own and a lone asterisk is not worth speaking. Typing wins on the character.
Glob patterns are the case that hurts. A recursive glob mixes slashes, double asterisks and an extension, all of which are punctuation, and all of which come out spaced when dictated through VoiceGem. The honest recommendation is to dictate the surrounding line and type the glob, rather than to dictate the glob and fight the whitespace.
Doing this somewhere else? the speech-to-code converter, the same thing for the caret, the same thing for the forward slash, or the minus sign and hyphen specifically.
Common questions
Whichever is quickest for you. All three reach the same entry in VoiceGem's table and produce an identical character with identical spacing.
Yes, with a caveat. The asterisk comes out spaced because the table entry is set for multiplication, so remove the space or run your formatter afterwards.
Not really. Every character in a glob is punctuation and all of it arrives spaced, so typing the pattern is usually the better call.
Dictate a pointer declaration and see exactly what needs cleaning up.
Open the tool