How to

Dictating Numbers And Addresses

Dictation handles sentences well and strings of digits badly. The reason is the same one that makes it good at sentences, and knowing it tells you exactly when to stop speaking and start typing.

Guides

Dictate the sentence, type the string

One rule covers almost all of it.

Speak the words, type the digits. A message that begins "the reference is" is easy material for any recogniser and takes one breath. The reference itself is a handful of characters you can enter without a single error, and entering them by hand beats dictating them and then working out which character came out wrong.

The strongest case of the rule is an email address, and people keep trying anyway.

An email address contains at least one symbol that has to be inferred from a spoken word, usually a proper noun the system has never met, and a suffix that sounds like an ordinary word. Every part of it is a failure mode, and unlike a sentence there is no redundancy: one wrong character and the message goes nowhere.

The same applies to usernames, URLs, IBANs, licence plates, order references, delivery tracking codes and anything else where a single wrong character invalidates the whole string.

That reads like a defeat and it is simply the correct division of labour. Dictation is not worse than typing at everything, and this is the one category where it plainly is.

Why numbers are the hard case

Speech recognition leans heavily on the words around a sound. When one is ambiguous, its neighbours narrow the possibilities, and a whole sentence therefore comes out right where a single word does not.

A number has none of that. Any digit can follow any other digit, so nothing about "seven" makes "three" more or less likely next. The system is working from sound alone, with none of the help it normally relies on.

Addresses and codes are worse still, because they mix categories. A postcode is letters and digits with no linguistic pattern. An email address contains a word, a symbol, another word and a suffix, delivered as one breath. A reference number is a string somebody invented.

None of that is an implementation problem, so a better app does not make it go away.

Five ways a number comes out wrong

Digits merge or split. "Twenty twenty four" becomes 2024 or 20 20 4 or twenty twenty four in words, depending on the system and the rhythm.

Homophone digits. In many languages several numbers sound close, and spoken quickly in a sequence they blur.

Formatting is invented. Phone numbers get grouped, dates get reordered, and decimal separators land differently depending on the language the model decided you were speaking.

Symbols become words. The at sign, the dot, the hyphen, the slash. These are spoken as words and there is no reliable way for a system to tell whether you meant the symbol or the word.

Letters become sound-alikes. In a postcode or reference, spoken letters are brutal. B, C, D, E, G, P, T and V all rhyme in English, and with nothing around them the model picks one.

When you have to say them out loud

Sometimes typing is not available: hands busy, walking, or the string is short enough not to be worth switching. A few techniques help.

Say digits individually, with a beat between them. "Zero, six, one, two" rather than "oh six twelve". Grouping is where merging errors come from.

Give it a run-up. Two ordinary words before the number give the system something to settle against. "The number is" then the digits, or "the postcode is" before a postcode. Never start cold on a digit.

Say short groups and pause. A phone number in three chunks with a pause between them is far more reliable than one continuous stream.

Use the phonetic alphabet for letters. Alpha, Bravo, Charlie will not produce single letters, but it does produce words you can convert reliably by hand, which beats a wrong letter you did not notice.

Say small numbers as words and large ones as digits. "Three" is unambiguous. "Three thousand seven hundred and twelve" is a lottery.

Dates, times and money

Each of these has a trap of its own.

Dates get reordered according to the conventions of whichever language the system decided you were speaking. Reordering is a real risk in any bilingual setting, where the same three numbers mean two different days depending on the convention. Say the month as a word instead of a number and the ambiguity disappears entirely.

Times are usually fine spoken naturally, but the twelve and twenty-four hour forms get mixed, and "half seven" means two different things depending on which country you are in.

Money suffers from the decimal separator. Some languages use a comma where others use a full stop, and the model applies the convention of the language it heard. For anything where the amount matters, type it.

Streets can be taught, digits cannot

Part of this is fixable in advance and part of it is not, and knowing where the line falls saves you hunting for a setting that does not exist.

Recurring proper nouns inside addresses, your street, your town, the estate name, the building the office is in, are words the model can learn. Adding them means the words around the numbers arrive correctly even when the numbers themselves need attention. LocalType keeps such additions on the phone and passes them to the recogniser as background knowledge while it works.

Numbers themselves cannot be learned this way, because the problem is not vocabulary. The system knows every digit perfectly well; it simply has no way to choose between them.

What does move is the model size. The three options, at 60, 190 and 539 MB, differ in how well they cope with ambiguous audio, and a digit with nothing either side of it is the definition of ambiguous audio. If numbers are a daily part of your work, the largest one earns its storage. As a reference point, the 190 MB middle option wrote out 6.9 seconds of speech in 4.1 seconds on the 4 GB phone used for testing.

Everything else about the app behaves the same whether you are dictating a sentence or a sort code: recognition on the handset from a file no other app can open, internet access requested for exactly one purpose, the model download, and nothing after that. No account, no advertising, nothing inside the product recording your usage, no stored audio, and Android's cloud backup deliberately skipped. In a password field no microphone key is offered, which matters especially here, since codes and numbers are exactly what people try to dictate into fields that should not take them.

Read the digits back before you send

The habit that prevents the genuinely expensive mistakes.

A misheard word in a sentence is usually obvious to a reader. A misheard digit is not, because a wrong number looks exactly as plausible as a right one. Nobody proofreads a phone number by reading it, so read it deliberately, digit by digit, or read it back aloud, which catches errors that scanning does not.

Two habits beat a general intention to be careful. Check the string against the source rather than against your memory of the source. And count the characters first, because a merged pair or a split one changes the length, and a wrong length is quicker to spot than a wrong digit in the middle.

For anything financial, legal or medical, treat dictated numbers as unverified until you have checked them against the source. It is the same rule you would apply to numbers you typed while tired.

Get LocalType for Android

Private voice typing that runs on your phone, with speech recognition on the device itself.

Get it on Google Play