The other day, Disasterpeace mentioned an idea about speech synthesis based on pulse waves, and I remembered playing around with something like that back in 1995, while doing sound effects for a little university project game.
I actually found the original code, and ported it to ChipSound! The original was done in Borland Pascal on DOS, using the sound, nosound and delay calls. It’s basically PWM/hardsync with occasional noise generated by randomly modulating the frequency; all “commands” issued with 1 ms granularity. (Except for the “m”, where I was apparently creating a half-amplitude pulse by setting the frequency to 40kHz, whereas the ChipSound version is just creating a very short pulse.)
It’s all very primitive, and there’s a lot more tweaking that could be done – like adding multiple formants to improve the vowels – but the point is, it seems like one might actually get away with synthesizing speech using only fixed amplitude pulse waves.
A recording of the ChipSound version, first with some flanger and delay effects, and then mostly dry:
Original Borland Pascal source code: TALK.PAS
ChipSound source code: talk.csl
The thing is trying to say some random nonsense;
Emergency! Emergency! Emergency!
I am PC! I seek revenge!
This is a real emergency!