Back in the days of 1 MHz 8-bit CPU personal computers (Apple II, Atari 800, et.al.), there were software programs that could do comprehendible arbitrary text-to-speech synthesis on those PCs. What published speech synthesis algorithms might be suitable for implementation on micro-controllers with similarly limited performance and memory? (If any...)
-
1Don't know how they did it, but [here's](http://www.sparkfun.com/products/9578) an allophone-to-audio IC called the SpeakerJet and [here's](http://www.sparkfun.com/products/9811) the associated text-to-allophone generator. You might ask the folks at http://www.speakjet.com/ how they did it... – Kevin Vermeer Sep 22 '11 at 13:03
-
@KevinVermeer - Why didn't you post this as an answer? You would have got an upvote from me at least as it would make an excellent complement to my own answer. – Mark Booth Jul 04 '13 at 16:49
1 Answers
The methods I played with on 8-bit home computers back in the 80's involved having a small set of phonetic samples and then having the text you want to speak defined in terms of those samples.
Since I didn't know about IPA at the time, I just used two sounds per letter and allocated the short sound to lower case letters and long sounds to the uppercase. This did leave quite a few gaps though, o for /ɒ/ (hot) and O for /oʊ/ (open) were easy, but /uː/ (the oo sound in moon) couldn't be represented in my system, which was a problem for me, given my name (/buːð/ rhymes with /smuːð/, try them in itinerariums phoneme synthesis web page).
These days, you could do much more clever stuff. For a start you could use lookup techniques to translate known words in orthographic text into your known phonetic symbols, and for unknown words, implementing Phonics as an algorithm should do a reasonable job.
After getting your phonetic stream, you could then probably use DMA techniques to stream individual phoneme samples from memory to your DAC, with less overhead to your CPU.
- 260
- 2
- 10