4

Anguish Languish is a silly linguistics exercise to replace all words in a sentence with phonemically similar counterparts with no regards for semantics or meaning. The intent is that the original statement still in some way "sounds" like the original when spoken. An example:

English:

"Gracious! What a lot of words sound like each other!

Anguish:

"Crashes! Water larders warts sunned lack itch udder!

Are there any standard tools or techniques to computationally determine if a group of words are loose homophones what a -> water. It would be ideal if there was some metric that could measure the difference between two sounds, similar to a Hamming distance.

3 Answers 3

1

You should take a look at the CMU Pronouncing Dictionary.

The software breaks up a word into machine-readable phonemes, e.g.:
"C M U DICTIONARY" --> "S IY . EH M . Y UW . D IH K SH AH N EH R IY ."

You could then use the phonemes to find approximate homonyms.

2

Try Double Metaphone. The idea behind it is to "hash" similar sounds to the same letters, putting words with similar orthography into an equivalence class. One application is in genealogy, where a historical surname might have dozens of realisations. Your examples would encode to:

KRSSTLTFRTSNTLKX0R

and

KRXSTRLRTRSRTSNTLKXTR

and edit distance could provide a metric.

Note that Double Metaphone, Soundex and its ilk are only heuristics, and grossly ignore orthography in order to obtain a rough representation.

0

Obviously this task is accomplished in speech recognition.

In theory you could pipe the speech out (speech synthesis) as audio input into a speech recognition system. However this recognition system would need to be completely basic, with only a unigram model, as any real-world system has an language model (much as we humans have) that is biased to find words that are likely to co-occur in the real world in a given context.

Practically speaking I think that converting each word to phonemes and each phone to some text representation, with a bit of soft matching, would be the easiest way to a result. (One text representation we should mention here is the IPA.)

You could also start with a list of homophones (listed in Wiktionary data, for example), to get some initial coverage, and some initial equivalencies. More fashionably, you could start with some training data (existing sentence pairs), and get a system to learn these.

There are some useful applications of this for encoding messages to avoid filters.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.