Introducing StegaPhone
Introducing StegaPhone, a human super language, which enables speakers to encode secret messages in the mispronunciation of words.
- For a quick presentation, see the video (approx. 80 seconds).
- For a brief overview with a worked example, see the introduction.
- For an interactive demonstration, go to the software applications.
- For a technical description of StegaPhone using methods from formal language theory, see the super language paper [1].
Video
Introduction
StegaPhone, short for steganographic phonetics, takes an oral, natural language base and promotes each word in its vocabulary to serve a second purpose.
In addition to its semantic role, each word also carries a binary bit value.
The binary value in {0,1} that a particular word will take on depends on whether it is pronounced correctly (0) or incorrectly (1). Therefore a string of words, like a sentence of speech, will produce a binary data stream. Below is an illustration, and note that a word's mispronunciation is represented by its phonetic respelling:
hello world → 00
hello vorld → 01
ello world → 10
ello vorld → 11
Accordingly, in the two StegaPhone messages that follow, the first encodes binary sequence [00], whereas the second encodes sequence [01].
This transformation can be described using terminology from steganography.
- The base string "hello world" is the cover, the words of the carrier channel (i.e. strings of the base language) in which a payload will be encoded.
- The binary sequence [01] is the payload, the message to be embedded in the containing cover.
- The variant string "hello vorld" is the package, the transformed words of the super language to be decoded.
The choice of binary {0,1} here is designed for generalization, with a focus on more human-operable alphabets.
For instance, the stream of binary values may represent indices of characters in their alphabet (e.g. as is done in the ASCII table). Below is an example with the partial list of the English alphabet (and note the non-encoding underscore_ is a placeholder for the 0th index).
Alphabet: _abcdefghijklmnopqrstuvwxyz
| idx | char | binary |
|-----|-------|--------|
| 0 | _ | 00000 |
| 1 | a | 00001 |
| 2 | b | 00010 |
| 3 | c | 00011 |
| 4 | d | 00100 |
| 5 | e | 00101 |
| 6 | f | 00110 |
| 7 | g | 00111 |
| 8 | h | 01000 |
| 9 | i | 01001 |
| 10 | j | 01010 |
| 11 | k | 01011 |
| ... | ... | ... |
Suppose you have the following choice of cover and payload:
Cover:
The forecast for tomorrow is warm and sunny. If that is right, I will go swimming.
Payload:
hi
One example package in which the payload is encoded within the cover could be:
Package:
The vorecast for tomorrow is warm onde sunny. If zat is right, I will go swimming.
The decoding trace below shows how to recover the payload from the package.
The vorecast for tomorrow is warm onde sunny. If zat is right, I will go swimming.
The vorecast for tomorrow is | warm onde sunny. If zat | is right, I will go | swimming.
The vorecast for tomorrow is | warm onde sunny. If zat | is right, I will go | swimming.
0 1 0 0 0 | 0 1 0. 0 1 | 0 0, 0 0 0 | 0.
01000 | 01001 | 00000 | 0
8 | 9 | ...
h | i | ...
hi
This simple example should hint at the variety of payload alphabets that are possible in StegaPhone sub-variants, and how a human operator may design and use them in coded communication schemes or other applications. More broadly, this toy example is a proof-of-concept for the modular human language augmentation approach in the super language framework.
Software applications
There are a couple of hands-on software demonstrations of StegaPhone made available via the super language paper [1].
StegaPhone Playground
Go to the StegaPhone playground application to try out different covers, payloads and packages in your own alphabets.
Do not input sensitive information in the text fields.
StegaPhonetic News
Go to the StegaPhonetic news application to examine a malicious use case for this phonetic steganography.
This fictitious demo should only be used for educational purposes.
Note the underlying accent transformation implementation is in alpha.
It relies on a catch-all rule when a mispronunciation is necessary (i.e. the word must encode a binary 1 value) but it is not available. It is a paralanguage hack.
To encode a 1 in some word without a mispronunciation:
<word> → <word> uh
For instance, if the word "caviar" did not yet have a mispronunciation, then:
caviar → caviar uh
References
[1] P. Toshev, “Heuristics for New Language,” Sept. 10, 2025, PsyArXiv. doi: 10.31234/osf.io/mcx93_v3.