Difference between revisions of "Speakjet Phonetic Guide"

From 8BitDev.org - Atari 7800 Development Wiki
Jump to: navigation, search
(Created page with "= Speakjet Phonetic Guide = The SpeakJet chip produces human speech and sound effects using its built-in **Mathematical Sound Architecture (MSA)**. Instead of playing back re...")
(No difference)

Revision as of 09:44, 3 October 2026

Speakjet Phonetic Guide

The SpeakJet chip produces human speech and sound effects using its built-in **Mathematical Sound Architecture (MSA)**. Instead of playing back recorded audio files (like .WAV files), it uses math models to copy how the human vocal cords, tongue, teeth, and lips move to make sound.

By sending single-byte numbers to the SpeakJet over a serial connection, you can string basic speech sounds together to form any word, sentence, or sound effect in real time.

How Speech Works on the SpeakJet

Human speech is made up of small sound building blocks:

  • Phoneme: The general family of a sound (for example, the letter sound "T").
  • Allophone: The exact version of that sound you actually hear, depending on where it sits in a word and what sounds come right before or after it.
    • The "T" sound at the start of tea has a sharp blast of air.
    • The "T" sound at the end of cat is shorter and softer.
    • The "T" sound in the middle of water sounds almost like a soft "D".

The SpeakJet has **72 built-in speech elements (allophones)**. As you send these sound codes to the chip, it smoothly glides the sound from one mouth shape to the next, just like a person talking.

Five Golden Rules for Clear Speech

Follow these five rules to make words sound clear and natural rather than muddy or robotic:

1. Spell by Sound, Not by Letters

English spelling does not match how words actually sound. For example, the letters "c-a-t" sound like "K-A-T", and "ph" sounds like "F". Always spell words using the sound codes that match what your ears hear, not how the word is written on paper.

2. Match Consonants to the Right Vowel

Consonant sounds (like B, D, G, K, S) change depending on whether the vowel that follows them is made in the **front** or the **back** of the mouth:

  • Use \BE before front vowels (like Bear), but use \BO before back vowels (like Bone).
  • Use \KE before front vowels (like Key), but use \KO before back vowels (like Comb).
  • Use \SE before front vowels (like See), but use \SO before back vowels (like So).

3. Use the Right Start or End Sound

Some sounds need special versions depending on where they sit in a syllable:

  • Starting a word/syllable: Use initial consonants like \BE, \DE, \GE, or \TU.
  • Ending a word/syllable: Use ending consonants like \EB, \ED, \EG, or \TT.

4. Don't Double Up Sounds Between Words

When speaking normally, people do not stop and repeat the same sound twice between words.

  • If you say "Night Time", your mouth drops the "T" at the end of "Night" and blends directly into "Time" (saying "Ni-Time").
  • If you program both "T" sounds back-to-back, the chip will stutter unnaturally.

5. Change the Pitch, Speed, and Bend

A voice that stays at the exact same pitch sounds flat and robotic.

  • Questions: Raise the pitch code on the last word to make it sound like a question.
  • Statements: Drop the pitch slightly at the very end of a sentence.
  • Important Words: Slow down and raise the pitch slightly on the most important word in a sentence to add natural emphasis.

The Vowel Map

Vowels are made by holding your mouth open and changing where your tongue sits (High, Mid, or Low) and whether it is in the Front, Middle, or Back of your mouth. All back vowels are made with rounded lips.

Tongue Height Tongue Position in Mouth
Front (Flat Lips) Middle Back (Round Lips)
High \IY (128)
See, Feed
— \UW (139)
Food, June
High-Mid \IH (129)
Sit, Pin
— \UH (138)
Book, Could
Mid \EY (130)
Gate, Beige
\AX (133)
Cotton
\OW (137)
Comb, Over
Low-Mid \EH (131)
Met, Red
\UX (134)
Luck, Up
\OH (135)
Hot, Fox
Low \AY (132)
Hat, Fast
— \AW (136)
Father, Fall

