Getting the robot to talk is going to require a lot of bandwidth if we have send audio files over the serial radio link. To improve efficiency, we have included a 'SPEAK' command in the control protocol, which simply sends the text to be spoken out by the robot using Text-To-Speech (TTS) synthesis. It seemed such a simple thing to do, so I had to add the functionality. The children also thought a speaking robot would be rather cool too.

Java has a speech API  and there are plenty of implementations. We went for a FreeTTS V1.2 .

Voices

http://festvox.org/ allows you to create your own voices but I can worry about this later. There are also other free voices available for free use.