NSSpeechSynthesizer is an abstract base class. The speech synthesizer is working if you have flite installed. You can test it with the "say" command.
If you look at allocWithZone: in the NSSpeechSynthesizer class you'll see that it tries to contact the speech synthesis server and get a new synthesizer and return that.
GSSpeechSynthesizer (in the speech server under Tools) dispatches a request to speak to the server and returns YES or NO depending on whether it was successfully processed.
None of this will happen unless you have flite installed.