Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does a pronounceable encoding exist?

I am using UUIDs, but they are not particularly nice to read, write and communicate. So I would like to encode them. I could use base64, or base32, but they would not be easy anyway: base64 has capitalized letters and symbols. Base32 is a bit better, but you can still obtain clumsy stuff.

I was wondering if there's a nice and clean way to encode a number into palatable phonemes, so to achieve better readability and hopefully a bit of compression.

like image 245
Stefano Borini Avatar asked Oct 30 '09 05:10

Stefano Borini


2 Answers

This question is very old; interestingly, as old as the solution I'm about to present, but it hasn't been mentioned here yet.

It's Proquint. Similar to Bubble Babble, but the differences make the results easier to read, in my opinion.

Here's how it works, from their documentation:

In sum, we propose encoding a 16-bit string as a proquint [PRO-nouncable QUINT-uplet] of alternating consonants and vowels as follows.

Four-bits as a consonant:

0 1 2 3 4 5 6 7 8 9 A B C D E F
b d f g h j k l m n p r s t v z

Two-bits as a vowel:

0 1 2 3
a i o u

Whole 16-bit word, where "con" = consonant, "vo" = vowel:

 0 1 2 3 4 5 6 7 8 9 A B C D E F
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|con    |vo |con    |vo |con    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Separate proquints using dashes, which can go un-pronounced or be pronounced "eh". The suggested optional magic number prefix to a sequence of proquints is "0q-".

Here are some IP dotted-quads and their corresponding proquints.

127.0.0.1       lusab-babad
63.84.220.193   gutih-tugad
63.118.7.35     gutuk-bisog
140.98.193.141  mudof-sakat
64.255.6.200    haguz-biram
128.30.52.45    mabiv-gibot
147.67.119.2    natag-lisaf
212.58.253.68   tibup-zujah
216.35.68.215   tobog-higil
216.68.232.21   todah-vobij
198.81.129.136  sinid-makam
12.110.110.204  budov-kuras
like image 117
Zwyx Avatar answered Oct 10 '22 19:10

Zwyx


Urbit's phonetic naming system wasn't mentioned yet. It uses 3 characters for 8 bits, 6 for 16, so it's less efficient than Proquint or Bubble Babble, but more divisible.

like image 26
ecloud Avatar answered Oct 10 '22 20:10

ecloud