Wouldn't it be cool to know exactly who is calling or messaging you without ever looking at your phone? It'd be a great way to keep you from reaching into your pocket or purse every time you get a message, and an efficient method to ignore people you'd rather not deal with.
Caller Name Talker is a free Android app that speaks the name of your incoming calls and messages using the built-in text-to-speech feature (if you don't have a default text-to-speech tool, the app will link you to one).
Be aware: there are numerous apps called "Caller Name Talker", but the one I am reviewing is by Passionate Androiden, which is also the highest rated out of the lot. The app is free, but is ad-supported.
Using the app is dead simple. After downloading and installing, open the app and turn Caller Talker Status on. In General Settings, you can allow Caller Talker to work on silent, alert with number if no contact information is available, and adjust volume controls.
You can also adjust the Call and SMS alert settings by adding a delay time before the name is announced, reading the content of a text message, and flipping the phone to stop the alert.
Lastly, you can change the voice settings (speed, pitch, and language). I always wanted a British girlfriend so I chose English (UK) as my default. You can choose between a bunch of supported languages as well.
And now that your phone will be announcing the name of your incoming calls, it may be a good idea to change your girlfriend's contact name to something other than Snuggy Poo.