Update: TTS ignoring configuration.yaml in media.control card?

Been observing some truely weird behaviour with the tts that has apparently changed overnight.

I use tts.google_cloud_say, set to a male german WaveNet voice. The required .json file is in the config directory, and everything was working fine last night.

This morning, I sent a voice message to my kids room, using the context menu in the media player card for his Google Home Mini, as usual, only to here the voice pronounce the german message in American English with a female voice.

I did some exploring and here’s what I noticed:

  • Restarting HA didn’t change anything.
  • Changing the parameters of the tts (pitch etc.) to force a refresh didn’t change anything
  • Clearing tts cache didn’t help either

Next, I set up a test card with a click action of calling the tts.google_cloud_say service.

  • If I use a Google Nest Hub as the target, everything works fine, the correct german voice is used.
  • If I use a Sonos Roam as the target, I get the following error:

Error calling SonosMediaPlayerEntity.play_media on media_player.ecke: UPnP Error 714 received: Illegal MIME-Type from 192.168.86.33

Which makes me wonder if this is fallout from the Google/Sonos trouble.

However, using the context menu from a media player card in lovelace, even for non-Sonos devices, still defaults to the American English voice.

Any ideas what is going on here? Suggestions of how to get more clues?

Update:
I’ve tried switching back to the old google_translate service instead of the cloud.say one. To no effect.

My configuartion.yaml now looks like this:

tts:

  • platform: google_translate
    language: “de”

But when sending a spoken message to a device - regardless of Sonos or other - it still speaks American English.

What’s going on here?

Ok another update. I’ve changed the thread title in an attempt to describe more precisely what the problem seems to be.

Configuration.yaml has the language set to “de” and is using the basic google translate platform, as shown above.

I have added a button card to my dashboard to test this more easily. Click action is to call the tts service and speak a single german word “Frühstück”.

If I set the language parameter in the settings of the click action of the button card to “de-DE”, it works as it should. The word is spoken and pronounced in german.
If I don’t set the laguage parameter, the word is spoken in english., even though tts is set to german in the configuartion.yaml file. The same applies for using the speech field in a media.control card. it only speaks english, even though the configuration file is set to german. What’s going on here?

Final update for now.

Seems like the problem is caused by being logged into Nabu Casa cloud. After logging out and restarting HA, it works as intended, with the correct language being spoken. Logging into Nabu Casa cloud breaks it again.

I have submitted the issue here. Frontend ignoring tts settings in configuration.yaml when logged in to nabu casa cloud · Issue #11374 · home-assistant/frontend · GitHub