Don’t be fooled by the above picture, you will not be making that one! 😊
The concept is simple. There is a server (Runs on a Raspberry Pi) that runs a software called snapcast server that streams audio content, and then the clients (Raspberry Pis) connect to that server, and receive audio at real-time using a software called snapcast client.
When the server streams the content, it encodes each packet with it's local time. When the client receives the packet, it checks the server's local time with client's local time, and client decides if it should skip, fast forward or delay playing the track/stream. By doing so, all the clients start to play the content exactly at the same, thus you get the synchronized effect. When you walk from room to room, the music goes with you!
Best part of this setup is, EVERYTHING runs off of WiFi, and absolutely NO wiring required. The setup is capable to play Text To Speech (TTS) messages, or even music (local mp3 files or spotify...etc).
The details are maintained on my github repository, and kept up-to-date. Please follow this link for details