Synthesized speech was for a long time the Holy Grail of computing, and back in the 1980s when a 4MHz CPU made your computer the fastest machine in the neighborhood it just wasn't practical for software to create intelligible speech. In those days the only sensible way to generate speech was to offload the task to dedicated hardware because the CPU simply couldn't keep up. The most widely used speech chip through the 80s and early 90s was the famous SPO256A-AL2, the allophone speech processor. It was used in toys, in external speech synthesizer peripherals for desktop computers, in industrial control systems, and all sorts of other unexpected places. Then as CPU power continued to increase rapidly speech synthesis was moved to being a software function, and nowadays of course it is almost always done entirely in software by the main CPU using only a tiny fraction of the available processing power. As a result the SPO256 chip dropped out of production and became a footnote in the history of technology.
Which leaves Arduino developers in a quandary, because in terms of processing power the ATmega chips put us back into the 80s again. An ATmega could possibly produce intelligible speech directly but it would use every available CPU cycle to do it, and the Arduino itself would be pretty much useless at doing anything else at the same time. Not much good if you just want to add voice feedback to an existing project. However, the demise of the SPO256 means you can't just link one up to your Arduino and offload speech generation to it.
With old stock of the SPO256 drying up Magnevation decided to do something about it, and designed a new speech chip that works on the same principles as its predecessor but has a much smaller physical package and offers a handy serial interface rather than a clunky parallel interface. The result is the SpeakJet, an 18-pin DIP device that can do everything the old SPO256 did plus more.
In this project we'll assemble a speech-synthesizer shield that combines a SpeakJet chip with a simple audio amplifier to let you add speech output to a new or existing Arduino project.
|1||Arduino Duemilanove, Arduino Pro, Seeeduino, or equivalent|
|1||SpeakJet speech synthesizer chip (www.magnevation.com)|
|1||18-pin DIP IC socket|
|2||10nF monolithic ceramic capacitors (marked "103")|
|1||100nF monolithic ceramic capacitor (marked "104")|
|1||10uF electrolytic capacitor (6.3V or greater)|
|1||3mm green LED|
|1||3mm red LED|
|1||3mm blue LED|
|Line-level output cable|
|1||2-pin, 0.1-inch pitch PCB-mount male header|
|1||2-pin, 0.1-inch pitch line-mount female connector|
|1||3.5mm stereo line socket|
|1m||Shielded single-core audio cable|
|On-board audio amplifier|
|1||LM386 audio amplifier IC, DIP-8 package|
|1||8-pin DIP IC socket|
|2||10uF electrolytic capacitors (6.3V or greater)|
|1||100uF electrolytic capacitor (6.3V or greater)|
|1||220uF electrolytic capacitor (6.3V or greater)|
|1||1nF (1000pF) ceramic capacitor (marked as "102")|
|1||100nF monolithic ceramic capacitor (marked as "104")|
|1||2-pin PCB-mount screw terminal|
|1||Audio speaker (usually 8 Ohms)|
Speech Synthesizer Schematic
Download as JPG: speech-synthesizer-schematic.jpg
Download as PDF: speech-synthesizer-schematic.pdf
Download as SCH: speech-synthesizer-schematic.sch
SpeechSynthesizerSimple sketch to control SpeakJet: github.com/practicalarduino/SpeechSynthesizerSimple
SpeakJet user manual: www.magnevation.com/pdfs/speakjetusermanual.pdf (PDF)
Phrase-A-Later software to translate words to phonemes: www.magnevation.com/software.htm
Toys Down Under: toysdownunder.com/arduino-speach-synthesizer-kit.html
No corrections reported yet for this project. If you find one please let us know.
Have you built this project or something inspired by it? Please let us know and we'll put a picture of it here!