Tengo dos opciones:
1.) PicoTTS de Android supera Festival, FreeTTS y eSpeak por un tiro largo. ¿No tienes un dispositivo Android? Puede escuchar un clip corto in this video para decidir si está de acuerdo.
Si te gusta PicoTTS lo suficiente, Android tiene un método synthesizeToFile() que puede guardar la transmisión de audio en WAV. I'm not aware of any apps that use this feature, pero desea construir un servicio web, por lo que probablemente tenga que hackear el código fuente Java de todos modos.
2.) La siguiente opción es usar Google Translate, p. Ej. http://translate.google.com/translate_tts?tl=en&q=hello+world.
Esto funciona muy bien para cadenas de menos de 100 caracteres. Las cadenas más largas tendrían que enviarse en fragmentos, pero existe an app on The Code Project (con fuente) que ya lo hace bastante bien.
[AWS Polly] (https://aws.amazon.com/polly/) acaba de lanzarse (diciembre de 2016). No es gratuito, pero tampoco requiere inversión de capital inicial. –