Thus to find the max number of values we can encode, we need to find that largest unambiguous set of letters/numbers. There's no reason we can't consider the letters G-Z, and some common punctuation, but I don't want to have to go manually pairwise compare "does G sound like A?", "does G sound like B?", "does G sound like C" myself. As we know this would be O(n^2) linguistic work to do =)...

Note that what letters are pronounced similar can differ a lot between languages...
–
Michael BorgwardtMar 25 '12 at 21:37

Besides, what exactly is the Latin alphabet?
–
MSaltersMar 26 '12 at 10:55

See also my answer in a related StackOverflow question.
–
MSaltersMar 26 '12 at 10:56

For the visual distinction, Base 32 is a standard encoding that limits the similarities of the symbols.
–
barjakMar 26 '12 at 13:07

@MSalters The "Latin script" is a linguistics idea, for our purposes I really just mean "select from the subset of the Latin script that is codified into Unicode," e.g. en.wikipedia.org/wiki/ISO/IEC_8859-1
–
elliot42Mar 26 '12 at 20:19

4 Answers
4

You should partition the set of alphanumerics into groups by visual similarity, and choose a “most iconic” representative from each group. This is somewhat subjective, though you could run user tests on it. The choices you make also depend on whether the figures will be printed or handwritten. For example:

{ O, 0, Q, D }

{ I, L, 1 }

{ B, 8 }

{ Z, 2 }

{ S, 5 }

{ 7, T }

{ U, V, Y }

Similarly, partition characters by the phonetic similarity of their names’ pronunciations:

These are, of course, not the only possible partitions, just what come to mind at the moment. Regardless, they should be enough to get you started for further testing. Also, these aren’t backed up by any professional sources—I cite only my hobbyist backgrounds in typography and phonetics.

For a start with Auditory similarity, have a look at radio communications such as Air traffic Control operations manuals( where verbal communications must be correctly interpreted or people die) and Ham Radio. For instance 5 and 9 are easy to mix up, hence spoken as "five" and "nine-a"
–
mattnzMar 25 '12 at 23:42

For English, the soundex and Metaphone algorithms encode which sounds are ambiguous. Soundex is probably too simple, but Metaphone incorporates some good points. Do you want the sequence "OU" ? That could be pronounced in many ways, as this sentence demontrates ;)

Jon Purdy's answer above seems most correct. For practical purposes, I am trying z-base-32, a non-standard base32 encoding designed with communicability in mind. It looks functional, though not ideal--e.g. they explicitly didn't focus on spoken disambiguation.