I've also done a few of these projects and one is still in use. These are Arduino based (ESP8266 and ATmega328P) including the demodulator, however, I did not add voice announcement.
- Esp8266 Arduino Telephone Caller ID system with anti-spam feature
- Arduino telephone caller ID system
I also produced a java script tool for generating the caller ID signalling (Bell Modem) for testing the modem.