Long Vowels vs. Sliding Vowels (Diphthongs)

  • Making Pure Vowels Longer: To make a simple vowel sound longer, either send the same code twice in a row (for example: \IY \IY) or place the SLOW code (8) right in front of it.
  • Sliding Vowels (Diphthongs): Sounds like \EYIY (the "A" in gate) or \AYWW (the "ow" in cow) are sliding sounds that move from one vowel to another. **Do not repeat these codes back-to-back**, or the chip will repeat the whole slide and sound like it is hiccuping.

Adding Brief Silences Before Pop Sounds

Sounds like P, B, T, D, K, and G need a tiny moment of silence before their release burst so the mouth can "build up air pressure."

  • The chip adds a tiny gap automatically, but if a word sounds muddy, insert a short silence like Pause 4 (30 ms) or Pause 5 (60 ms) right before the starting pop sound.

Command & Control Codes (0–31, 255)

Send these single byte numbers to control the chip's settings, insert pauses, adjust volume and pitch, or control the digital output pins.

Dec Hex Name Extra Value? What It Does
000 0x00 Pause 0 None 0 ms pause. Immediately ramps oscillator volumes down to silent.
001 0x01 Pause 1 None 100 ms pause. Lowers volume while smoothly moving the sound filters.
002 0x02 Pause 2 None 200 ms pause. Lowers volume while smoothly moving the sound filters.
003 0x03 Pause 3 None 700 ms pause. Lowers volume while smoothly moving the sound filters.
004 0x04 Pause 4 None 30 ms silence. Waits for total quiet before changing filters (good before pop sounds).
005 0x05 Pause 5 None 60 ms silence. Waits for total quiet before changing filters.
006 0x06 Pause 6 None 90 ms silence. Waits for total quiet before changing filters.
007 0x07 Fast None Plays the very next sound at half (0.5×) its normal time.
008 0x08 Slow None Plays the very next sound at one-and-a-half (1.5×) its normal time.
014 0x0E Stress None Tightens the voice slightly for the very next sound (adds emphasis).
015 0x0F Relax None Loosens the voice slightly for the very next sound.
016 0x10 Wait None Stops speaking and waits for a Start command or pin trigger.
020 0x14 Volume 0–127 Sets overall loudness. (Default is 96).
021 0x15 Speed 0–127 Sets speaking speed. (Default is 114).
022 0x16 Pitch 0–255 Sets voice pitch in Hertz (32 Hz to 240 Hz). Below 30 sounds like clicks. 0 turns voice off. (Default is 88).
023 0x17 Bend 0–15 Changes voice style from deep/hollow (low) to metallic/tinny (high). (Default is 5).
024 0x18 PortCtr 0–7 Sets output pin modes for D0–D2. 1 = chip status, 0 = user control. (Default is 7).
025 0x19 Port 0–7 Sets HIGH/LOW logic output states for pins D0–D2 when user-controlled. (Default is 0).
026 0x1A Repeat 0–255 Repeats the very next command or sound code X times.
028 0x1C Call Phrase 0–15 Plays an EEPROM phrase and comes back when done (can nest up to 3 deep).
029 0x1D Goto Phrase 0–15 Jumps directly to an EEPROM phrase without coming back.
030 0x1E Delay 0–255 Waits in steps of 10 milliseconds (from 0 up to 2550 ms).
031 0x1F Reset Defaults None Resets Volume (96), Speed (114), Pitch (88), and Bend (5) back to standard.
032–127 0x20–0x7F Reserved — System reserved memory.
255 0xFF End of Phrase None Marks the end of an EEPROM phrase.

Note: The modifier codes (Fast, Slow, Stress, Relax) only affect the **single sound** that comes immediately after them.

Allophone Speech Sound List (Codes 128–199)

This table lists all 72 basic speech building blocks built into the SpeakJet.

