Okay this is another victim of the 4608 byte requirement on /dev/audio. Running Flite gives me this:
empeg:/usr/local/flite# ./flite "hello, world"
on-4608 byte write (256)
failed to write 128 samples
So I'm not great at all this low level IO stuff, but I found the #define for the audio buffer size was set to 128. So if 128 samples = 256 bytes (16-bit sound) I figured increasing the #define to 2304 (4608 / 2) would do the trick. Naaah. For some reason it only writes 1584 samples at a time, and I get this:
non-4608 byte write (3168)
I'm not smart enough to figure out the rest. So flite has the ability to output to a WAV file. I did that and copied the WAV file over to my PC and the quality of the voice synthesis definitely leaves little to be desired compared to the full version of Festival. I guess that's what makes it "Festival Lite." For instance in the example I posted, it says the verb form of "contest" instead of the noun form (accent is on the second syllable when it should be on the first.) The real Festival handles it without problems.
So if we want anything good sounding, we need to use sound files rather than realtime synthesis. At least for now...