Google Home TTS has stopped working

I’ve just noticed TTS using tts.google_say has stopped working on my Google Home speakers (I’ve tried 2 different speakers).
The automation below used to announce “Home Assistant has restarted” every time I restarted HA. I now hear the tone from the Google Home speaker that usually precedes the announcement, but no announcement.
If I try manual TTS from the Developer console (i.e. typing something in the text field) I also get no speech output and no error.

I haven’t modified my GA settings in HA, but I have noticed the following in my log:

* Request for https://homegraph.googleapis.com/v1/devices:requestSync failed: 403
* Request for https://homegraph.googleapis.com/v1/devices:reportStateAndNotification failed: 404

Here is the automation definition:

alias: Home Assistant Startup
trigger:
  - platform: homeassistant
    event: start
action:
  - service: tts.google_say
    data:
      entity_id: media_player.study_speaker_3
      message: Home Assistant has restarted
mode: single

Has anyone else had problems with Google Assistant TTS recently? I’m running HA Core 2021.7.4

I’ve just noticed that the media_player.play_media service is not working on my Google Home speakers either (it was before)
???

Mine stopped a few days ago, no solution yet.

Current error:

I got basically the same error with IP address specified and even with nabu case address.

HA 2021.8.6

Same issue here:

Logger: homeassistant.components.cast.media_player
Source: components/cast/media_player.py:332
Integration: Google Cast (documentation, issues)
First occurred: 13:10:05 (7 occurrences)
Last logged: 14:32:07

Failed to cast media https://xxxxxxx.duckdns.org/api/tts_proxy/f1f11c062b66b160e53f80d22cf3388f7a1e7fc9_it_-_google_translate.mp3 from external_url (https://xxxxxx.duckdns.org). Please make sure the URL is: Reachable from the cast device and either a publicly resolvable hostname or an IP address
Failed to cast media https://xxxxxxx.duckdns.org/api/tts_proxy/bb429a9945cbfcce1f257dd01af181f3bdfe73a0_it_-_google_translate.mp3 from external_url (https://xxxxxxx.duckdns.org). Please make sure the URL is: Reachable from the cast device and either a publicly resolvable hostname or an IP address
Failed to cast media https://xxxxxxx.duckdns.org/api/tts_proxy/64ccbccb39459f9d9b31eda4a1239793a1b6450d_it_-_google_translate.mp3 from external_url (https://xxxxxxx.duckdns.org). Please make sure the URL is: Reachable from the cast device and either a publicly resolvable hostname or an IP address
Failed to cast media https://xxxxxxxx.duckdns.org/api/tts_proxy/82a2a4dbf8477e61f1560a470472b312a0bc77e3_it_-_google_translate.mp3 from external_url (https://xxxxxxxx.duckdns.org). Please make sure the URL is: Reachable from the cast device and either a publicly resolvable hostname or an IP address
Failed to cast media https://xxxxxxx.duckdns.org/api/tts_proxy/d5bd2838b97aa513deaae0c0c4370cc82eebe915_it_-_google_translate.mp3 from external_url (https://xxxxxx.duckdns.org). Please make sure the URL is: Reachable from the cast device and either a publicly resolvable hostname or an IP address

HA Ver. 2021.9.4

Cattura

Same issue here, can not manually send tts messages or any local audio speakers beep but not talk or play.
Otherwise I can still talk normally to the dam think and works.
Seems odd and frustrating as I use this allot in my hassio setup. Any ideas or fixes please help

Extreme fix, but I did a complete wipe and started a new install, no snapshot restore. Working again now.

Same problem here. Hope I don’t need to do a wipe and reinstall!!

I’ve got the same issue. The speaker lights up as if it receives something, but TTS doesn’t say anything.

I’ve checked everything network related and I can’t see anything wrong my end. Doesn’t mean there isn’t anything though xD.

I’ve followed all forum discussions and guides I can found around the place. Anyone have any ideas of where to begin, or had any luck getting theirs working again?

Update:- Found the media file URL in logs and checked it, file is getting retrieved from google and plays fine, the issue is with the google home speaker accessing or playing the file it seems. The URL looks correct in logs, I can copy paste it into browser and play the file.

