Speech Synthesizer using Arduino
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.
For more detail: Speech Synthesizer using Arduino
This Post / Project can also be found using search terms:
- arduino speech synthesizer
- arduino speech synthesis