Piper TTS Doesn't Work When Not Connected to Internet

Why does Piper TTS not work if the client device does not have access to the internet?

I got my HA Voice PE in the mail, and played around with it. I have an IoT VLAN that has a firewall rule that doesn’t allow anything to the WAN side of my router (to the internet).

With this rule on, the Voice PE will not “reply”/“speak”. With this rule off, everything works fine.

I made a post about this regarding my Fire HD tablet here and got suggestions that I think missed the mark.

However, the common theme here seems like if the media player target does not have access to the internet (the Voice PE or the Tablet), Piper TTS will not work.

I really don’t want the Fire HD tablet to have internet access. And although I obviously love and appreciate everything the Open Home Foundation does, it’s still my choice at the end of the day to put my Voice PE on a firewalled LAN, only opening this rule for updates.

I haven’t seen this issue mentioned anywhere else, but I think the common denominator here is either a core function of the HA media stack, or Piper, or some combination that is the issue; not the tablet or the Voice PE HW.

Just to clear up a potential question/suggestion if it arises:

My HA Yellow has access to both the tablet and the Voice PE whether the IoT firewall rule is on or off. It’s simply a rule to disallow traffic from that VLAN to the internet.

I think the only properly local TTS engine is PicoTTS.

Unfortunately this has a bizarre bug that makes it talk nonsense if messages are a certain length (between 16 and 32 characters).

This was my fault. I misunderstood how I had my pfSense firewall rules setup.

There was one rule that allowed all IoT addresses to communicate to any destination address. When the rule is enabled, TTS didn’t work, with the rule disabled TTS worked.

I wrongly thought that this was because somehow my HW needed access to the internet. However, the rule was preventing IoT devices to talk to my HA box as well.

I feel stupid, but I’m glad everything works, and I can choose to have my devices on a private VLAN, and everything is a-okay.