Digimaphone, aka the digit-sound method for memorizing numbers.

I’m enamored with this mnemonic trick for memorizing numbers:

I’d like to write a program that generates candidate phrases given a list of phonemes. For example, 314159 maps to, among others, this list of phonemes: {m, th, r, d, l, p}. Vowels are irrelevant so the program I’m envisioning would try all possible vowel insertions and partitionings, including {{m, a, th, ee}, {r, a, d}, {l, u, p}}.

Then, given a database of phonetic spellings, I could map {m, a, th, ee} to “mathy”, {r, a, d} to “rad”, and {l, u, p} to “loop”. So entering 314159 would output “mathy rad loop” (among many others, like “mother dull pay”, that wouldn’t be nearly as clever or meaningful).

Problems with this idea:

  1. It would output way too many candidates, most of which would be very meaningless.
  2. Clever/meaningful words like “mathy” wouldn’t always be in the database.

But it could output some random candidates and that might be useful.

Side note: this mnemonic trick works brilliantly. Once you cache the digit-phoneme equivalences in your brain, a phrase like “mathy rad loop” really does map clearly and unambiguously to the string of digits “314159”. I’ve memorized my passport number and credit card number and things this way. It’s pretty fun. I’ll always remember Dan Goldstein for introducing it to me! [definitely; i’m treating DSN as the definitive source for it! :)]

App idea: Enter a number, get shown candidate phrases. Find one to memorize. Later, enter that phrase in the app — with the app maintaining zero state — and your original number appears. (Note that a given string of digits will have a massive number of phrases that all map to it, but the mapping from a given phrase to a number is a trivial lookup, given a database of phonetic representations of words.)

PREREQ: A database for mapping a word to a list of its composite phonemes, and vice versa. Note: not just a phonetic spelling but an actual list of the phonemes.

So like

“cat” = {“k”, “a”, “t”}
“judge” = {“j”, “uh”, “j”}
“monkey” = {“m”, “uh”, “n”, “k”, “ee”}

(I don’t mind using more standard representations of the phonemes instead of my ridiculous “uh” and “ee” and whatnot, as long as it’s a consistent representation. Numerical codes for each phoneme would be fine too.)

PHASE 2: Given a database of parts of speech and a simple grammar (a subset of English’s like S -> NP VP, NP -> ADJ* N, etc) we could filter the candidate phrases according to their parsability as English sentences. For example, for {m, th, r, d, l, p} we’d jettison “mother dull pay” but keep “my three do lop”. Of course, despite the latter being grammatical, it’s not any more semantically meaningful than the former. Nonetheless, it might make for a worthwhile filter when generating phrases. The idea would be that you scroll through a list and hopefully one jumps out at you as funny or striking and thus memorable.

Implementation note: Homographs should be purged from the database, if the consonants differ. For example, “number” is pronounced one way in “the number two” and another way in “the colder it is the number my toes”. Homographs that differ only in the vowels (“the wind blows” vs “wind up a toy”) are ok. The point is that every word must map to exactly one list of phonemes, up to differences in vowels. So “number” is out since it maps to both {n, uh, m, b, r} and {n, uh, m, r}. Other verboten homographs: buffet, slough.

We also may want to purge words like “nation” which are begging for errors (technically “nation” codes to 262 since the “t” is pronounced as “sh” but looking at it visually you might accidentally code it as 212. Dan Goldstein points out that using such words is like confusing yourself with a Stroop task.


Kevin McGowan:
Festival is free and open source and comes with a database of American pronunciations for a lexicon and, as I recall, a collection of letter to sound rules for words that aren’t in the lexicon:


CMU pronouncing dictionary that Dan Goldstein used:

I have something implemented in Mathematica that converts back and forth from numbers to words.


http://fonbee.com/ [DEAD]