This are is not my forte, but I’m curious… will the speech be based on user voice commands or is the robot supposed to just return basic words or sentences stored in memory and converted to speech?
I suggest you check out the How to Make a Robot tutorial series. You could also take a look at the Robots section where you can find some simple but cool projects like this one some cute ones like this one and even kind of creepy ones haha like this one.
If you want to give your robot voice commands the speech recognition section suggested by @bmoscato is a great place to start but if you are looking for a simple talking robot that plays recorded audio files you could find what you need in the Audio Synthesis section.
Robot speech is complicated. Organic neural networking gives people an advantage. Software is complex. No amount of software will ever compare against human speech.
However, I have noticed that robots beeping and listening it not complicated.
There are two Makeblock functions you can use to help you get started if you like. .strength() of the SoundSensor class
and .tone() for Arduino-like buzzers.
Most robots are complicated. If you cannot find a kit you like, I recommend reading a little bit.
If you have a budget, I can recommend hardware.