Dec Hex Name Sound Type Length (ms) Helpful Usage Tips Example Words
128 0x80 \IY Long Vowel 70 High front vowel. See, Even, Feed
129 0x81 \IH Short Vowel 70 Short front vowel. Sit, Fix, Pin
130 0x82 \EY Long Vowel 70 Mid front vowel. Stressed. Hair, Gate, Beige
131 0x83 \EH Short Vowel 70 Standard "e" sound. Met, Check, Red
132 0x84 \AY Short Vowel 70 Flat "a" sound. Hat, Fast, Fan
133 0x85 \AX Short Vowel 70 Relaxed "uh" sound for unstressed parts. Cotton, Dust
134 0x86 \UX Short Vowel 70 Short "u" sound. Luck, Up, Uncle
135 0x87 \OH Short Vowel 70 Short "o" sound. Hot, Clock, Fox
136 0x88 \AW Short Vowel 70 Deep "ah" sound. Father, Fall
137 0x89 \OW Long Vowel 70 Long "o" sound. Comb, Over, Hold
138 0x8A \UH Short Vowel 70 Short "oo" sound. Book, Could, Should
139 0x8B \UW Long Vowel 70 Long "oo" sound. Food, June
140 0x8C \MM Nasal (Nose) 70 Lips together humming sound. Milk, Famous
141 0x8D \NE Nasal (Nose) 70 Use before front vowels. Nip, Danger, Thin
142 0x8E \NO Nasal (Nose) 70 Use before back vowels. No, Snow, On
143 0x8F \NGE Nasal (Nose) 70 "Ng" sound before front vowels. Think, Ping
144 0x90 \NGO Nasal (Nose) 70 "Ng" sound before back vowels. Hung, Song
145 0x91 \LE Resonant 70 "L" sound before front vowels. Lake, Alarm, Lapel
146 0x92 \LO Resonant 70 "L" sound before back vowels. Clock, Plus, Hello
147 0x93 \WW Resonant 70 Smooth "W" sound. Wool, Sweat
148 0x94 \RR Resonant 70 Standard "R" sound. Ray, Brain, Over
149 0x95 \IYRR R-Vowel 200 Combined vowel + R sound. Clear, Hear, Year
150 0x96 \EYRR R-Vowel 200 Combined vowel + R sound. Hair, Stair, Repair
151 0x97 \AXRR R-Vowel 190 Soft "er" at end of words. Fir, Bird, Burn, Letter
152 0x98 \AWRR R-Vowel 200 Combined vowel + R sound. Part, Farm, Yarn
153 0x99 \OWRR R-Vowel 185 Combined vowel + R sound. Corn, Four, Your
154 0x9A \EYIY Sliding Vowel 165 Long "A" sound sliding to "E". Gate, Ate, Ray
155 0x9B \OHIY Sliding Vowel 200 Long "I" sound sliding to "E". Mice, Fight, White
156 0x9C \OWIY Sliding Vowel 225 "Oy" sound. Boy, Toy, Voice
157 0x9D \OHIH Sliding Vowel 185 Open "I" sound. Sky, Five, I
158 0x9E \IYEH Sliding Vowel 170 Starting "Y" sound. Yes, Yarn, Million
159 0x9F \EHLL Sliding Vowel 140 Blended "el" at end of words. Saddle, Angle, Little
160 0xA0 \IYUW Sliding Vowel 180 "You" sound glide. Cute, Few, Computer
161 0xA1 \AXUW Sliding Vowel 170 "Ow" sound. Brown, Clown, Thousand
162 0xA2 \IHWW Sliding Vowel 170 Short "oo" glide. Two, New, Zoo
163 0xA3 \AYWW Sliding Vowel 200 "Ow" sound. Our, Ouch, Owl
164 0xA4 \OWWW Sliding Vowel 131 Long gliding "O" sound. Go, Hello, Snow
165 0xA5 \JH Blend 70 Voiced "J" sound. Dodge, Jet, Savage
166 0xA6 \VV Buzzing Sound 70 Voiced "V" buzzing sound. Vest, Even
167 0xA7 \ZZ Buzzing Sound 70 Voiced "Z" buzzing sound. Zoo, Zap
168 0xA8 \ZH Buzzing Sound 70 Soft buzzing "sh" sound. Azure, Treasure
169 0xA9 \DH Buzzing Sound 70 Voiced "th" sound. There, That, This
170 0xAA \BE Pop Sound 45 Start of word; before front vowels. Bear, Bird, Beed
171 0xAB \BO Pop Sound 45 Start of word; before back vowels. Bone, Book, Brown
172 0xAC \EB Pop Sound 10 End of word; after front vowels. Cab, Crib, Web
173 0xAD \OB Pop Sound 10 End of word; after back vowels. Bob, Sub, Tub
174 0xAE \DE Pop Sound 45 Start of word; before front vowels. Deep, Date, Divide
175 0xAF \DO Pop Sound 45 Start of word; before back vowels. Do, Dust, Dog
176 0xB0 \ED Pop Sound 10 End of word; after front vowels. Could, Bird
177 0xB1 \OD Pop Sound 10 End of word; after back vowels. Bud, Food
178 0xB2 \GE Pop Sound 55 Start of word; before front vowels. Get, Gate, Guest
179 0xB3 \GO Pop Sound 55 Start of word; before back vowels. Got, Glue, Goo
180 0xB4 \EG Pop Sound 55 End of word; after front vowels. Peg, Wig
181 0xB5 \OG Pop Sound 55 End of word; after back vowels. Dog, Pug
182 0xB6 \CH Blend 70 Sharp "ch" sound. Church, Feature, March
183 0xB7 \HE Hissing Sound 70 "H" sound before front vowels. Help, Hand, Hair
184 0xB8 \HO Hissing Sound 70 "H" sound before back vowels. Hoe, Hot, Hug
185 0xB9 \WH Hissing Sound 70 "Wh" blowing sound. Who, Whale, White
186 0xBA \FF Hissing Sound 70 "F" air hissing sound. Food, Effort, Off
187 0xBB \SE Hissing Sound 40 "S" sound before front vowels. See, Vest, Plus
188 0xBC \SO Hissing Sound 40 "S" sound before back vowels. So, Sweat
189 0xBD \SH Hissing Sound 50 "Sh" air sound. Ship, Fiction, Leash
190 0xBE \TH Hissing Sound 40 Quiet unvoiced "th" sound. Thin, Month
191 0xBF \TT Pop Sound 50 Middle or end of words. Part, Little, Sit
192 0xC0 \TU Pop Sound 70 Sharp start of words. To, Talk, Ten
193 0xC1 \TS Blend 170 "Ts" ending sound. Parts, Costs, Robots
194 0xC2 \KE Pop Sound 55 Start of word; before front vowels. Can't, Clown, Key
195 0xC3 \KO Pop Sound 55 Start of word; before back vowels. Comb, Quick, Fox
196 0xC4 \EK Pop Sound 55 End of word; after front vowels. Speak, Task
197 0xC5 \OK Pop Sound 45 End of word; after back vowels. Book, Took, October
198 0xC6 \PE Pop Sound 99 Start of word; before front vowels. People, Computer
199 0xC7 \PO Pop Sound 99 Start of word; before back vowels. Pod, Paw, Copy