I do use a separate IoT VLAN but have MDNS accross VLANS enabled. Can’t think of what else to try really. May have to attempt move HA onto my IoT VLAN if all else fails!

Same problem here unfortunately. I am on a rather old version 2021.5.4, but its stable for me and supports the functionality I need. I haven’t touch anything from when it worked till now, so strange.

You’re not the only one. Mine stopped about a month or so ago and I’ve been tracking down the reason. Pretty convinced its on Google’s side. I’ve tried using their DNS servers, different DDNS names, and whatever else I can think of. The media is accessible from my HA instance since I can curl it their from the command line. Playing the link from a browser on a computer yields usable results.

Its only when the Google home wants to do some TTS that it fails.

I wonder if google have change their implementation maybe. I’m pretty new to home assistant, is there anyway we can let the devs know or raise an issue with them? There’s so many things I want to try that involve using TTS, I really want my toastie machine to tell me when the toasties are done! Time is of the essence :wink: critical lunch infrastructure is in peril hahaha.

As an alternative to TTS since it’s been broken, I’ve been pre-recording messages using TTS websites, saving them as mp3’s and hosting them on a website for media_playback in HA. Not ideal, but it’s an acceptable workaround for fixed messages

This is honestly the best thing. You don’t even have to go that far though.

The service is working just fine, but the device refuses to connect. If you monitor the log you can see the request that isn’t discoverable. If you open that link in a browser on your computer it will most likely play just fine, as is my case. From there just save the file and put it in the media folder on your HA instance. Then call it as you need it. I didn’t want to have to go that route but it’s looking like what I’m going to do. My issue was that I had templates build to say “So and So got to school” and just replace the so and so with whoever, but that just won’t work anymore so I’d have to make individual recordings for everything that was originally templated out.

not ideal, you’re right, but probably the only option.

May not be relevant to everyone but I got it working using the firewall rule in:

So it seems my network was to blame not the TTS service! Once I allowed LAN IN traffic from my IOT VLAN to Home Assistant IP it worked straight away.

1 Like

Interesting (and good news) that someone at least has got TTS working again. All of my stuff is on a single subnet (no separate VLANs for IOT or anything else), so I guess my problem/solution must be elsewhere… :0(

1 Like

I take it back. It works great locally now, thanks for the idea. It played once directly from google TTS then never again, tested quite a lot of times. Still perfect locally though, thanks guys I’m happy!

I’m still claiming its a google product issue. I can’t even serve a file located publicly on the internet from my google mini.

I can’t even play locally because it doesn’t know how to find even lan addresses.

Using a different DDNS name yeilds the same result.

Looks like it’s a no go from here on out.

I’m not sure if this helps, but I’ve just noticed that when I try to get HA to play a TTS on one of my media players (in this case a Google Home Mini), if I look at the file which it attempting to play it is prefixed with an http: URL - for example:

http://myddns.net:8123/api/tts_proxy/e719714e4a8857bb2650ffee3de59160f5521c13_en_-_google_translate.mp3

I was able to see this in Logitech Media Server, which has my Google Home devices connected to it as media players.

This URL would be unreachable, as my HA server is on an SSL/https URL. So it looks as if HA is giving the wrong URL information to the TTS engine.
Any views on whether this is relevant, and if so how to fix it?

If that were the case. Unfortunately it isn’t. Mine serves up a https, as it should, but it claims the URL is unreachable. If you take that same url and open it on a computer elsewhere, even on the same subnet, it is reachable.

Something has changed on the google home, and some awkward DNS thing is afoot that exists now but didn’t exist a few months ago. Nothing on my network has changed so who knows.

I still mess with it from day to day but I haven’t made any progress.

MTA: The TTS service is working because it does download the file to the home assistant instance. The google home is the one having the instance finding it.

i changed the base url from my unsecure local ip http://192.168.1.3:8123 to the public secure address https:homeassistant.mydomain.com and it is working again. Docs

---
tts:
  - platform: google_translate
    service_name: google_say
    cache: true
    cache_dir: /tts
    time_memory: 300
    base_url: https://homeassistant.mydomain.com

1 Like