You could use amplitude or frequency modulation of the voice to transfer data between 5 WPM (realistic maximum) and 20 WPM (probably superhuman). You could go arbitrarily high with synthetics or cybernetic implants (up to around 5 billion WPM).
Essentially, it involves slightly (or greatly, if stealth isn't an issue) raising and lowering your volume or pitch with reasonably accurate timing. These changes are interpreted by your partner as binary data, which can encode text or other information using a variety of formats.
A 5-bit, 32-character ASCII-like code is probably the fastest option, with Morse code being a little slower, but less prone to errors.
You could also use AM and FM at the same time (this is called quadrature amplitude modulation, or QAM0), but that would be extremely difficult for normal people to pull off, and I haven't discussed it here.
Amplitude and Frequency Modulation (AM and FM)
The obvious aspects of the human voice that translate into basic radio transmission schemes are amplitude and frequency. By rapidly changing either property you can encode lower-frequency sound waves in the higher-frequency carrier wave.
AM / FM Examples.1
AM / FM Sound Waves
Instead of translating to radio waves and back, you can simply alter the amplitude or frequency of sound at very high speeds (about twice the speed of the maximum frequency you're representing). This might be possible for a synthetic, but would likely be impossible for a normal human in real time.
However, you can always encode the signal in non-real time. I'm not finding any data on the fastest larynx variations humans are capable of, but I'd guess it's no greater than 10 Hz, and probably less than that. Various studies have shown large muscles can twitch in 100 to 300 ms2, which roughly translates to 3 to 10 Hz, anti-respectively.
One second of a 200 Hz signal would then take 40 or more seconds to encode. It would also likely be quite difficult to encode and decode.
On-Off and Frequency-Shift Keying
On-off keying3 is a simple way to modulate binary data using extreme amplitude shifts. The presence of noise represents logic high, while the absence of noise represents logic low. We can extend this by using two different, but present, amplitudes. Or using two different frequencies, known as frequency-shift keying4.
Binary Frequency-Shift Keying.5
Binary Amplitude-Shift Keying.6
Encoding a Message in Binary
At this point, you have a simple, binary alphabet. You can use this alphabet to encode any kind of data you want. You can have fixed-length words that represent specific letters in a traditional alphabet (ASCII7 or Unicode8), variable-length words representing an intermediate set of symbols(Morse code9), binary data representing sound levels or image information, etc.
The biggest problem here is just the human factor. The more complex your information, the harder it is to feasibly encode and decode it. At some point, there's a physical limit. Your best case is likely to be something like ASCII, reduced to 5 bits, or 32 characters. At 2.5 Hz, each character takes two seconds.
Binary-encoded Morse code (BEMC) could also be used, but it takes about 6.2 bits per character (25% more).
(I wrote a simple C program10 to convert an input string to BEMC. To test normal-ish English, I picked a random Wikipedia article, got the article for "Lake Chub"11, stripped newlines from the text, and used the contents as input for the program. The program processes alpha and numeric characters, along with spaces. Input consisted of 4972 characters, of which 4739 were processed and converted to 29690 bits. On average, this encoding used 6.27 bits per character. Processing only alpha characters (to compare to 5-bit alpha-only encoding), 4696 were processed and converted to 29024 bits, which used 6.18 bits per character.)
The advantage of BEMC is that every dash and dot has both a high-to-low and a low-to-high transition for every character, so it's relatively easy to keep track of timing.
Technically, you have to mentally encode twice (once from alphabet to Morse, then again from Morse to binary), but in practice there's little distinction between BEMC and just using ternary (dash, dot, space) Morse code directly -- dashes are long periods of logic high with a short period of logic low, dots are short periods of logic high with a short period of logic low, and spaces are medium periods of logic low.
The average word length of typical writing is 4.8 characters12. Add 1 character for spaces between words for 5.8 characters per word. An average text message is 7 words long13, or about 40 characters. At 5 bits per character, a text message takes 200 bits, or 80 seconds at 2.5 Hz. 20 seconds at 10 Hz.
Alternately, this equates to 29 bits per word, 5.2 WPM at 2.5 Hz, or 21 WPM at 10 Hz.
Using this in Practice
Obviously, all of this is impractical for normal purposes. There's a perfectly good way to communicate with the human vocal apparatus: speech.
But if you want to get short messages across, you could do so. The trick is shifting frequencies or amplitudes enough for the other person to consistently decode the data without errors, but not so much other people hear the difference.
I doubt there's any way to prevent others from realizing your speech or singing is weird, but they wouldn't immediately know what you were doing. Further, they wouldn't necessarily know your exact encoding, though they could easily figure it out from a recording.
The biggest problem here is likely to be keeping reasonably consistent timing over minute-long durations, but I'd guess it's doable.
Synthetics or Cybernetic Implants
A synthetic person, or a person with cybernetic implants, could plausibly use these techniques to reach much higher data transfer rates. The maximum frequency achievable in air is about 5 GHz14, limiting us to about 2.5 Gb/s, which is 86 million words per second, 5 billion WPM, 12 million texts per second, or 81 nanoseconds per text.
But in all likelihood, you could do much better with non-acoustic data transfer methods if you had access to these levels of electronics.
0 An Electronic Notes article, What is QAM: quadrature amplitude modulation. https://www.electronics-notes.com/articles/radio/modulation/quadrature-amplitude-modulation-what-is-qam-basics.php
1 Taken from Wikipedia under the Creative Commons license. https://en.wikipedia.org/wiki/File:Amfm3-en-de.gif
2 Research study, Fast and slow twitch units in a human muscle from 1971. Found at the Journal of Neurology, Neurosurgery, and Psychiatry website. https://jnnp.bmj.com/content/jnnp/34/2/113.full.pdf
3 A Wikipedia article, On-Off keying. https://en.wikipedia.org/wiki/On%E2%80%93off_keying
4 A Wikipedia article, Frequency-shift keying. https://en.wikipedia.org/wiki/Frequency-shift_keying
5 Taken from Wikipedia under the Creative Commons license. https://commons.wikimedia.org/w/index.php?curid=635074
6 A modified version of (5), submitted under the original license.
7 Table of ASCII codes. http://www.asciitable.com/
8 Unicode Consortium's overview of Unicode. https://home.unicode.org/basic-info/overview/
9 babou's very awesome cs.stackexchange answer to Is Morse Code binary, ternary or quinary?. https://cs.stackexchange.com/a/39922
10 My C program hosted at the OnlineGDB C compiler. https://onlinegdb.com/BkMqmOvUS
11 A Wikipedia article, Lake chub. https://en.wikipedia.org/wiki/Lake_chub
12 A Peter@Norvig.com article, English Letter Frequency Counts: Mayzner Revisited or ETAOIN SRHLDCU. http://norvig.com/mayzner.html
13 A Crushh article, K, Wrap It Up Mom. https://crushhapp.com/blog/k-wrap-it-up-mom
14 Ron Maimon's physics.stackexchange answer to Is there an upper frequency limit to ultrasound?. https://physics.stackexchange.com/a/23427/90152