VoiceGem

How to dictate a comma between arguments

Say “comma” to produce a comma that binds to the token before it and leaves a space after, so “first comma second comma third” assembles as first, second, third. One spoken phrase maps to this character in VoiceGem's table, which makes it one of twelve symbols with no alternative phrasing at all.

A thirteen-word argument list takes roughly 15 seconds to type and roughly 4.8 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.)

What lands in your editor
connect(host, port, timeout)

This tool runs entirely in your browser. Nothing you type is sent anywhere, stored, or logged.

Step by step

  1. 1

    Say each argument, separated by “comma”

    Speak the list without pausing. The comma attaches left and not right, which produces a, b rather than a , b or a,b — the spacing a formatter would leave.

  2. 2

    Use it for every separated construct

    Argument lists, array literals, destructuring patterns and import lists all take the same phrase. The comma has one behaviour and VoiceGem applies it identically regardless of what surrounds it.

  3. 3

    Add a trailing comma when your formatter wants one

    Say “comma” before the closing bracket. Nothing objects, because the Deterministic Pass emits characters rather than validating syntax.

  4. 4

    The keyboard alternative

    Press the comma key. As with every single-character insert, typing is faster than speaking for one comma — the argument for dictation is the whole line, not the separator.

The comma is one of twelve VoiceGem symbols with exactly one spoken phrase

Most characters in the table carry aliases because people shorten them differently: the period has three phrasings, the asterisk has three, the open parenthesis has three. Twelve characters have exactly one, and the comma is among them — alongside the semicolon, the colon, the triple equals, the plus, the backslash, the single ampersand, the question mark, the caret, the tilde, the backtick and the underscore.

Fewer aliases is not a gap. The comma is unambiguous, everyone calls it the same thing, and adding “list separator” as a second phrase would be table weight nobody would use. VoiceGem's aliases exist where real people genuinely say different words, which is why the count varies per character.

Where the manual way breaks

Typing commas is not the bottleneck in anyone's day, and a page that claimed otherwise would be arguing against the reader's own experience. One comma is one keystroke on the home row.

Argument lists get expensive as a unit, not as characters. A three-argument call means naming three things, punctuating between them and closing the bracket, and doing it with your hands means your hands stay on the keyboard for the whole construct. Dictating the list is a single utterance, and VoiceGem places every separator the same way each time — so the output does not need re-reading before you move on.

Doing this somewhere else? our spoken-symbol reference, the backslash in an escape sequence, how the colon in a type annotation works, or the double colon path separator, step by step.

Common questions

The space is preserved rather than added. The comma attaches to the left token only, so the gap that was already between your spoken words survives on the right.

No. The comma is one of twelve characters in VoiceGem's table reached by exactly one spoken phrase, because nobody calls it anything else.

Yes. Say “comma” before the closing bracket and it lands. VoiceGem emits characters and never validates syntax, so your formatter decides whether the trailing comma stays.

See every phrase in the table, including the eleven other single-alias characters.

Open the tool