Sound Effects & Tone List (Codes 200–254)

The SpeakJet also has 55 built-in sound effects, sirens, creature sounds, and telephone touch-tones.

Robot Chatter Sounds

Short, 80 ms electronic sounds useful for robotic chatter, button clicks, and sci-fi effects.

Dec Hex Name Time Sound Type Best Used For
200–209 0xC8–0xD1 \R0 to \R9 80 ms each Robot Quick electronic clicks, sci-fi computer sounds, and robotic chatter.

Sirens & Warning Alarms

Sustained pitch sweeps for alarms and alerts.

Dec Hex Name Time Description
210 0xD2 \A0 300 ms Fast mid-pitch chirp siren.
211 0xD3 \A1 101 ms High electronic blip.
212 0xD4 \A2 102 ms Low alert tone.
213 0xD5 \A3 540 ms Rising multi-tone siren sweep.
214 0xD6 \A4 530 ms High warbling siren.
215 0xD7 \A5 500 ms Loud industrial warning horn.
216 0xD8 \A6 135 ms Fast intrusion alarm beep.
217 0xD9 \A7 600 ms Rising two-tone siren sweep.
218 0xDA \A8 300 ms Continuous ringing bell sound.
219 0xDB \A9 250 ms Repeating alert beep.

Beeps & Button Feedback

