h a l f b a k e r y
Go ahead. Stick a fork in it.
add, search, annotate, link, view, overview, recent, by name, random
news, help, about, links, report a problem
or get an account
This idea is a more feasible alternative to the already
excellent RFC 1149. (see link)
Use humans to talk binary to each other. Any medium
work. Whispering in the ear, on the phone, walkie-
talkies, shouting to another person half a block away.
When you hear someone telling you a
string prefaced by
"incoming binary transmission". You sit at the closest
keyboard and start typing (because you're not going to
remember it and it has to be translated to binary to
Let's say you are trying to send a 128 byte long binary
There are several options. Some more practical than
- Raw binary. Ex: 11110001 11010100. This will yield
bandwidth of approx 2 bit/s with many errors .. it's bad
- Decimal. Ex: 241 212. Bandwidth ~ 4 bit/s
- Hexadecimal. Ex: F1 D4. Bandwidth ~ 8 bit/s
- Binary-to-word encoding. Ex. vehicle. Bandwidth ~ 16
- Binary-to-word encoding is a map of 65535 common
english words to a binary index from 00000000 00000000
to 11111111 11111111
... and no, you don't have to use the full protocol with
overhead. Let's say all you want is to do is send that 128
binary file to your friend with your voice, just use a
tool that encodes it into words, and then speak for about
minute while your friend types it into his computer.
While 16 bit/s is respectable, you could double and triple
it with compression depending on what content you were
[ixnaum, May 11 2016]
Barely vaguely related...
[normzone, May 11 2016]
||So the logical use for this system would be instances where lossy transmissions are okay?
||With well chosen words in the binary-to-word encoding
dictionary, it doesn't have to be lossy.
||Ex: How likely is it that you will mess up if I tell you the
word: "vehicle" ? Even if you don't know how to spell it,
that's probably ok because spell check can correct it as
as the dictionary doesn't contain similar words. (which it
||And if you are really concerned, break up the binary
string into 10 word sentences. Each sentence will have
CRC attached to it. If you get it wrong you just
retransmit the last 10 seconds.
||I should also add that the encoding dictionary is
optimized for statistically more likely binary numbers
being shorter to type. Ex: 00000000 00000000 would be
"a". And 11111111 11111111 would be "in"
||I am slightly disappointed. I was hoping for
precisely-modulated yodelling. Or perhaps whistling.
||Incidentally, if you ever accidentally phone a fax
machine, you can confuse it and keep it talking for
over a minute by whistling at it.
||You could improve a fish in sea even further if you
dont just use words but use commonly known about
phrases to transmit complex lengthy blocks (or any
lengthy blocks) within other binary. For example, if
the encoder had the
opportunity to give you the words time and saves
and nine and stitch and in (to rustle up a
feeble example, theres no doubt better ones that
take longer than a few seconds to recall), you could
wrap it by just referring to the beginning of the
phrase safe in the knowledge that the other end will
expand it all.
||I would dispute that there are 65535 common English words in most
senses of "common". Also, many of the words involved would be quite
long, so I doubt the bandwidth would be as much as that for any set of
65535 words in English.
||Also it not only depends what is meant by common
but also what usage is implied, also. For example, a
people hear words like ethos or systemic on the
news media and they just nod their heads, the words
sound near enough to a familiar word to make it not
worth clarifying with a dictionary at this stage in life.
The word eschew is never ever spoken, it only
exists written down.
||Indeed. I think I did something similar to this and decided
that the best way of doing it would be to have a system for
assigning sequences of bits to specific syllables which
became "nonsense" words.
||You could use NATO alphabet. That would certainly help in