How to dictate an at sign for decorators and annotations
Say “at sign” or “at symbol” to produce @ bound to whatever follows it, so “at sign State private var count” assembles as @State private var count. The at sign is one of only three characters in VoiceGem's table that attach rightward and nowhere else, which is exactly what a prefix marker needs.
A ten-word decorated declaration takes about 12 seconds to type and about 3.7 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.)
@PublishedVar sessionStateThis tool runs entirely in your browser. Nothing you type is sent anywhere, stored, or logged.
Step by step
- 1
Say “at sign” first
Speak the phrase at the start of the line. The character attaches rightward only, so it binds onto the name that follows with no space between them.
- 2
Build the name with a casing command
Say “pascal case” or “snake case” then the words. VoiceGem applies the prefix, then the casing command joins the following run into one identifier.
- 3
Break the line before the declaration
Say “new line” after the decorator. Whitespace commands are in the same pass, so a decorator and the declaration under it are one utterance.
- 4
By hand
Press Shift-2. Java and Python developers hit this constantly, and for one character the keyboard is faster.
Three characters in VoiceGem attach rightward, and all three are prefixes
The at sign, the hash and the dollar sign are the only right-attaching entries in the forty-symbol table. All three are prefix markers in the languages that use them — decorators and annotations, preprocessor directives and CSS rules, shell and PHP variables — and all three need to bind forward onto a name without binding backward onto the previous token.
Getting that group right is why decorators dictate cleanly while the tilde does not. The Deterministic Pass has no notion of what a prefix operator is; it has three entries whose flags happen to describe one, and the tilde was not included among them.
Where the manual way breaks
Shift-2 is a simple chord and a lone at sign is not worth dictating. Typing wins on the character.
Decorator stacks are the case worth speaking. Three decorators above a method means three prefix markers, three PascalCase or snake_case names and three line breaks, and every name is the expensive part to type. Dictating the stack in VoiceGem builds each name from a casing command and places each line break in the same pass.
Doing this somewhere else? speech-to-code converter, with nothing to install, the same thing for the dollar sign, the hash symbol, or how the single ampersand works.
Common questions
No. The at sign attaches rightward only in VoiceGem's table, which is what a prefix marker needs, so @State comes out closed up.
Say “at sign snake case” then the words. The prefix lands first and the casing command joins the following run into one identifier.
Yes. Say “at sign media” then the condition. The at sign binds to the rule name and the rest is ordinary punctuation.
Dictate a stack of three decorators and check every name.
Open the tool