VoiceGem

How to say a logical OR when dictating a fallback

Say “double pipe” or “logical or” to produce || spaced on both sides, so “value logical or fallback” assembles as value || fallback. Saying “pipe pipe” instead returns two separately spaced bars, because each token is looked up on its own rather than as a sequence.

A ten-word fallback assignment runs about 12 seconds typed against about 3.7 seconds spoken. (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
const pageSize = queryLimit || 25

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

Step by step

  1. 1

    Say the preferred value first

    Speak the left operand, including a casing command for its name. VoiceGem builds the identifier before the operator phrase arrives.

  2. 2

    Say “logical or”

    Reach for the operation name rather than the glyph name. Both phrasings hit the same table entry, and “logical or” is easier to say mid-condition.

  3. 3

    Say the fallback

    Speak the default value last. Digits pass through as digits and any word not in the table survives untouched.

  4. 4

    By hand

    Press Shift-backslash twice. For a single operator this is quicker, and no editor completes it for you.

Fallback chains dictate well because VoiceGem holds no state between lookups

A chain of three fallbacks is three identifiers and two operators, and each of the five is an independent table lookup. Nothing accumulates, nothing is parsed, and adding a fourth clause changes nothing about how the first three are handled.

Statelessness is what makes the output predictable at length. A model-based formatter's behaviour on a long expression depends on the whole expression, so adding a clause can change how an earlier one is rendered; the Deterministic Pass walks tokens once and each token's result depends only on that token.

Where doing it by hand breaks down

Two shifted keystrokes is not a burden and a single operator is faster typed. Nothing here argues otherwise.

Default-value lines are worth speaking because of the names, not the operator. A page-size fallback holds two camelCase identifiers and a literal, and building those names is most of the typing. Dictating the line in VoiceGem produces both identifiers from casing commands and places the operator between them in one pass.

Doing this somewhere else? a longer run through the speech-to-code converter, the same thing for the single ampersand, the same thing for the logical AND operator, or the exclamation mark specifically.

Common questions

Two separately spaced bars, not the logical-or operator. Each token is looked up independently, so use the dedicated phrase instead.

Say “question mark question mark”. Both characters attach left, so they land adjacent and give you the two-character operator.

No. VoiceGem holds no state between lookups, so each token's output depends only on that token and adding a clause changes nothing before it.

Add a fourth fallback and watch the first three stay identical.

Open the tool