Render TTS on remote device?

I have a Pi 3 that I’m using as a doorbell, hooked to external and internal speakers. Currently, I run HA on it and play TTS on those same speakers. I want to port HA over to a NUC, but I can’t port the doorbell code to the NUC because it uses GPIO to detect doorbell presses, and it needs to react in realtime.

What would be the best way to get TTS to play on a device other than the device where HA is running? So far, I have investigated using an analog audio mixer to blend audio from the two devices into the same speakers, as well as constantly playing a VLC stream on the Pi 3, then sending audio to it via VLC parameters on the NUC’s HA instance. Neither is ideal, and each has issues.

I use a python script to play text received over mqtt on my desktop. It will probably work fine on a Pi.

1 Like

That opens up a whole new category of solutions, thanks! I could even make a script that receives the text to be generated, then generates the speech audio and SSHes to the Pi 3 to play it.

Here’s another example that uses so that you can easily switch out speech engines. I’m using Pico TTS.