A free program for Android, by Hear2Read.
Hear2Read is a free Text-To-Speech (TTS) service engine. You can add one or more voices to your device and use them for speech synthesis. The engine will convert text to speech for you. It supports the Android TTS API and is thus compatible with all TTS-enabled apps.
You can also use the service for speech recognition. It can be used with any TTS-enabled app. The service runs in the background and can thus be used with any app that allows the service to run in the background. It does not save the text sent to it or the audio output. It only saves the text if you choose to do so.
It is also compatible with screen reading and audio playback.