Dec Hex Name Time Description
220 0xDC \B0 200 ms Clean confirmation beep.
221 0xDD \B1 270 ms Mid-pitch chime.
222 0xDE \B2 280 ms Low error / rejection buzz.
223 0xDF \B3 260 ms High-pitch success beep.
224 0xE0 \B4 300 ms Resonant dual-tone blip.
225 0xE1 \B5 100 ms Very short click.
226 0xE2 \B6 104 ms High button tap sound.
227 0xE3 \B7 100 ms Low thud tap sound.
228 0xE4 \B8 270 ms Rising two-note chime.
229 0xE5 \B9 262 ms Falling two-note cancel sound.

Biological & Animal Sounds

Dec Hex Name Time Description
230 0xE6 \C0 160 ms Short bird chirp / click.
231 0xE7 \C1 300 ms Low frog croak / throat growl.
232 0xE8 \C2 182 ms High bird trill.
233 0xE9 \C3 120 ms Quick animal squeak.
234 0xEA \C4 175 ms Cricket chirp sound.
235 0xEB \C5 350 ms Deep creature groan.
236 0xEC \C6 160 ms Short throat grunt.
237 0xED \C7 260 ms Rising creature screech.
238 0xEE \C8 95 ms Wet throat pop.
239 0xEF \C9 75 ms High bug chitter / click.

Telephone Keypad (DTMF) Tones

Standard dual-tone telephone keypad numbers. Each tone plays for 95 milliseconds.

Dec Hex Name Phone Key Low Tone High Tone Time
240 0xF0 \D0 Key 0 941 Hz 1336 Hz 95 ms
241 0xF1 \D1 Key 1 697 Hz 1209 Hz 95 ms
242 0xF2 \D2 Key 2 697 Hz 1336 Hz 95 ms
243 0xF3 \D3 Key 3 697 Hz 1477 Hz 95 ms
244 0xF4 \D4 Key 4 770 Hz 1209 Hz 95 ms
245 0xF5 \D5 Key 5 770 Hz 1336 Hz 95 ms
246 0xF6 \D6 Key 6 770 Hz 1477 Hz 95 ms
247 0xF7 \D7 Key 7 852 Hz 1209 Hz 95 ms
248 0xF8 \D8 Key 8 852 Hz 1336 Hz 95 ms
249 0xF9 \D9 Key 9 852 Hz 1477 Hz 95 ms
250 0xFA \D10 Key * 941 Hz 1209 Hz 95 ms
251 0xFB \D11 Key # 941 Hz 1477 Hz 95 ms

Miscellaneous Sounds

Dec Hex Name Time Sound Type Description
252 0xFC \M0 125 ms Sonar Ping Deep-water submarine ping. (The chip plays this during Baud Rate setup).
253 0xFD \M1 250 ms Gunshot Sharp pistol blast.
254 0xFE \M2 530 ms "WOW" Sound Vocal sweep moving up and down.

Practical Code Examples

Always End with Pause 0

