Spkr announces caller id or contact name (if caller is in your contact list) for all calls and SMS messages.

Announcements scripts are customizable.

You can select to announce calls & SMS messages when only headphones plugged in.

You can also individually enable SMS and/or call announcements.

I am hoping to add individual contact based notifications in up-coming releases.

Spkr's is based on github.com/kennydude/Speaker
From version Spkr 3.2:
Spkr is now advertising free and offline
All versions
January 8, 2019