When you finish sending a phrase, always send a Pause 0 (code 0). This tells the chip to turn the volume gracefully down to zero. If you don't, the speaker may pop or buzz when playback stops.

Example 1: Saying "Ready"

Break the word into four basic sounds:

  1. Starting "R": \RR (148)
  2. Short "e": \EH (131)
  3. Front "D": \DE (174)
  4. Ending "ee": \IY (128)
  5. Finish with silence: Pause 0 (0)
// C code array to say "Ready"
const uint8_t SPK_READY[] = { 148, 131, 174, 128, 0 };

Example 2: "System Alert" with Siren and Pitch Change

This example plays an alarm horn, speaks in a firm, lower pitch, pauses between words, and raises the pitch on the word "Alert":

const uint8_t SPK_SYSTEM_ALERT[] = {
    // 1. Reset standard sound settings
    31,                  // Reset defaults (Volume: 96, Speed: 114, Pitch: 88, Bend: 5)
    20, 110,             // Volume up to 110
    22, 70,              // Pitch down to 70 Hz (Lower, serious tone)

    // 2. Play Warning Horn
    215,                 // Alarm A5 (500 ms)
    5,                   // Pause 5 (60 ms silent gap)

    // 3. Speak "SYS-" (\SE, \IH, \SE)
    187, 129, 187,
    // "-TEM" (\TU, \EH, \MM)
    192, 131, 140,
    
    2,                   // Pause 2 (200 ms break between words)

    // 4. Raise pitch for "ALERT"
    22, 85,              // Pitch raised to 85 Hz for emphasis
    130,                 // "A-" (\EY)
    145, 14, 151, 191,   // "-LERT" (\LE, \Stress, \AXRR, \TT)

    // 5. Clean finish
    0                    // Pause 0 (Fade to silence)
};

Example 3: Dialing a Phone Number

Transmits the touch-tones for "555-1212" with brief pauses:

const uint8_t SPK_DIAL_SEQUENCE[] = {
    245, 6, 245, 6, 245, 2,      // 5, 5, 5 with small gaps and a 200 ms break
    241, 6, 242, 6, 241, 6, 242, // 1, 2, 1, 2
    0                            // Mute when done
};

Glossary of Terms

Allophone
A specific version of a basic speech sound. For example, the "T" sound in top has a strong burst of air, while the "T" sound in stop is softer. Both are allophones of the letter "T".
Bend
A setting (0–15) on the SpeakJet that changes the sound filters. Lower values make the voice sound deeper and hollow; higher values make it sound sharp and metallic.
Diphthong (Sliding Vowel)
A vowel sound that glides smoothly from one mouth shape to another within a single syllable, such as the "oy" in boy or the "ow" in cow.
Fricative (Hissing / Buzzing Sound)
A sound made by squeezing breath through a narrow opening in the teeth, lips, or tongue. Examples include "S", "Z", "F", "V", and "TH".
Nasal (Nose Sound)
A sound produced by letting air pass through the nose rather than the mouth, such as "M" and "N".
Phoneme
The basic building-block sound family in a language. Changing a phoneme changes the meaning of a word (like changing the "B" in bat to a "C" to make cat).
Pitch
How high or low a voice sounds, like musical notes on a keyboard. Pitch is measured in cycles per second (Hertz).
Pop Sound (Stop Consonant)
A sound made by completely blocking the airflow in your mouth for a split second and then releasing it with a burst, such as P, B, T, D, K, and G.
Resonant
A smooth, singing consonant sound that lets air flow freely through the mouth without hissing or buzzing, such as "L", "R", and "W".
Voiced Sound
A speech sound made while your vocal cords are vibrating. If you gently touch your throat while humming an "M", buzzing a "Z", or saying "AH", you can feel the vibration.
Voiceless (Unvoiced) Sound
A speech sound made purely with rushing air, without using your vocal cords. Examples include whispering, "S", "F", and "T".